Keepalived 高可用实战:VIP 是如何在内网“生效”的?

目录

🚀 Keepalived 高可用实战:VIP 是如何在内网“生效”的?

🧩 一、什么是 Keepalived?

🛠 二、主备架构配置案例

▶️ 环境设置

▶️ 安装 Keepalived

▶️ 主节点配置 /etc/keepalived/keepalived.conf

▶️ 备节点配置

▶️ 启动服务

🌐 三、VIP 是如何“被客户端看到”的?

❓ 疑问一:客户端如何访问 192.168.1.100?

✅ 答案:靠的是 ARP 协议!

❓ 疑问二:VIP 没有物理网卡,怎么被“注册进网络”的?

✅ 答案:Keepalived 会主动发送 ARP 通告包(gratuitous ARP)

❓ 疑问三:主挂了怎么办?VIP 自动切换吗?

✅ 答案:是的!这是 Keepalived 的核心能力。

🔍 四、验证 VIP 是否可达

📌 五、总结:VIP 是如何无感接管服务访问的?

📚 延伸阅读


🚀 Keepalived 高可用实战:VIP 是如何在内网“生效”的?

本文将带你从零配置 Keepalived 实现主备切换,并深入剖析虚拟 IP(VIP)为何能在局域网内被其他机器访问,而无需任何交换机或路由器手动配置。


🧩 一、什么是 Keepalived?

Keepalived 是一款轻量级高可用(HA)工具,常用于实现主备冗余、高可用 IP(VIP)漂移。它通过内置的 VRRP(Virtual Router Redundancy Protocol)协议在多台机器之间协调一个虚拟 IP,保障服务始终在线。

典型应用:

  • 高可用 Nginx 网关

  • 高可用 Redis、MySQL 主备部署

  • Kubernetes 节点 VIP 绑定


🛠 二、主备架构配置案例

▶️ 环境设置

角色主机名IP 地址VIP(虚拟IP)
node1192.168.1.101192.168.1.100
node2192.168.1.102192.168.1.100

VIP 会在主节点上绑定,如果主节点宕机,VIP 会自动“漂移”到备节点。


▶️ 安装 Keepalived

# CentOS/RHEL
sudo yum install -y keepalived

# Ubuntu/Debian
sudo apt-get install -y keepalived

▶️ 主节点配置 /etc/keepalived/keepalived.conf

vrrp_instance VI_1 {
    state MASTER
    interface eth0                  # 当前网卡名
    virtual_router_id 51           # VRRP 实例 ID,主备一致
    priority 100                   # 优先级高表示为主
    advert_int 1                   # 心跳间隔(秒)
    authentication {
        auth_type PASS
        auth_pass 123456
    }
    virtual_ipaddress {
        192.168.1.100              # 这里是 VIP
    }
}

▶️ 备节点配置

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 123456
    }
    virtual_ipaddress {
        192.168.1.100
    }
}

▶️ 启动服务

systemctl enable keepalived
systemctl start keepalived

🌐 三、VIP 是如何“被客户端看到”的?

❓ 疑问一:客户端如何访问 192.168.1.100?

假设你的客户端是 192.168.1.200,它为什么可以访问 192.168.1.100?

✅ 答案:靠的是 ARP 协议!
  • 局域网中,当客户端访问某个 IP(如 192.168.1.100)时,系统会先发起 ARP 请求:

    谁拥有 192.168.1.100?请告诉我你的 MAC 地址。
    
  • 当前持有 VIP 的主节点会回应这个请求,告诉客户端自己的 MAC 地址。

  • 客户端获得 MAC 后,直接通过二层以太网通信。


❓ 疑问二:VIP 没有物理网卡,怎么被“注册进网络”的?

✅ 答案:Keepalived 会主动发送 ARP 通告包(gratuitous ARP)
  • 当 Keepalived 在主节点上绑定 VIP 时,会调用系统命令将 VIP 加入网卡:

    ip addr add 192.168.1.100 dev eth0
    
  • 然后主动向局域网广播 ARP 通告:

    广播:192.168.1.100 的 MAC 是 XX:XX:XX:XX:XX:XX
    
  • 所有网关、交换机、其他主机都会更新它们的 ARP 缓存,从而知道 VIP 应该转发到这台主机。


❓ 疑问三:主挂了怎么办?VIP 自动切换吗?

✅ 答案:是的!这是 Keepalived 的核心能力。
  • 主节点宕机后,备节点发现心跳中断,抢占 VIP。

  • 抢占成功后,它也会发出 ARP 通告,告诉全网:“现在 192.168.1.100 在我这里!”

客户端几秒钟内即可重新连接成功,业务不中断。


🔍 四、验证 VIP 是否可达

  1. 在主节点查看 VIP 是否绑定:

    ip addr | grep 192.168.1.100
    
  2. 在客户端(192.168.1.200)查看 ARP 表:

    arp -a | grep 192.168.1.100
    

    你将看到一条绑定了真实 MAC 的记录。

  3. 停掉主节点 Keepalived:

    systemctl stop keepalived
    
  4. 几秒后在备节点执行:

    ip addr | grep 192.168.1.100
    

    VIP 自动漂移成功。


📌 五、总结:VIP 是如何无感接管服务访问的?

项目说明
VIP 漂移原理VRRP + ARP 通告
客户端访问方式局域网 ARP 获取 VIP 所属 MAC
主备切换机制主挂后,备节点抢占 VIP,并发 ARP 通知
网络设备是否需配置不需要!完全基于 Linux + ARP 工作
跨网段部署需额外方案,如 LVS DR/BGP/arping(不在本文范围,可另开专题讲解)

📚 延伸阅读

  • Keepalived + HAProxy 高可用

  • 使用健康检查脚本防止“假活着”节点接管

  • 跨三层部署 VIP 的高级方案(arping + arptables)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值