ifconfig eno16777736:0 192.168.1.100 netmask 255.255.255.255 route add -host 192.168.1.100 dev eno16777736:0 /* lvs/dr里,director的vip的netmask 没必要一定设置为255.255.255.255,也不需要再去 route add -host $VIP dev eth0:0 director的vip本来就是要像正常的ip地址一样对外通告的,不要搞得这么特殊. */
(3)Director上设置规则:
ipvsadm -A -t 192.168.1.100:80 -s wrr ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.103 -g -w 1 ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.104 -g -w 2
(4)RS1和RS2的设置:主要是调整内核参数和物理接口lo的地址绑定,通过脚本实现:
#!/bin/bash # VIP=$2 case "$1" in start) echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP route add -host $VIP dev lo:0 ;; stop) echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce route del $VIP ;; *) echo "Tips:$0{start|stop}" ;; esac
(5)用另外一个主机去访问VIP,可以看到效果了
总结:
核心要点
(1)调度器与实际服务器都有一块网卡连在同一物理网段上。
(2)RIP和DIP一般在同一网络(因为转发是在数据链路层实现的,必须保证MAC不会变),且RIP的网关不能指向DIP;但两者未必和VIP在同一网络。
(3)各RS需先设置内核参数,再设置物理接口lo的VIP和路由。
(4)不支持端口映射
(5)Director的ip_forward不需要开启转发,因为Director和RS在同一网络。
(6)Director的VIP一般设置在网卡的别名上,如eth0:0或eno16777736:0上
学习LVS+Keepalived必须阅读的三个文档。
3、 《Red_Hat_Enterprise_Linux-5-Virtual_Server_Administration-zh-CN》