回复 shine_forever 的帖子 问题终于找出来了~~~感谢大家提供的信息; 1)lvs+keepalived在两台物理服务器上部署的时候; 1.因为lvs是基于内核的服务,所以两台物理服务器上服务都是启动,当两边都启动keepalived的时候,两台服务器服务器上ipvs服务都启动了,而且都已经加载了ipvs-dr策略, 这个可以再两台服务器上涌ipvsadm命令看到都是这一台状态: root@node6 ~]# ipvsadm IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddressort Scheduler Flags -> RemoteAddressort Forward Weight ActiveConn InActConn TCP 172.16.41.31:http rr persistent 50 -> node6.example.com:http Local 3 0 1 -> node1.example.com:http Route 3 0 0 2.主lvs上面起了浮动ip,当数据包转发到备lvs时,由于备机lvs上面策略也启动了,所以备机接受到数据包以后也会转发到主lvs上面,所以就形成了广播风暴!!!! 在备机lvs抓包: 09:58:58.653532 IP 172.16.41.26.60490 > 172.16.41.30.http: . ack 1 win 365 <nop,nop,timestamp 157330636 157185220> 09:58:58.653754 IP 172.16.41.26.60490 > 172.16.41.30.http: R 1:1(0) ack 1 win 365 <nop,nop,timestamp 157330636 157185220> 09:59:03.790449 IP 172.16.41.30.44560 > 172.16.41.26.http: S 2756013189:2756013189(0) win 5840 <mss 1460,sackOK,timestamp 157190357 0,nop,wscale 7> 09:59:03.790519 IP 172.16.41.26.http > 172.16.41.30.44560: S 2773918069:2773918069(0) ack 2756013190 win 5792 <mss 1460,sackOK,timestamp 157335774 157190357,nop,wscale 4> 2)heartbeat+lvs再两台物理服务器上为什么不会出现这个情况: 1.因为heartbeat服务启动的时候不会让备机lvs的服务加载策略,在备机lvs上执行ipvsadm命令可以确认到,所以当数据包转发到备机lvs的时候,备机不会转发到主lvs,不会形成广播风暴~~~~ |
|