keepalived推荐使用单播方式进行 VRRP 通信
1. keepalived的原理
在传统的物理网络中,可以通过 keepalived 的 VRRP 协议协商主备状态,其原理是:主设备周期性发送免费 ARP 报文刷新上联交换机的 MAC 表或终端 ARP 表,触发 VIP 迁移到主设备上。
2. 开启组播功能 打开 VPC 组播开关;同时在 keepalived 配置文件中无需配置对端设备的 IP 地址,即不配置 “unicast_peer” 参数
#单播模式需要关闭vrrp_strict,严格遵守vrrp协议这个选项
单播需要在VIP实例配置段加入单播的源地址和目标地址
[root@node1 ~]# cat /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } } vrrp_script checkhaproxy { #script "/etc/keepalived/do_sth.sh" # 检测业务进程是否运行正常。其中“do_sth.sh”文件为用户自定义的业务进程检测脚本,请根据业务需要来执行,执行时“do_sth.sh”更换为实际的脚本名称。 script "/usr/bin/curl -s http://10.0.22.16:8008/leader -v 2>&1|grep '200 OK' >/dev/null" interval 5 } vrrp_instance VI_1 { # 注意主备参数选择 state BACKUP # 设置初始状态均为“备“ interface eth0 # 设置绑定 VIP 的网卡 例如 eth0 virtual_router_id 51 # 配置集群 virtual_router_id 值 nopreempt # 设置非抢占模式, # preempt_delay 10 # 仅 state MASTER 时生效 priority 100 # 两设备是相同值的等权重节点 advert_int 5 authentication { auth_type PASS auth_pass 1111 } unicast_src_ip 10.0.22.16 # 设置本机内网IP地址 unicast_peer { 10.0.22.6 # 对端设备的 IP 地址 10.0.22.17 } virtual_ipaddress { 10.0.22.144 # 设置高可用虚拟 VIP } garp_master_delay 1 # 设置当切为主状态后多久更新 ARP 缓存 garp_master_refresh 5 # 设置主节点发送 ARP 报文的时间间隔 track_interface { eth0 # 使用绑定 VIP 的网卡 例如 eth0 } track_script { checkhaproxy } } [root@node1 ~]#
参考:keepalived 单播模式_Masuri的技术博客_51CTO博客
私有网络 用 HAVIP+Keepalived 搭建高可用主备集群 - 最佳实践 - 文档中心 - 腾讯云 (tencent.com)
用一个例子来演示会更加清晰