DR实现实现负载均衡高可用集群(2)

cat >>/etc/sysctl.conf<<EOF  #其目的是为了让rs顺利发送mac地址给客户端
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
EOF

sysctl -p

查看结果

[root@lb03 ~]# ip a s eth0
eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
 link/ether 00:50:56:3b:cb:36 brd ff:ff:ff:ff:ff:ff
 inet 10.0.0.13/24 scope global secondary eth0
    valid_lft forever preferred_lft forever
[root@web03 ~]# ip a s lo
lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 10.0.0.13/32 scope global lo
    valid_lft forever preferred_lft forever

2.2.3 Ⅲ.web浏览器测试

1 http://10.0.0.13/ 

说明:当lb服务器断开连接后VIP会自动消失,重新连接后需再次添加VIP

2.2.4 Ⅳ. arp解析查看

[root@lb04 ~]# arp -n
Address                  HWtype  HWaddress          Flags Mask            Iface
10.0.0.254              ether  00:50:56:e9:9f:2c  C                    eth0
10.0.0.18                ether  00:0c:29:ea:ca:55  C                    eth0
10.0.0.13                ether  00:0c:29:de:7c:97  C                    eth0
172.16.1.15              ether  00:0c:29:de:7c:a1  C                    eth1
10.0.0.17                ether  00:0c:29:4a:ac:4a  C                    eth0

至此,LVS集群配置完毕

注意:所有有访问的返回值都是10.0.0.3

lvs与nginx的不同就在于17和18并不通过IP地址访问,而是通过mac地址访问

至此,LVS集群配置完毕

2.2.4.1 存疑问题:使用抓包工具发现通信的是windows IP和lb03的80端口,但lb03没有80端口?

lvs通过mac地址访问时,访问10.0.0.3就是访问lb01

10.0.0.3的数据包mac地址的返回值就是访问web03

2.3 ARP协议 2.3.1 arp详解

01.ARP协议,全称"Address Resolut ion Protocol",中文名是地址解析协议,使用ARP协议可实现通过IP地址获得对应主机的物理地址(MAC地址)

ARP协议要求通信的主机双方必须在同一个物理网段(即局域网环境)!

02.为了提高IP转换MAC的效率,系统会将解析结果保存下来,这个结果叫做ARP缓存

1 arp-a #Windows查看ARP缓存命令 2 arp-n #Linux查看ARP缓存命令 3 arping -c 1 -I eth0 10.0.0.6 4 #Linux解析IP对应的MAC地址[-c指定超时的ARP数据包数量;-I指定使用哪个网络接口]

ARP缓存表是把双刃剑

①主机有了arp缓存表,可以加快ARP的解析速度,减少局域网内广播风暴。因为arp是发广播解析的,频繁的解析也是消耗带宽的(尤其是机器多的时候) ②正是有了arp缓存表,给恶意黑客带来了攻击服务器主机的风险,这个就是arp欺骗攻击 ③切换路由器,负载均衡器等设备时,可能会导致短时网络中断。因为所有的客户端ARP缓存表未更新 

2.3.2 服务器切换ARP问题

当lb01宕机,VIP地址迁移到lb02时需要通过arping命令通知所有网络内机器更新本地的ARP缓存表,从而使得客户机访问时重新广播获取MAC地址

ARP广播进行新的地址解析

1 arping -I eth0 -c 1 -U VIP 2 arping -I eth0 -c 1 -U 10.0.0.13 

测试ARP缓存切换(手动漂移VIP)

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

转载注明出处:https://www.heiqu.com/8f641e83a40c49c945e5133da6127d99.html