DR模式中LVS主機與實際服務器都有一塊網卡連在同一物理網段上。
IP分配
VIP:10.10.3.170
RIP1:10.10.3.140
RIP2:10.10.3.141
1、安裝所需的依賴包
yum install -y wget make kernel-devel gcc gcc-c++ libnl* libpopt* popt-static
2、創建一個軟鏈接,防止后面編譯安裝ipvsadm時找不到系統內核
ln -s /usr/src/kernels/2.6.32-358.18.1.el6.x86_64/ /usr/src/linux
3、下載安裝ipvsadm
wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz tar zxvf ipvsadm-1.26.tar.gz cd ipvsadm-1.26 make && make install
4、編寫並運行腳本(LVS服務器的腳本)
vi lvs.sh
#!/bin/bash # 2013-09-07 by kgdxpr VIP=10.10.3.170 RIP1=10.10.3.140 RIP2=10.10.3.141 /etc/rc.d/init.d/functions logger $0 called with $1 case "$1" in start) echo " start LVS of DirectorServer" /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 #Clear IPVS table /sbin/ipvsadm -C #set LVS /sbin/ipvsadm -A -t $VIP:80 -s rr /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g #Run LVS /sbin/ipvsadm ;; stop) echo "close LVS Directorserver" echo "0" >/proc/sys/net/ipv4/ip_forward /sbin/ipvsadm -C /sbin/ifconfig eth0:0 down ;; *) echo "Usage: $0 {start|stop}" exit 1 esac
注:/sbin/ipvsadm -A -t $VIP:80 -s rr (rr代表輪詢,還有分配方式)
/sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g (-g代表DR模式,還有其他模式)
5、給腳本加權限,並執行
chmod +x lvs.sh
chmod 755 /etc/rc.d/init.d/functions
./lvs.sh start
6、配置后端的WEB服務器腳本
vi realserver.sh
#!/bin/bash # 2013-09-07 by kgdxpr VIP=10.10.3.170 /etc/rc.d/init.d/functions case "$1" in start) echo " start LVS of REALServer" /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up /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 ;; stop) /sbin/ifconfig lo:0 down echo "close LVS Directorserver" 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 "Usage: $0 {start|stop}" exit 1 esac
7、給腳本加權限,並執行
chmod +x realserver.sh
chmod 755 /etc/rc.d/init.d/functions
./realserver.sh start