标签:lvs dr模型
lvsDR模型原理:
外部请求到来时,源IP是CIP目标IP是VIP,进入路由,路由arp解析,由于只能让Director给予响应,所以禁用RS的arp响应广播,只能响应连入网络中的接口对应的ip的解析,所以将VIP设置在lo:0接口,这样之后Director可以响应路由器的arp解析,客户端请求进去Director,通过PREROUTING进入INPUT,在INPUT设置了lvs服务,凡是请求vip:80的请求,均进行转发,于是在Director INPUT链上根据调度规则,选出合适的RS,进行转发,转发是根据MAC地址进行的,各服务器之间通信是靠DIP和RIP进行的,所以各服务器上均有彼此通信的IP所在的网卡的mac地址,根据调度规则选出的mac地址转发,当请求到达选中的RS后,RS进行解封装,发现目标ip是自己的(即vip,在每台RS的lo:0接口上配置的ip)于是根据请求准备数据,数据目标IP是CIP,源IP是VIP,但是不能直接通过eth0进行发送,因为从哪个接口发送,那么源地址便是哪个接口的IP,这样客户端不会接收此数据,所以需要强制从lo:0接口转到eth0接口进行发送,所以设置了主机路由,这样数据便没有经过Director直接经过路由器发送到客户端。
架构实现步骤:
vip:172.16.28.200
DIP:172.16.28.10
RIP:172.16.28.1
RIP:172.16.28.100
1.Director操作:
设置IP
ifconfig eth0 172.16.28.10/16 up ifconfig eth0:0 172.16.28.200 broadcast 172.16.28.200 netmask 255.255.255.255 up
设置主机路由
route add –host 172.16.28.200 dev eth0:0
设置路由转发
echo 1 > /proc/sys/net/ivv4/ip_forward
或者修改/etc/sysctl.conf中的ip_forward=1
定义lvs服务
ipvsadm –A –t 172.16.28.200:80 –s wlc
ipvsadm –a –t 172.16.28.200:80 –r 172.16.28.1 –g –w 1
ipvsadm –a –t 172.16.28.200:80 –r 172.16.28.100 –g –w 2
2.Realserver操作
禁用arp响应广播,两台RS分别操作
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 1> /proc/sys/net/ipv4/conf/lo/arp_ignore
或者:
在sysctl.conf里添加
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.lo.arp_announce=2
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.lo.arp_ignore=1
RS1
ifconfig eth0 172.16.28.1/16 up ifconfig lo:0 172.16.28.200 broadcast 172.16.28.200 netmask 255.255.255.255 up route add –host 172.16.28.200 dev lo:0
RS2
ifconfig eth0 172.16.28.100/16 up ifconfig lo:0 172.16.28.200 broadcast 172.16.28.200 netmask 255.255.255.255 up route add –host 172.16.28.200 dev lo:0
三台均开启http服务测试
标签:lvs dr模型
原文地址:http://mylinuxroad.blog.51cto.com/1348472/1614141