LVS负载均衡DR模型实验

wKioL1TcpEWygeHTAAGHMtqQA94903.jpg







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直接经过路由器发送到客户端。


架构实现步骤:

vip172.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 �Chost 172.16.28.200 dev eth0:0

设置路由转发

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

或者修改/etc/sysctl.conf中的ip_forward=1

定义lvs服务

ipvsadm �CA �Ct 172.16.28.200:80 �Cs wlc

ipvsadm �Ca �Ct 172.16.28.200:80 �Cr 172.16.28.1 �Cg �Cw 1

ipvsadm �Ca �Ct 172.16.28.200:80 �Cr 172.16.28.100 �Cg �Cw 2

 

spacer.gif2.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 �Chost 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 �Chost 172.16.28.200 dev lo:0


三台均开启http服务测试








你可能感兴趣的:(负载均衡,LVS,dr模型)