Oracle Linux 8下Keepalived脑裂求助:双节点均为MASTER且绑定VIP
Oracle Linux 8下Keepalived双节点均为MASTER且重复绑定VIP问题排查
在Oracle Linux 8上部署Keepalived时遇到异常:VIP被同时分配到两个节点,且两个节点都处于MASTER模式。关闭firewalld后恢复正常,但开启防火墙就出现问题,日志提示Keepalived_vrrp[1077307]: (VI_1) Receive advertisement timeout。
节点1配置
cat /etc/keepalived/keepalived.conf
global_defs { vrrp_priority -20 checker_priority -19 script_user root } vrrp_script chk_haproxy { script "/usr/bin/killall -0 haproxy" # 检查haproxy进程 interval 2 # 每2秒检查一次 weight 2 # 检查正常时优先级+2 timeout 3 fall 3 } vrrp_instance VI_1 { interface ens192 # 监控网卡 state BACKUP # haproxy1为MASTER,haproxy2为BACKUP nopreempt virtual_router_id 52 priority 101 # haproxy1设101,haproxy2设100 virtual_ipaddress { VIP_adcat /vardress # 此处存在笔误,需替换为实际VIP地址 } track_script { chk_haproxy } }
节点2配置
cat /etc/keepalived/keepalived.conf
global_defs { vrrp_priority -20 checker_priority -19 script_user root } vrrp_script chk_haproxy { script "/usr/bin/killall -0 haproxy" # 检查haproxy进程 interval 2 # 每2秒检查一次 weight 2 # 检查正常时优先级+2 timeout 3 fall 3 } vrrp_instance VI_1 { interface ens192 # 监控网卡 state BACKUP # haproxy1为MASTER,haproxy2为BACKUP nopreempt virtual_router_id 52 priority 100 # haproxy1设101,haproxy2设100 virtual_ipaddress { VIP_adress # 此处需补全实际VIP地址 } track_script { chk_haproxy } }
当前防火墙规则
firewall-cmd --list-all
public (active) target: default icmp-block-inversion: no interfaces: ens192 sources: 此处为两个节点的IP地址 services: cockpit dhcpv6-client ssh ports: 3306/tcp 3305/tcp protocols: forward: no masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: rule family="ipv4" destination address="224.1.0.0/16" accept rule family="ipv4" destination address="224.0.0.18" protocol value="ip" accept rule protocol value="vrrp" accept
解决思路
优先使用firewalld预定义VRRP服务
自定义rich规则可能存在优先级或匹配问题,直接添加官方预定义的VRRP服务规则:firewall-cmd --add-service=vrrp --permanent firewall-cmd --reload验证VRRP组播流量连通性
VRRP依赖组播地址224.0.0.18通信,用tcpdump对比防火墙开启/关闭时的流量:tcpdump -i ens192 host 224.0.0.18如果开启防火墙后抓不到对方节点的VRRP通告包,说明防火墙规则仍存在拦截。
修正配置笔误
节点1的VIP_adcat /vardress和节点2的VIP_adress是明显配置错误,需替换为正确的VIP格式(如192.168.1.100/24),配置错误可能导致Keepalived在防火墙环境下行为异常。检查网络设备组播限制
确认交换机等中间设备未拦截VRRP组播流量,部分交换机默认限制组播,需开启对应端口的IGMP snooping或允许224.0.0.18组播包通过。调整防火墙规则顺序
当前防火墙target为default,若默认策略是拒绝,需确保VRRP相关规则优先于拒绝规则生效,可重新添加明确规则:firewall-cmd --add-protocol=vrrp --permanent firewall-cmd --add-rich-rule='rule family="ipv4" destination address="224.0.0.18" accept' --permanent firewall-cmd --reload
内容的提问来源于stack exchange,提问作者zerozg
相关产品推荐
相关产品推荐

