TUN模式;
其实数据转发原理和上图是一样的,不过这个我个人认为主要是位于不同位置(不同机房);LB是通过隧道进行了信息传输,虽然增加了负载,可是因为地理位置不同的优势,还是可以参考的一种方案;
优点:负载均衡器只负责将请求包分发给物理服务器,而物理服务器将应答包直接发给用户。所以,负载均衡器能处理很巨大的请求量,这种方式,一台负载均衡能为超过100台的物理服务器服务,负载均衡器不再是系统的瓶颈。使用VS-TUN方式,如果你的负载均衡器拥有100M的全双工网卡的话,就能使得整个Virtual Server能达到1G的吞吐量。
不足:但是,这种方式需要所有的服务器支持"IP Tunneling"(IP Encapsulation)协议;
LB1: eth0: 192.168.182.132
vip(tunl0): 192.168.182.200
RS1: eth0:192.168.27.130
tunl0(vip) :192.168.182.200
RS2: eth0:192.168.138.131
tunl0(vip) :192.168.182.200
LB1操作:
yum install ipvsadm –y
echo 1 > /proc/sys/net/ipv4/ip_forward
. /etc/rc.d/init.d/functions
/sbin/ipvsadm --set 30 5 60
ifconfig tunl0 192.168.182.200 broadcast 192.168.182.200 netmask 255.255.255.0 up
route add -host $VIP dev tunl0
ipvsadm -A -t 192.168.182.200:80 -s rr
ipvsadm -a -t 192.168.182.200:80 -r 192.168.27.130 -i
ipvsadm -a -t 192.168.182.200:80 -r 192.168.138.131 -i
RS1操作:
ifconfig tunl0 192.168.182.200 netmask 255.255.255.0 broadcast 192.168.182.200 up
route add -host 192.168.182.200 dev tunl0
echo "1" >/proc/sys/net/ipv4/conf/tunl0/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/tunl0/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
RS2同上:
访问vip进行测试即可;