DR模式是通过改写请求报文的目标MAC地址,将请求发给真实服务器的,而真实服务器响应后的处理结果直接返回给客户端用户。同TUN模式一样,
DR模式可以极大的提高集群系统的伸缩性。而且DR模式没有IP隧道的开销,对集群中的真实服务器也没有必要必须支持IP隧道协议的要求。但是要求调度器LB与真实服务器RS都有一块网卡连接到同一物理网段上,必须在同一个局域网环境。DR模式是互联网使用比较多的一种模式。
原理:
网络结构:
IP | 备注 |
---|---|
120.10.10.10 | LB 负载均衡主机 |
120.10.10.11 | WEB1 应用主机1 |
120.10.10.12 | WEB1 应用主机2 |
120.10.10.1 | USER 用户端 |
120.10.10.100 | VIP |
注:LB机器,VIP绑定在主网卡的子接口,应用主机的VIP绑定在lo网卡的子接口上
修改 /etc/sysctl.conf
LB机器配置,关闭网卡重定向功能:
net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0 net.ipv4.conf.ens37.send_redirects = 0
客户机ARP配置:
net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2 net.ipv4.conf.default.arp_ignore = 1 net.ipv4.conf.default.arp_announce = 2 net.ipv4.conf.lo.arp_ignore = 1 net.ipv4.conf.lo.arp_announce = 2
客户端网关设置:
route add -host 120.10.10.100 dev lo:0
负载机规则设置:
ipvsadm -A -t 120.10.10.100:80 -s rr ipvsadm -a -t 120.10.10.100:80 -r 120.10.10.11:80 -g ipvsadm -a -t 120.10.10.100:80 -r 120.10.10.12:80 -g
保存规则:
ipvsadm --save > /etc/sysconfig/ipvsadm
关闭NetworkManager,开启ipv4路由转发
vi /etc/sysctl.conf net.ipv4.ip_forward = 1
LB机器设置iptables规则
# 设置规则 iptables -t nat -A POSTROUTING -s 120.10.10.0/24 -o ens37 -j SNAT --to-source 192.168.43.200 # 内网网段地址 出口:内网网卡 源地址:外网地址 # CentOS7 保存 iptables-save > /etc/sysconfig/iptables-config
ipvsadm设置
ipvsadm -A -t 192.168.43.200:80 -s rr ipvsadm -a -t 192.168.43.200:80 -r 120.10.10.11:80 -m ipvsadm -a -t 192.168.43.200:80 -r 120.10.10.12:80 -m
保存规则:
ipvsadm-save > /etc/sysconfig/ipvsadm
最后,Web应用机器需要设置网关到LB机器的内网地址