在现代网络架构中,确保服务的高可用性至关重要。当主路由器发生故障时,如何无缝切换到备用设备而不影响用户访问?这就是HSRP协议(Hot Standby Router Protocol,热备份路由器协议)要解决的问题。
虽然 HSRP 最初由 Cisco 开发并主要用于 Cisco 设备,但在 Linux 环境中,我们可以通过开源工具(如 Keepalived)模拟类似 HSRP 的功能,实现网络冗余 和路由器热备份。本教程将手把手教你如何在 Linux 系统中配置类 HSRP 的高可用网关。
什么是 HSRP 协议?
HSRP 是一种第一跳冗余协议(FHRP),允许多台路由器共享一个虚拟 IP 地址作为默认网关。正常情况下,只有一台"活跃"路由器处理流量;当它宕机时,备用路由器会自动接管虚拟 IP,实现对终端用户透明的故障转移。

为什么 Linux 需要 HSRP?
尽管标准 Linux 内核不原生支持 HSRP,但企业级部署常需构建高可用网关。通过使用 Keepalived(基于 VRRP 协议,功能与 HSRP 类似),我们可以在 Linux 上实现相同的Linux高可用目标。
实验环境准备
- 两台 Linux 服务器(例如 Ubuntu 22.04)
- 同一局域网内,可互相通信
- 安装 Keepalived:
sudo apt install keepalived -y
配置步骤详解
1. 配置主节点(Master)
编辑配置文件 /etc/keepalived/keepalived.conf:
vrrp_instance VI_1 { state MASTER interface eth0 # 替换为你的网卡名 virtual_router_id 51 # 主备必须一致 priority 100 # 主节点优先级更高 advert_int 1 authentication { auth_type PASS auth_pass 1111 # 主备密码需相同 } virtual_ipaddress { 192.168.1.100/24 # 虚拟网关IP }}
2. 配置备节点(Backup)
同样编辑 /etc/keepalived/keepalived.conf,仅修改几处:
vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 51 priority 90 # 低于主节点 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.100/24 }}
3. 启动服务并测试
在两台机器上执行:
sudo systemctl enable --now keepalived
使用 ip addr show 查看虚拟 IP 是否出现在主节点上。然后手动停止主节点的 Keepalived 服务,观察虚拟 IP 是否漂移到备节点------这就是 HSRP 的核心机制!
常见问题与优化
- 防火墙设置:确保 UDP 112 端口(VRRP 使用)开放。
- 多实例支持:可配置多个 vrrp_instance 实现不同网段的冗余。
- 健康检查:结合脚本监控服务状态,动态调整优先级。
总结
虽然 Linux 不直接支持 Cisco 的 HSRP 协议,但借助 Keepalived 和 VRRP,我们可以轻松实现同等效果的网络冗余 与路由器热备份。这对于构建稳定、可靠的网络基础设施至关重要。掌握这项技术,不仅能提升你的运维能力,也是迈向专业网络工程师的重要一步。
记住关键词:HSRP协议 、网络冗余 、路由器热备份 、Linux高可用------它们是你深入学习高可用网络架构的基石!