lvs-dr 模式的实现(rip dip在一个网段上)
网络拓扑图
client 上的操作
配置Client⽹关指向route 172网段地址
root@client:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.16.1.100 0.0.0.0 UG 0 0 0 eth0
172.16.0.0 0.0.0.0 255.255.248.0 U 0 0 0 eth0
root@client:~#
route上的操作
route上开启路由间转发
root@route:~# echo 1 > /proc/sys/net/ipv4/ip_forward
director 上的操作
执⾏脚本配置VS
root@director:~# bash lvs_dr_vs.sh start
The VS Server is Ready!
脚本内容
#!/bin/bash
vip='192.168.1.200'
iface='lo:1'
mask='255.255.255.255'
port='80'
rs1='192.168.1.103'
rs2='192.168.1.104'
scheduler='wrr'
type='-g'
dpkg-query -l ipvsadm &>/dev/null ||apt-get install ipvsadm &>/dev/null
case $1 in
start)
ifconfig $iface $vip netmask $mask #broadcast $vip up
iptables -F
ipvsadm -A -t ${vip}:${port} -s $scheduler
ipvsadm -a -t ${vip}:${port} -r ${rs1} $type -w 1
ipvsadm -a -t ${vip}:${port} -r ${rs2} $type -w 1
echo "The VS Server is Ready!"
;;
stop)
ipvsadm -C
ifconfig $iface down
echo "The VS Server is Canceled!"
;;
*)
echo "Usage: $(basename $0) start|stop"
exit 1
;;
esac
分别在两台RS上将⽹关指向route的RIP2
root@rs1:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.102 0.0.0.0 UG 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.248.0 U 0 0 0 eth0
root@rs2:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.102 0.0.0.0 UG 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.248.0 U 0 0 0 eth0
rs上的操作
rs 上执行脚本
root@rs1:~# bash lvs_dr_rs.sh start
The apache Server is Ready!
The RS Server is Ready!
下面是脚本内容
#!/bin/bash
vip=192.168.1.200
mask='255.255.255.255'
dev=lo:1
dpkg-query -l apache2 &> /dev/null|| apt-get -y install apache2 >/dev/null && echo "The apache Server is Ready!"
echo "<h1>`hostname`</h1>" > /var/www/html/index.html
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 $dev $vip netmask $mask #broadcast $vip up #route add -host $vip dev $dev
echo "The RS Server is Ready!"
;;
stop)
ifconfig $dev down
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
echo "The RS Server is Canceled!"
;;
*)
echo "Usage: $(basename $0) start|stop"
exit 1
;;
esac