1,建立好主机,虚拟机通信局域网
首先:
WIN7主机上
添加新硬件--网络适配器--制造商--Microsoft--选择Microsoft回环适配器--下一步
然后在网络和Internet\网络连接里边看到本地连接2,类型为LoopbackAdapter
设置 本地连接2 IP:172.16.10.1/16 其他不用设置
然后:
在虚拟机界面:编辑--虚拟网络编辑器--桥接到:Microsoft Loopback Adapter
规划:
WIN7:172.16.10.10/23
VIP、DIP、RIP在同一网段
Director:eth0--DIP:172.16.10.11/16;eth0:0—VIP:172.16.10.10 桥接
RS1:eth0—RIP:172.16.10.12;lo:0—VIP:172.16.10.10 桥接
RS2:eth0—RIP:172.16.10.13;lo:0—VIP:172.16.10.10 桥接
开始配置虚拟机:
(1)Director
#ifconfig eth0 172.16.10.11/16
# ifconfig eth0:0 172.16.10.10/16
此时还不能直接配置lo:0,如果此时在RS1和RS2配置了lo:0 172.16.10.10,没有配置arp_ignore,arp_announce参数,我们会从WIN7看到如下
可以看到 Director,RS1,RS2均做出了回应
(2)
RS1:
#ifconfig eth0 172.16.10.12/16
# sysctl -w net.ipv4.conf.eth0.arp_ignore=1
# sysctl -w net.ipv4.conf.eth0.arp_announce=2
# sysctl -w net.ipv4.conf.all.arp_ignore=1 all也要改,不知道为什么不能直接改all就可以了?
# sysctl -w net.ipv4.conf.all.arp_announce=2
# ifconfig lo:0 172.16.10.10/16
RS2:
#ifconfig eth0 172.16.10.13/16
# echo "1">/proc/sys/net/ipv4/conf/eth0/arp_ignore
# echo "2">/proc/sys/net/ipv4/conf/eth0/arp_announce
# echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore
# echo "2">/proc/sys/net/ipv4/conf/all/arp_announce
# ifconfig lo:0 172.16.10.10/16
再次测试:
(3)注意此时从client浏览器登录172.16.10.10是登不上的,因为没有配置响应报文的源IP为RS上lo:0上的VIP,即,现在的响应报文是从RS的eth0上出来的,所以响应报文的源IP自然就是RS的RIP,client请求时,目的IP是VIP,那么自然会认为收到的响应报文源IP应该是VIP,而此刻client收到的响应报文源IP是RIP,所以client是不会接收此响应报文的。
所以到此为止的配置还是不可用的,接下来要配置路由条目,保证响应报文使用VIP做响应报文的源地址,还有lo:0的广播地址
分别配置
RS1和RS2;
#ifconfiglo:0 172.16.10.10 broadcast 172.16.10.10 netmask 255.255.255.255
#routeadd –host 172.16.10.10 dev lo:0
Director:
#route add -host 172.16.10.10 dev eth0:0
(4)最后添加ipvs规则
Rirector:
#ipvsadm –A –t 172.16.10.10:80 –s wlc
#ipvsadm –a –t 172.16.10.12:80 -r 202.193.53.12 –g –w 3
#ipvsadm –a –t 172.16.10.13:80 -r 202.193.53.12 –g –w 1
然后通过win7client浏览器 测试 输入网址:172.16.10.10 OK,DR模型试验成功!
(5)但是这样的功能不够完善,因为如果RS宕机,director依旧会把请求转发给RS,所以要建立健康状态检查机制,当RS下线,就不转发给他,若上线则添加它
用什么检查RS是否在线呢,不如WEB服务是否在线?
使用curl,设置好timeout,
#curl --connect-timeout 1 http://..... /dev/null
后段健康状况检查脚本,例如:
#!/bin/bash
还可以把Director作为备用WEB,当所有的RS宕机,就加入director的httpd服务显示服务器维护