keepalived认证机制通过authentication块实现,仅支持pass和ha两种方式,生产环境推荐pass认证;需确保同组节点的auth_type、auth_pass及virtual_router_id完全一致,否则导致vrrp报文被忽略、vip无法漂移。

Keepalived 的认证机制是防止非法节点冒充加入 VRRP 集群的关键防线。它不提供加密通信,但能有效阻止未授权设备通过伪造 VRRP 报文干扰主备选举或触发脑裂。配置核心在于 authentication 块,必须在所有同组节点中严格一致。
认证类型与参数必须统一
Keepalived 仅支持两种认证方式:PASS(简单密码)和 HA(IPSEC-AH,已基本弃用)。生产环境只推荐使用 PASS 认证。以下参数需在所有节点的同一 vrrp_instance 中完全相同:
-
auth_type:必须为
PASS -
auth_pass:8 字符以内明文密码(超出部分会被截断),建议含大小写字母+数字,如
Keep@2026 - 所在
vrrp_instance的 virtual_router_id 必须一致(否则认证前就无法识别为同一组)
配置示例(主节点与备节点共用相同认证块)
在 /etc/keepalived/keepalived.conf 的 vrrp_instance 段内添加:
state MASTER
interface ens33
virtual_router_id 51
priority 110
advert_int 1
authentication {
auth_type PASS
auth_pass Keep@2026
}
virtual_ipaddress {
192.168.10.100/24
}
}
备节点只需改 state BACKUP 和 priority(如 90),其余包括 authentication 块必须一字不差。
验证认证是否生效
认证失败时,Keepalived 不会报错退出,但会导致节点无法收到对方 VRRP 报文,表现为:
-
ip addr show查看 VIP 仅在本机出现,且长期不切换(即使停掉主节点,备节点也不接管) -
tcpdump -i ens33 vrrp只能看到本机发出的报文,收不到对端报文 -
journalctl -u keepalived -n 50中出现类似VRRP_Instance(VI_1) ignoring received advert from [X.X.X.X] due to wrong auth type or password的日志
增强防护的实用建议
单纯依赖 PASS 认证强度有限,可叠加以下措施提升安全性:
- 限制 VRRP 组播范围:在交换机侧或主机防火墙(如
iptables)只允许224.0.0.18组播地址在集群节点间通行 - 禁用非必要接口的 VRRP:确保
interface指向专用心跳网卡(如ens33),而非管理网口 - 避免使用默认密码:严禁使用
1111、password等弱口令,定期轮换(需同步更新所有节点)










