lvs的DR模型
DR模型工作原理:
DR模型被称为直接路由模型
lvs上配置VIP,接受请求,在请求进入INPUT链之前,lvs不自己处理而是将报文进行转发,将源mac地址修改为DIP的mac,目的mac修改为RIP的mac,与NAT模型不同,DR模型不对源目IP进行改动。RS收到数据包后不再原路返回,通过实现在RS上新增目的地址VIP,来实现直接返回数据包。
其中几个点需要关注:
- lvs 和 RS上都要绑定VIP,lvs上的VIP用于接受请求,RS上的VIP用于不经过lvs响应请求
- 在RS上需要关闭 arp 和 免费arp ,避免lvs的VIP和RS的VIP冲突
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce - lvs上无需开启转发功能 即无需开启 net.ipv4.ip_forward = 1
- 如果VIP绑定在lo上,网段不应和物理网段相同,回环网卡不和外网连接,配成相同网段则造成无法通信
简单配置如下:
ip address add 10.0.0.100/32 dev lo label lo:1 lvs、RS绑定VIP
ip route add 192.168.10.0/24 via 10.0.0.47 RS上添加路由
[root@17 ~]# ipvsadm -A -t 10.0.0.100:80 -s rr
[root@17 ~]# ipvsadm -a -t 10.0.0.100:80 -r 10.0.0.27:80 -g
[root@17 ~]# ipvsadm -a -t 10.0.0.100:80 -r 10.0.0.37:80 -g
[root@17 ~]#
[root@17 ~]#
[root@17 ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 10.0.0.100:80 rr
-> 10.0.0.27:80 Route 1 0 0
-> 10.0.0.37:80 Route 1 0 0