DR模式的实现详解(2)

在RealServers上,VIP配置在本地回环接口lo上。如果回应给Client的数据包路由到了eth0接口上,则arp通告或请应该通过eth0实现,因此,需要在sysctl.conf文件中定义如下配置:
vim /etc/sysctl.conf
net.ipv4.conf.eth0.arp_ignore = 1
net.ipv4.conf.eth0.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
以上选项需要在启用VIP之前进行,否则,则需要在Drector上清空arp表才能正常使用LVS。

到达Director的数据包首先会经过PREROUTING,而后经过路由发现其目标地址为本地某接口的地址,因此,接着就会将数据包发往INPUT(LOCAL_IN HOOK)。此时,正在运
行内核中的ipvs(始终监控着LOCAL_IN HOOK)进程会发现此数据包请求的是一个集群服务,因为其目标地址是VIP。于是,此数据包的本来到达本机(Director)目标行程被改变为经由POSTROUTING HOOK发往RealServer。这种改变数据包正常行程的过程是根据IPVS表(由管理员通过ipvsadm定义)来实现的。

如果有多台Realserver,在某些应用场景中,Director还需要基于“连接追踪”实现将由同一个客户机的请求始终发往其第一次被分配至的Realserver,以保证其请求的完整性等。其连接追踪的功能由Hash table实现。Hash table的大小等属性可通过下面的命令查看:
# ipvsadm -lcn
为了保证其时效性,Hash table中“连接追踪”信息被定义了“生存时间”。LVS为记录“连接超时”定义了三个计时器:
1、空闲TCP会话;
2、客户端正常断开连接后的TCP会话;
3、无连接的UDP数据包(记录其两次发送数据包的时间间隔);
上面三个计时器的默认值可以由类似下面的命令修改,其后面的值依次对应于上述的三个计时器:
# ipvsadm --set 28800 30 600

数据包在由Direcotr发往Realserver时,只有目标MAC地址发生了改变(变成了Realserver的MAC地址)。Realserver在接收到数据包后会根据本地路由表将数据包路由至本地回环设备,接着,监听于本地回环设备VIP上的服务则对进来的数据库进行相应的处理,而后将处理结果回应至RIP,但数据包的原地址依然是VIP。

配置拓扑如下图:

DR模式的实现详解

1.DIP要配置在接口上,VIP要配置在接口别名上

在前端服务器上的配置(配置VIP)

ifconfig eth0:0 $192.168.0.1 broadcast $192.168.0.1 netmask 255.255.255.255 up

route add -host $192.168.0.1 dev eth0:0 

route add -host $192.168.1.1 dev eth0

echo 1 >/proc/sys/net/ipv4/ip_forward

2.在REALSERVER上面的配置

RIP要配置在接口上,VIP要配置在lo的别名上

定义内核参数,禁止响应对VIP的ARP广播请求

echo 1>/proc/sys/net/ipv4/conf/lo/arp_ignore

echo 1>/proc/sys/net/ipv4/conf/all/arp_ignore

echo 2>/proc/sys/net/ipv4/conf/lo/arp_announce

echo 2>/proc/sys/net/ipv4/conf/all/arp_announce

配置VIP

ifconfig lo:0 $192.168.0.1 broadcast $192.168.0.1 netmask 255.255.255.255 up

route add -host 192.168.0.1 dev lo:0 确保如果请求的目标IP是$VIP,那么让出去的数据包的源地址也显示为$VIP

3.在前端服务器配置并启动服务

ipvsadm -A -t 192.168.0.1:80 -s wlc 

ipvsadm -a -t 192.168.0.1:80 -r 192.168.1.2 -g -w 4 

ipvsadm -a -t 192.168.0.1:80 -r 192.168.1.3 -g -w 2

ipvsadm -L -n

ab -c -n 10000  

watch -n 1 'ipvsadm -L -n'

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/1127c21f0f6d3e1e79ffde2d9b31724d.html