LVS集群TUN模式實例
1、 實驗拓撲圖
2、 實驗環境
4台CentOS6.2的服務器。
類型 |
IP |
DR |
eth0:10.20.73.20 |
VIP |
eth0:0 10.20.73.30 |
RS |
10.20.73.22(web01) 10.20.73.23(web02) 10.20.110.140(web03)【不同網段】
|
3、安裝和配置
3.1 安裝
在DS上安裝lvs:yum install ipvsadm
3.2 配置
配置lvs啟動腳本:
[root@master]# cat /etc/init.d/ipvsnat
#!/bin/bash
#lvs script(tunnel mode)
VIP=10.20.73.30
RIP1=10.20.73.22
RIP2=10.20.73.23
RIP3=10.20.110.140
. /etc/rc.d/init.d/functions
case "$1" in
start)
echo "start LVS TUN"
/sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev eth0:0
echo "1" > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -F
/sbin/ipvsadm -C
/sbin/ipvsadm -A -t $VIP:80 -s rr
/sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -i
/sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -i
/sbin/ipvsadm -a -t $VIP:80 -r $RIP3:80 -i
/sbin/ipvsadm
;;
stop)
echo "stop LVS TUN"
echo "0" > /proc/sys/net/ipv4/ip_forward
/sbin/ipvsadm -C
/sbin/ifconfig eth0:0 down
;;
*)
echo :Usage:$0{start|stop}
exit 1
esac
3. 3 后端真實機安裝應用
后端真實機腳本:
#!/bin/bash
#lvs script(dr mode)
VIP=10.20.73.30
. /etc/rc.d/init.d/functions
case "$1" in
start)
echo "start LVS TUNL"
/sbin/ifconfig tunl0 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP 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
echo "0" >/proc/sys/net/ipv4/conf/tunl0/rp_filter
sysctl -p
;;
stop)
echo "stop LVS TUN"
/sbin/ifconfig tunl0 down
echo "0" > /proc/sys/net/ipv4/conf/tunl0/arp_ignore
echo "0" > /proc/sys/net/ipv4/conf/tunl0/arp_announce
echo "0" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" > /proc/sys/net/ipv4/conf/all/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/tunl0/rp_filter
;;
*)
echo :Usage:$0{start|stop}
exit 1
esac
注意:
1、另外兩台台RS腳本一模一樣
2、chmod 755 /etc/init.d/ipvstunl
安裝和啟動服務:
Web01上安裝http服務:yum install httpd && service httpd start
Web02上安裝http服務:yum install httpd && service httpd start
Web03上安裝http服務:yum install httpd && service httpd start
3.4 DR啟動腳本並測試
1、在DR服務器上,查看開啟tunnel模式前的網卡情況:
2、開啟tunnel服務,service ipvstunl start
3、在3台RS上開啟ipvstunl服務
4、在client上進行測試,client的地址為10.20.122.116(跨網段)
測試前,調度器上沒有任何連接:
測試:
for i in `seq 30`;do curl http://10.20.73.30;done
注意事項:1、rp_filter設置為0,忽略模式,因為這個問題,導致我剛開始沒有測試成功。
2、防火牆、selinux關閉;
3、網關不能和nat一樣指向內網網關;