一次keepalived dr 模式流量异常的处理

现象

因为业务进行供电系统调整,以前部署的lvs 系统(基于keepalived的)起来之后业务不能正常访问(dr 模式的,realserver 已经配置了回环vip 以及arp 抑制策略),从测试来看,lvs 的主从抢占是正常的(说明vip 是可以上线的),而且从抓包来看,lvs director 的请求是可以到realserver 得(有sync 请求),就是实际得请求会不去,以前碰到过类似的问题,一般就是查看realserver 的一些配置,理论上配置是没问题的,因为早供电系统调整之前都是可以的,就怕业务请求不正常,查看了下arp 信息(arp -a -n) 发现了一个比较怪异的问题,就是realserver arp 的mac 地址都是同一个(不只是realserver的,arp cache 中还有几个ip 也是)通过分析来看都是网段网关ip 的mac

解决方法

  • 先尝试进行本地arp清理,可以通过arp -d 命令,或者强制所有的sudo ip -s -s neigh flush all

结果刷新之后,发现arp广播的信息还是指定gateway的,还是不对,流量还是不正常

  • 手工指定realserver arp 地址sudo arp -s <ip> <mac>

在diretor server 上之后配置realserver 列表实际的mac 地址,之后发现业务流量请求正常

说明

从实际上应该是底层网络有一些问题,但是为了快速解决业务访问,临时固定了mac 地址(静态arp 配置表), 又属于一次lvs 异常的排错以及处理,算是临时解决,但是核心应该还是底层网络有,碰到问题还是得多分析业务部署情况,很多时候还是得先解决,减少业务业务影响,之后进行复盘彻底解决问题

参考资料

https://linux.die.net/man/8/ipvsadm

https://linux.die.net/man/5/keepalived.conf

posted on 2025-05-10 10:58  荣锋亮  阅读(18)  评论(0)    收藏  举报

导航