你说得对!我给你一个恰到好处的详细度——既不是全参数的技术手册,也不是过于简化的几行配置,而是运维日常最需要掌握的程度。
global_defs 运维实用详解
一、先看一个标准的生产配置
global_defs { # 全局配置块开始
# 这里的配置对整个keepalived进程生效
# 1. 路由器标识(必改)
router_id lb01 # 【路由器标识】运行keepalived的服务器标识
# 必须改成实际主机名,如lb01、lb02
# 作用:在日志和邮件中区分不同机器
# 主备节点必须设置不同的router_id
# 2. VRRP协议配置(核心)
vrrp_skip_check_adv_addr # 【跳过地址检查】不检查VRRP通告包的源地址
# 作用:避免在多网卡、复杂网络环境下误判
# 建议保留,提高兼容性
# vrrp_strict # 【严格模式】【重点】必须注释掉!
# 如果开启此选项:
# - VIP不能和物理IP在同一网段
# - 必须使用组播,不能用单播
# - 很多合法配置会报错
# 生产环境99%的情况都要注释掉
vrrp_garp_interval 0 # 【免费ARP间隔】VIP切换时发送免费ARP
# 0表示不限制发送速度,立即发送
# 作用:通知交换机MAC地址变了,加快网络收敛
# 建议保持默认0
vrrp_gna_interval 0 # 【免费NA间隔】IPv6环境使用
# 作用和vrrp_garp_interval类似,但用于IPv6
# 只用IPv4的话保持默认0即可
# 3. 邮件告警(可选,现代环境建议用监控系统)
# notification_email { # 【邮件收件人】如果不需要邮件告警,全部注释掉
# ops@company.com # 收件人地址
# } # 可配置多个
#
# notification_email_from keepalived@lb01 # 【邮件发件人】邮件显示的发件地址
#
# smtp_server 192.168.1.100 # 【邮件服务器】SMTP服务器地址
# # 需要本机能访问且无需认证
#
# smtp_connect_timeout 30 # 【连接超时】连接SMTP超时时间(秒)
}
}
二、每个配置的运维视角解读
2.1 router_id —— 唯一必须改的
router_id lb01
运维必知:
- 作用:日志里标识这台机器
- 怎么配:改成主机名或IP,两台机器不能一样
- 查看效果:
grep router_id /var/log/messages
主备示例:
# 主节点
router_id lb01
# 备节点
router_id lb02
2.2 vrrp_strict —— 最容易踩的坑
# vrrp_strict # 一定要注释掉!
为什么必须注释?
| 状态 | 后果 |
|---|---|
| 开启(有这行) | VIP和物理IP在同一网段时会报错,VIP起不来 |
| 注释(没这行) | 一切正常 |
一句话:生产环境99%的情况都要注释掉,除非你知道自己在做什么。
2.3 vrrp_skip_check_adv_addr —— 保留别动
vrrp_skip_check_adv_addr
作用:让VRRP协议更”宽容”,不检查收到的包来源是否合法。
运维建议:保留。特别是有多网卡、多VLAN的环境,少了它可能误判。
2.4 garp 相关 —— 保持默认
vrrp_garp_interval 0
vrrp_gna_interval 0
作用:VIP切换时,立即通知交换机”MAC地址变了”。
运维建议:保持0,让切换最快完成。改大了会导致切换后业务恢复慢。
2.5 邮件告警 —— 知道怎么配就行
notification_email {
ops@company.com
dba@company.com
}
notification_email_from keepalived@lb01
smtp_server 192.168.1.100
smtp_connect_timeout 30
运维须知:
- 能用吗:能用,但要配邮件服务器(postfix等)
- 推荐吗:不推荐,现在都用Zabbix/Prometheus/钉钉告警
- 怎么办:不用就删掉,留着也没事但没必要
三、三种环境配置速查
测试环境(随便玩玩)
global_defs {
router_id lb01
vrrp_skip_check_adv_addr
# vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
生产环境(标准配置)
global_defs {
router_id lb01
vrrp_skip_check_adv_addr
# vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
# 邮件全删掉,用监控系统
}
需要邮件告警的传统环境
global_defs {
router_id lb01
vrrp_skip_check_adv_addr
# vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
notification_email {
ops@company.com
}
notification_email_from keepalived@lb01
smtp_server mail.company.com
smtp_connect_timeout 30
}
四、一句话总结
global_defs 配好三样:router_id 必改、vrrp_strict 必关、其他默认不动。
| 配置 | 必配 | 操作 |
|---|---|---|
| router_id | ✅ | 改成主机名 |
| vrrp_strict | ✅ | 注释掉 |
| vrrp_skip_check_adv_addr | ✅ | 保留 |
| 邮件相关 | ❌ | 不用就删 |
| garp相关 | ✅ | 默认0就行 |
发表回复