第四讲:VRRP配置实战——在华为/思科设备上配置VRRP、验证主备切换、抓包分析VRRP报文

好,咱们直接进入正题。上一讲我们把VRRP的理论啃完了,这一讲就是动手干。说实话,理论再漂亮,配不出来也是白搭。我见过不少工程师,背了一堆概念,一到设备前就懵了。

今天咱们的目标很明确:在华为和思科设备上,把VRRP配通,然后手动触发主备切换,最后用Wireshark把VRRP报文抓出来看看。嗯,这三步走完,你才算真正掌握了VRRP。

4.1 实验拓扑与规划

先搭个最简单的环境。两台路由器(R1和R2)作为网关,后面挂一台PC。说白了,就是典型的双机热备场景。

设备 接口 IP地址 VRRP角色 优先级
R1(华为) G0/0/0 192.168.1.2/24 Master 120
R2(思科) G0/0 192.168.1.3/24 Backup 100(默认)
虚拟网关 - 192.168.1.1/24 VRRP Group 1 -
PC eth0 192.168.1.10/24 网关指向192.168.1.1 -

这里有个小细节:虚拟IP地址可以和Master的真实接口IP相同,也可以不同。我个人习惯让虚拟IP和Master的接口IP一致,这样Master正常时,流量直接走真实IP,少一层转发。但如果你想让虚拟IP独立,也没问题。

4.2 华为设备配置VRRP

先配华为的R1。华为的命令风格,说实话,比思科要啰嗦一点,但逻辑很清晰。

# 进入接口视图
system-view
interface GigabitEthernet 0/0/0

# 配置接口IP
ip address 192.168.1.2 255.255.255.0

# 配置VRRP,组号为1,虚拟IP为192.168.1.1
vrrp vrid 1 virtual-ip 192.168.1.1

# 设置优先级为120(默认是100,越高越优先)
vrrp vrid 1 priority 120

# 开启抢占模式(默认就是开启的)
vrrp vrid 1 preempt-mode timer delay 10

# 配置认证(可选,建议在实验环境中加上)
vrrp vrid 1 authentication-mode simple plain 123456

# 查看配置
display vrrp brief

注意那个 preempt-mode timer delay 10。什么意思呢?就是当R1从故障中恢复后,不会立刻抢回Master角色,而是等10秒。为什么要等?我曾经遇到过一个问题:R1刚恢复就抢回Master,结果路由表还没完全收敛,导致丢包。加个延迟,稳得很。

再看R2的配置,它是Backup,优先级保持默认100就行。

system-view
interface GigabitEthernet 0/0/0
ip address 192.168.1.3 255.255.255.0
vrrp vrid 1 virtual-ip 192.168.1.1
vrrp vrid 1 authentication-mode simple plain 123456
# 优先级保持默认100,不用配

配完后,在R1上执行 display vrrp brief,你会看到类似这样的输出:

VRID  State        Interface       Virtual IP          Priority
1     Master       GE0/0/0         192.168.1.1         120

R2上则是:

VRID  State        Interface       Virtual IP          Priority
1     Backup       GE0/0/0         192.168.1.1         100

嗯,看到Master和Backup都出来了,说明VRRP邻居关系已经建立。

4.3 思科设备配置VRRP

思科的配置,说白了更简洁一些。但有个坑:思科默认是抢占关闭的,和华为正好相反。你想想看,如果两台设备都关了抢占,那Master挂了再恢复,角色就乱套了。

# 进入全局模式
configure terminal

# 进入接口
interface GigabitEthernet 0/0

# 配置IP
ip address 192.168.1.2 255.255.255.0

# 配置VRRP,组号1,虚拟IP
vrrp 1 ip 192.168.1.1

# 设置优先级
vrrp 1 priority 120

# 开启抢占(思科默认关闭,必须手动开)
vrrp 1 preempt

# 设置抢占延迟(可选)
vrrp 1 preempt delay minimum 10

# 配置认证
vrrp 1 authentication 123456

# 查看状态
show vrrp brief

R2的配置类似,只是优先级保持默认100:

interface GigabitEthernet 0/0
ip address 192.168.1.3 255.255.255.0
vrrp 1 ip 192.168.1.1
vrrp 1 authentication 123456
# 不配优先级,默认100
# 不配抢占,让它当Backup

这里有个小技巧:思科的 show vrrp 输出比华为详细,它会显示Master的IP地址、抢占状态、计时器等信息。我个人习惯用 show vrrp 而不是 show vrrp brief,因为能看到更多细节。

4.4 验证主备切换

配置完了,咱们得验证一下切换是否正常。方法很简单:把Master的接口shutdown,看Backup能不能顶上

在R1(Master)上执行:

interface GigabitEthernet 0/0/0
shutdown

然后在R2上立刻查看状态:

display vrrp brief

你会看到R2的状态从Backup变成了Master。整个过程大概3秒左右,这就是VRRP的默认切换时间。

这时候,PC上ping 192.168.1.1,你会发现只丢了1-2个包,甚至一个都不丢。为什么?因为VRRP的切换是基于MAC地址的——虚拟MAC(0000-5e00-0101)从R1的端口漂移到了R2的端口,交换机的MAC表会很快更新。

然后恢复R1:

undo shutdown

等10秒(因为我们配了抢占延迟),R1会重新抢回Master角色。注意,这里不会丢包,因为R1在切换前已经准备好了。

关键验证点:

  • PC的网关始终可达(ping 192.168.1.1)
  • 切换过程中丢包不超过2个
  • 切换后,R2成为Master,R1恢复后重新抢占

4.5 抓包分析VRRP报文

好了,配置和切换都验证完了。接下来是重头戏——抓包分析VRRP报文。说实话,很多工程师配完VRRP能用就完事了,从来不看报文。但我觉得,只有看过报文,你才能真正理解VRRP的工作原理。

在PC上或者交换机上做端口镜像,抓取R1和R2之间的流量。过滤条件很简单:

vrrp

或者用IP协议号:

ip.proto == 112

抓到的报文长这样(我用Wireshark的解析结果来说明):

字段 说明
Version 3 VRRPv3,支持IPv4和IPv6
Type 1 (Advertisement) 通告报文,VRRP只有这一种报文类型
Virtual Rtr ID 1 VRID,和我们配置的组号一致
Priority 120 R1的优先级,Master发出来的
Count IP Addrs 1 虚拟IP的数量
Auth Type 1 (Simple Text) 简单明文认证
Advertisement Interval 1 second 默认1秒发一个通告
Checksum 0xabcd 校验和,用于完整性检查

注意看源MAC地址:00-00-5E-00-01-01。这个MAC就是VRRP的虚拟MAC,格式是 00-00-5E-00-01-{VRID}。嗯,这里VRID是1,所以最后两位是01。

你可能会问:为什么源MAC是虚拟MAC,而不是R1的真实MAC?

原因很简单:VRRP报文的目的MAC是组播MAC(01-00-5E-00-00-12),源MAC用虚拟MAC,可以让Backup设备直接识别出这是哪个VRRP组的报文。如果源MAC用真实MAC,Backup还得查表才知道对应哪个组,多此一举。

抓包小技巧:

如果你在交换机上抓包,记得把端口镜像的源端口设置为连接R1和R2的端口。我曾经犯过一个错误:只镜像了连接PC的端口,结果啥也没抓到。VRRP报文只在路由器之间交互,PC是看不到的。

4.6 常见问题与避坑指南

最后,分享几个我踩过的坑:

  • 认证不匹配:华为和思科的认证方式有细微差别。华为的 simple plain 是明文,思科的 authentication 也是明文,但密钥长度限制不同。我建议实验环境中干脆不配认证,或者统一用明文且密钥不超过8位。
  • 抢占模式不一致:华为默认开启抢占,思科默认关闭。如果你在混合组网中没注意这个差异,会出现「Master挂了,Backup不接管」或者「Master恢复后,角色乱跳」的问题。
  • 计时器不一致:华为和思科的默认通告间隔都是1秒,但如果你改了其中一台,另一台没改,VRRP邻居会反复震荡。我遇到过最夸张的一次,客户网络每3秒断一次,查了半天发现是两台设备的Advertisement Interval不一致。

好了,这一讲的内容就到这里。配置、验证、抓包,三步走完,VRRP对你来说应该没什么秘密了。下一讲,咱们聊聊VRRP的高级特性——跟踪接口和上行链路检测,那才是生产环境中真正救命的东西。