拓扑图:
===============
Client ---> Router ---> Switch ---> (physical adapter:0 VIP) Virtual Server (DIP) | | |---------(RIP1) Real Server 1 (lo:0 VIP) | |---------(RIP1) Real Server 1 (lo:0 VIP) VS、RS1、RS2处在同一网络; DIP:192.168.206.55 物理网卡:0(VIP):192.168.206.200 RIP1:192.168.206.66 lo:0(VIP):192.168.206.200 RIP2:192.168.206.99 lo:0(VIP):192.168.206.200 GATEWAY:192.168.206.2
前期准备:搭建nginx或httpd,并准备好测试页;
配置步骤:
=============
1> 2台RS分别做如下配置:
网络接口限制响应;
网络接口限制通告;
回环接口上配置VIP地址;
配置lo:0的路由;
方式一:通过脚本实现;
#!/bin/bash # VIP='192.168.206.200' VIP_mask='255.255.255.255' 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 lo:0 $VIP netmask $VIP_mask broadcast $VIP up route add -host $VIP dev lo:0 ;; stop) ifconfig lo:0 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 "Usage: $($basename $0) start | stop ." exit esac
方式二:直接命令行输入;
~]# 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 lo:0 192.168.206.200 netmask 255.255.255.255 broadcast 192.168.206.200 up ~]# route add -host 192.168.206.200 dev lo:0
2>在VS上的物理接口配置VIP地址;
~]# ifconfig ens33:0 192.168.206.200 netmask 255.255.255.255 broadcast 192.168.206.200 up
3>在VS上安装ipvsadm;
~]# yum -y install ipvsadm
4>在VS配置集群服务,添加RS;
~]# ipvsadm -A -t 192.168.206.200:80 -s rr ~]# ipvsadm -a -t 192.168.206.200:80 -r 192.168.206.66 -g -w 2 ~]# ipvsadm -a -t 192.168.206.200:80 -r 192.168.206.99 -g -w 4
5>测试略