第四讲: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的高级特性——跟踪接口和上行链路检测,那才是生产环境中真正救命的东西。