防火墙双机热备技术之VRRP

VRRP是双机热备的基础

VRRP是一个接口概念,并不是一个整机概念

官方定义

VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议) 是一种用于实现网关设备备份 的协议。它通过将多台物理路由器组合成一个虚拟路由器,为主机提供不间断的网关服务。


一、VRRP工作原理

1. 核心概念

复制代码
# VRRP中的关键角色:
虚拟路由器:逻辑上的网关(如192.168.1.1)
虚拟IP地址(VIP):网关地址(192.168.1.1)
虚拟MAC地址:格式为00-00-5E-00-01-{VRID}
主路由器(Master):当前处理流量的物理路由器
备份路由器(Backup): standby状态的物理路由器
VRID:虚拟路由器ID(1-255),同一组设备VRID相同

2. 工作流程

步骤1:选举主路由器

bash 复制代码
# 启动时,所有VRRP路由器比较优先级:
1. 优先级高的成为Master(默认100,范围1-254)
2. 优先级相同则比较接口IP地址,大的成为Master
3. Master获得虚拟IP和虚拟MAC的所有权

# 配置示例:
Router-A: priority 120 → 成为Master
Router-B: priority 100 → 成为Backup

步骤2:Master定期发送通告

bash 复制代码
# Master通过组播地址224.0.0.18发送VRRP通告
报文内容:
- VRID:虚拟路由器ID
- 优先级:当前优先级
- 虚拟IP地址
- 通告间隔(默认1秒)

# Backup监听通告,确认Master存活

步骤3:故障检测与切换

bash 复制代码
# Backup监控Master状态:
1. 正常情况:Backup每收到Master的通告就重置计时器
2. 故障情况:如果Backup在3倍通告间隔内未收到通告
3. 触发切换:Backup中优先级最高的成为新的Master
4. 新Master:接管虚拟IP,发送免费ARP更新MAC表

# 切换时间:通常<3秒

步骤4:原Master恢复

bash 复制代码
# 原故障Master恢复后:
1. 如果配置了抢占模式(默认开启):比较优先级
   - 原Master优先级更高:重新抢占成为Master
   - 原Master优先级更低:保持Backup状态
2. 如果不抢占:保持Backup状态

3. 数据流向

bash 复制代码
主机通信流程:
1. 主机发送数据包:目的MAC = 虚拟MAC地址
2. 当前Master路由器:以自己的物理MAC响应ARP请求
3. 数据包到达Master路由器,被正常转发
4. 如果Master故障,Backup成为新Master
5. 新Master发送免费ARP,更新网络中所有设备的ARP表
6. 后续数据包自动发往新Master

二、VRRP怎么用?配置示例

1. 基础拓扑

bash 复制代码
          虚拟IP: 192.168.1.1/24
                  |
       [Router-A]   [Router-B]
          |           |
      192.168.1.2   192.168.1.3
          |           |
        -----内网主机-----

2. 华为设备配置

Router-A配置(主设备)

bash 复制代码
# 进入接口配置
<Huawei> system-view
[Huawei] sysname Router-A
[Router-A] interface GigabitEthernet 0/0/0
[Router-A-GigabitEthernet0/0/0] ip address 192.168.1.2 24

# 配置VRRP
[Router-A-GigabitEthernet0/0/0] vrrp vrid 1 virtual-ip 192.168.1.1
[Router-A-GigabitEthernet0/0/0] vrrp vrid 1 priority 120  # 设置高优先级
[Router-A-GigabitEthernet0/0/0] vrrp vrid 1 preempt-mode timer delay 5  
# 开启抢占,延迟5秒(避免频繁切换)

# 可选:配置跟踪接口(高级功能)
[Router-A-GigabitEthernet0/0/0] vrrp vrid 1 track interface GigabitEthernet0/0/1 reduced 30
# 如果上行接口G0/0/1故障,优先级降低30,触发切换

Router-B配置(备设备)

bash 复制代码
<Huawei> system-view
[Huawei] sysname Router-B
[Router-B] interface GigabitEthernet 0/0/0
[Router-B-GigabitEthernet0/0/0] ip address 192.168.1.3 24

# 配置VRRP(使用默认优先级100)
[Router-B-GigabitEthernet0/0/0] vrrp vrid 1 virtual-ip 192.168.1.1
# 默认priority=100,preempt-mode开启

3. 主机配置

bash 复制代码
# 所有内网主机配置:
IP地址:192.168.1.x/24
默认网关:192.168.1.1  ← 指向虚拟IP
DNS服务器:根据实际配置

# 主机完全不知道背后有两台路由器!

三、VRRP状态查看与验证

1. 查看VRRP状态

bash 复制代码
# 在Router-A上查看
[Router-A] display vrrp

# 输出示例:
GigabitEthernet0/0/0 | Virtual Router 1
  State           : Master           # 当前状态:主路由器
  Virtual IP      : 192.168.1.1      # 虚拟IP
  Master IP       : 192.168.1.2      # 主路由器实际IP
  PriorityRun     : 120              # 运行优先级
  PriorityConfig  : 120              # 配置优先级
  Preempt         : YES   Delay Time: 5s  # 抢占模式
  Timer           : 1s               # 通告间隔
  Auth Type       : NONE             # 认证类型
  Virtual MAC     : 0000-5e00-0101   # 虚拟MAC
  Check TTL       : YES
  Config Type     : normal           # 配置类型

# 备份路由器上显示State: Backup

详细文章:

https://chat.deepseek.com/share/pd56y0u4hzz8xmh6kl


为什么说VRRP是接口概念?

配置在接口上

bash 复制代码
# VRRP配置是在接口视图下完成的,不是系统视图
[Huawei] interface GigabitEthernet 0/0/0
[Huawei-GigabitEthernet0/0/0] vrrp vrid 1 virtual-ip 192.168.1.1
# ↑↑↑ 看!是在接口下配置的!

状态按接口独立维护

一台路由器可以有多个接口运行VRRP ,每个接口独立选举、独立维护状态

bash 复制代码
# 示例:路由器有两个接口运行VRRP
Router-A:
  - 接口G0/0/0:VRRP组1,状态=Master(管理192.168.1.0/24网段)
  - 接口G0/0/1:VRRP组2,状态=Backup(管理10.0.0.0/24网段)

# 在Router-A上查看:
[Router-A] display vrrp brief
Interface          VRID   State     Virtual IP      Master IP
GigabitEthernet0/0/0  1    Master    192.168.1.1     192.168.1.2
GigabitEthernet0/0/1  2    Backup    10.0.0.1        10.0.0.3
# 看!同一台设备,不同接口VRRP状态不同!

故障影响范围限于接口

bash 复制代码
# 如果Router-A的G0/0/0接口故障:
只有VRRP组1切换(192.168.1.0/24网段受影响)
VRRP组2不受影响(10.0.0.0/24网段正常)

# 如果Router-A整机断电:
所有接口的VRRP组都会切换
但这是"所有接口一起故障"的结果,不是VRRP的设计

详细解析:

https://chat.deepseek.com/share/o2rjkpeuxxsj70upjs



1. 虚拟路由器:一切的核心

  • "接口概念"的深度含义

    • 这意味着 VRRP 的绑定和运行是基于三层接口的,而不是整个路由器。一台路由器可以有多个接口,每个接口可以属于不同的 VRRP 组,扮演不同的角色(Master/Backup)。

    • 实战意义 :你可以实现负载分担。例如,Router A 在 VLAN 10 的 VRRP 组 1 中是 Master,在 VLAN 20 的 VRRP 组 2 中是 Backup;Router B 则相反。这样流量可以分摊到两台设备上。

  • 虚拟IP与虚拟MAC的协同

    • 虚拟IP(VIP):这是对"上层"(用户主机)的承诺。所有主机的网关都指向这个永不变化的 IP。

    • 虚拟MAC(VMAC) :这是对"下层"(交换机)的标识。0000.5E00.01XX 是 IEEE 分配的 VRRP OUI。交换机通过学习,将 VMAC 的端口指向当前 Master 设备。

    • 关键交互 :当用户主机发送 ARP 请求问"VIP 的 MAC 是什么"时,只有 Master 会用自己的物理接口 MAC注意:这里笔记有简化,实际过程更精巧 )来回应一个 ARP Reply ,但这个 Reply 里携带的源 MAC 地址是虚拟MAC。这样主机和交换机的 ARP 表里,VIP 对应的就是 VMAC。所有去往网关的流量,二层帧的目的 MAC 都是 VMAC。

    • 为什么这么设计? 如果 Master 用物理 MAC 回应,当 Master 切换时,所有主机的 ARP 缓存需要超时或广播更新,切换时间长(分钟级)。而使用 VMAC,只要 Backup 成为新 Master,它立刻就能以同一个 VMAC 接收和处理数据帧,实现了秒级甚至亚秒级切换,对上层完全透明。

2. & 3. Master/Backup:状态机与角色行为

  • 状态机 :VRRP 协议本质是一个状态机,有三种状态:Initialize, Master, Backup

    • Initialize:初始状态或接口 shutdown。

    • Master :设备正在行使网关功能。它必须周期性(Advertisement Interval)发送 VRRP 通告报文,以宣告自己存活。

    • Backup :设备监听 Master 的通告。如果超过 Master-Down Timer 没收到通告,则认为 Master 失效,发起选举进入 Master 状态。

  • "静默"的深层原因

    • Backup 不响应 ARP 请求:这是为了防止 ARP 冲突和混乱。想象一下,如果两个设备都回应同一个 VIP 的 ARP,网络中就会存在两个"网关",导致不可预知的转发行为。

    • Backup 不处理目的为 VMAC 的数据帧:在二层,交换机已经将 VMAC 绑定到 Master 的物理端口,所以流量根本不会到达 Backup 的接口。Backup 即使收到,也会丢弃,这是协议栈的规则。

4. Master 选举:不仅仅是优先级

  • 抢占模式(Preempt)

    • 默认开启。当更高优先级的 Backup 上线或恢复后,它会等待一个很短的时间(Skew Time),然后发送 VRRP 报文,触发重新选举,夺回 Master 身份。

    • 可以关闭。关闭后,除非当前 Master 故障,否则即使高优先级的设备恢复,也不会抢夺 Master 身份。这适用于希望保持网络稳定的场景,避免因主设备短暂波动导致的反复切换。

5. Master-Down 计时器:可靠性数学

  • 公式:3 * Advertisement_Interval + (256 - Priority) / 256

    • 3 * Advertisement_Interval:这是基础检测时间 。连续错过 3 个通告报文,才认为 Master 故障。这是一种简单的容错机制,避免因单个报文丢失(网络拥塞)导致的误切换。

    • Skew Time = (256 - Priority) / 256:这是偏移时间,单位是秒。

      • 设计精妙之处 :优先级越高的设备,Skew Time 值越小。这意味着在 Master 失效后,优先级最高的 Backup 会最先超时,从而最先发起选举成为新 Master。这保证了选举的确定性和快速性,避免了多个 Backup 同时发起选举可能产生的冲突。

6. 报文:协议交互的载体

  • 组播地址 224.0.0.18

    • 这是链路本地范围的管理组播地址(TTL=1),只在同一广播域(VLAN)内传播,不会被路由器转发。这保证了 VRRP 的会话仅限于直连的、需要参与冗余的几台设备之间,安全且高效。
  • 目的MAC 0100.5E00.01XX

    • 这是将组播 IP 224.0.0.18 映射成的组播 MAC(根据 IEEE 规则)。注意,这里的 XX 也是 VRID。这个 MAC 用于传递 VRRP 协议报文本身 ,而前面提到的 0000.5E00.01XX 虚拟 MAC 是用于承载用户数据流量的。两者不同,不要混淆。

7. 优先级:控制的把手

  • 0 的特殊用途 :Master 如果想主动放弃身份(如管理员手动降级、或监控的上行链路失效),可以立即发送一个优先级为 0 的通告报文。Backup 收到后,会立即意识到 Master 主动退位,从而快速触发选举,无需等待 Master-Down 计时器超时。

  • 255 的自动赋值 :如果 VRRP 虚拟 IP 就是路由器接口配置的真实 IP (即 IP 地址所有者),则该路由器在此 VRRP 组中的优先级自动为 255,并且不可更改。这保证了拥有"真实地址"的设备在可用时永远为 Master,因为它的转发路径最优化(无需绕行)。

  • 优先级与跟踪(Track) :这是 VRRP 高级应用的核心 。可以配置监控上行链路或路由。如果被监控项失效,Master 或 Backup 可以自动降低自己的优先级。例如,Master 的上行出口断掉,它可以通过降低优先级触发切换,让拥有完好上行链路的 Backup 接管,实现端到端的可靠性,而不仅仅是网关设备本身的冗余。


关于优先级255的分析

https://chat.deepseek.com/share/vclmabtclkvpnbc74n


状态机

华为的HRP是想让VRRP从接口概念变成整机概念。如果是接口概念的话,可能会出现Master不同,需要通过track追踪才行。

相关推荐
橘子真甜~2 小时前
Reids命令原理与应用5 - Redis 主从同步与高可用集群
运维·网络·数据库·redis·缓存·redis集群·redis高可用
北京耐用通信2 小时前
告别通信干扰与距离限制:耐达讯自动化Profibus总线光纤中继器赋能伺服驱动器稳定连接
人工智能·科技·网络协议·自动化·信息与通信
寂寞恋上夜2 小时前
数据迁移方案怎么写:迁移策略/回滚方案/验证方法(附完整模板)
网络·数据库·oracle·markdown转xmind·deepseek思维导图
乾元3 小时前
10 个可复制的企业级项目:从需求到交付的 AI 网络工程模板(深度实战版)
运维·网络·人工智能·网络协议·安全
我是海飞3 小时前
杰理 AC792N WebSocket 客户端例程使用测试教程
c语言·python·单片机·websocket·网络协议·嵌入式·杰理
刘某某.3 小时前
RPC分类
网络·网络协议·rpc
番茄灭世神3 小时前
密码学入门基础
网络安全·区块链·密码学·哈希算法
qq_白羊座4 小时前
LDAP注入
网络
石像鬼₧魂石4 小时前
windows系统139/tcp与445/tcp端口渗透完整流程闭环(复习总结)
windows·网络协议·tcp/ip