三台机器:
director (eth0192.168.1.95, vip eth0:0: 192.168.1.100)
real server1 (eth0 rip: 192.168. 1.89, vip lo:0: 192.168.1.100)
real server2 (eth0 rip: 192.168.1.90, vip lo:0: 192.168.1.100)
1、ip配置,三台主机的配置要求如下。
dr:eth0:192.168.1.95
rs1:eth0:192.168.1.89
rs2:eth0:192.168.1.90
dir配置如下,rs两个的配置相似。
2、dir配置文件
新增配置文件/usr/local/sbin/lvs_dr.sh
[root@dir ~]# vim /usr/local/sbin/lvs_dr.sh
开启ipv4
转发功能,新增eth0:0虚拟网卡,rr轮询方式。-g代表DR模式。
清楚之前的nat防火墙规则。
[root@dir ~]# iptables -t nat -F
执行dr配置脚本,查看规则。
[root@dir ~]# sh /usr/local/sbin/lvs_dr.sh
[root@dir ~]# ipvsadm -l
3、rs配置文件
两台rs上需要做如下配置
新建配置文件: /usr/local/sbin/lvs_dr_rs.sh ,使用lo端口做虚拟ip配置,并添加路由,要求其指定特定的网络去走。
[root@rs1 ~]# vim /usr/local/sbin/lvs_dr_rs.sh
将文件传输(两者都要安装scp文件)给rs2。
[root@rs1 ~]# yum install -y openssh-clients
[root@
rs2 ~]# yum install -y openssh-clients
[root@rs1 ~]# scp /usr/local/sbin/lvs_dr_rs.sh 192.168.1.90:/usr/local/sbin/lvs_dr_rs.sh
[root@rs1 ~]# sh !$
sh /usr/local/sbin/lvs_dr_rs.sh
查看,多出一个lo:0端口和ip地址。
提问区:
a、为什么vip(虚拟ip)一样,怎么没有提示ip冲突?
同样的vip设置是为了迷惑用户,让用户的请求返回额ip都是该ip。
b、为什么dir使用eth0:0,而rs使用lo:0,这是为什么?
不让其产生冲突,假设都使用eth0:0,相当于在一个交换机上面会出现三个相同的ip地址,不管网段是多少,终究还是会出现三个一样的ip地址。第二,本机访问该ip,可能得不到需要访问的信息(直接访问本机)。
4、测试结果
curl测试
dir不能正常使用crul测试,rs测试成功。
web测试
虚拟ip测试结果:注意该地址有缓存,要多尝试几次,可以实现没刷新一次切换一次。