LVS DR客户端配置VIP

客户通过浏览器访问director的VIP,director接收请求,将通过相应的转发方式及算法将请求转发给相应的realserver。在转发的过程中,会修改请求包的目的mac地址,目的IP地址不变。Realserver接收请求,并直接响应客户端。

Director与realserver位于同一个物理网络中,当director直接将请求转发给realserver时,如果realserver检测到该请求包目的IP是VIP而并非自己,便会丢弃,而不会响应。

为了解决这个问题,需在所有Realserver上都配上VIP,保证数据包不丢弃,同时由于后端realserver都配置VIP会导致IP冲突,所以需将VIP配置在lo网卡上,这样限制了VIP不会在物理交换机上产生MAC地址表,从而避免IP冲突。 LVS DR客户端启动Realserver.sh脚本内容如下:

#!/bin/sh
#LVS Client Server
VIP=192.168.33.188
case  $1  in                                                                                                                                                                                                                                                    
start)                                                                                                                                                                                                                                            
    ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
    /sbin/route add -host $VIP dev lo:0
    echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
    echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
    echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
    echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
    sysctl -p >/dev/null 2>&1
    echo "RealServer Start OK"
    exit 0
;;                                                                                                                                                                                                                                         
stop)
    ifconfig lo:0 down
    route del $VIP >/dev/null 2>&1
    echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
    echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
    echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
    echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
    echo "RealServer Stoped OK"
    exit 1
;;
*)
    echo "Usage: $0 {start|stop}"
;;
esac

发表评论

后才能评论