VRRP故障处理手册


第1章 VRRP故障处理

1.1 简介

VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)是一种容错协议,通过物理设备和逻辑设备的分离,为网络提供高可靠性和高可用性,对于网络故障的自适应至关重要。

VRRP将局域网内的一组路由器划分在一起,称为一个备份组。备份组由一个Master路由器和多个Backup路由器组成,功能上相当于一台虚拟路由器,通过一定选举机制保证只有Master路由器承担转发任务。当Master路由器发生故障时,Backup会自动接替成为Master。

1.2 常见问题

1.2.1 配置VRRP之后出现多个Master

1. 问题描述

局域网内的主机无法与外部通信时,通过display vrrp命令或者通过SNMP网管方式查看VRRP备份组中各个路由器的状态,发现有多个VRRP路由器都处于Master状态。

2. 问题定位

按如下步骤依次检查:

(1) 检查VRRP配置是否一致

VRRP要求组成备份组的多个路由器必须配置一致,即要求虚拟IP地址,VRRP报文广播间隔时间,认证方式和认证字的配置必须相同。

(2) 检查端口互通性

确认互连端口是否处于up状态。检查互连端口的配置情况,如果是trunk或者hybrid端口,要确定端口PVID是否一致,是否允许VRRP备份组所在VLAN通过,端口是否配置802.1x等协议。检查端口是否因STP、RRPP、Smart-link或者LACP等协议而阻塞。使用display interface命令查看端口是否存在大量错误的报文。

(3) 检查VRRP报文收发

打开VRRP调试开关,确定VRRP报文是否能够正常收发。如果看不到VRRP报文调试信息,可以打开IP报文调试信息进行查看。

(4) 检查CPU占用情况

通过命令display cpu-usage查看VRRP协议报文互通的业务板和主控板CPU占用率是否过高。可以通过命令display interface查询端口流量,确定网络中是否存在广播风暴。如果存在网络风暴,则VRRP报文无法正常送给CPU处理,VRRP状态必然出现异常。

3. 问题解决

(1) VRRP配置不对称

在接口视图下使用display this命令查看配置。请确认哪一端的配置是正确的,修改另一端配置,使VRRP配置一致。

(2) 端口互通问题

如果是端口不允许VRRP备份组所在VLAN通过或者PVID问题,请更改相关配置;如果链路被STP等协议Discarding,导致VRRP协议报文无法正常传送,请修改端口STP优先级等配置以保证互连端口能够正常进行VRRP协议报文转发。如果端口存在大量错误的报文,则需要检查链路,如检查两端的光衰减是否在正常范围。如有故障,请更换连接所用的光纤。

(3) VRRP报文收发不正常

如果在确保端口互通性的前提下仍然看不到VRRP的报文调试信息,很有可能是VRRP报文被丢弃。如果CPU限速导致报文丢弃,可根据实际组网需要适当减少配置的VRRP路由器数量或者调整VRRP报文发送时间间隔。

(4) CPU占用率过高

请关闭不必要的业务。如果CPU仍然保持比较高的占用率,不能解决问题,请联系技术支持人员。

1.2.2 VRRP路由器状态不稳定

1. 问题描述

网络中一台或多台VRRP路由器状态极不稳定,频繁发生Backup->Master->Backup,或者Master->Initialize->Backup->Master的状态切换。

2. 问题定位

请按如下步骤依次检查:

(1) 检查振荡的VRRP路由器所在链路的链路状态

观察日志信息,确认VRRP状态切换前是否发生链路状态的up/down变化。因为VRRP状态是受链路状态影响的,所以链路的不稳定会引起VRRP状态的振荡。同时要关注VRRP配置的监视接口的链路状态,因为VRRP路由器的优先级会随监视接口的链路状态而变化,该链路状态不稳定也会引起VRRP状态的振荡。

(2) 检查VRRP路由器所在网络互通性

可采用在VRRP路由器上ping对端的接口实际IP地址的方式来检测VRRP路由器的网络互通性。如果不能ping通或者出现不连续中断,请检查链路是否有环路等问题。

(3) 检查STP等协议

使用命令display stp brief查看互连端口的STP状态是否正常。STP状态的反复切换会造成VRRP状态的反复切换,必须保证VRRP协议报文通过的链路STP状态稳定。检查端口是否因STP、RRPP、Smart-link或者LACP等协议而阻塞。

(4) 检查VRRP报文收发

参见1.2.1 2. (3)。观察VRRP的报文调试信息,在网络比较拥塞的环境下,Backup路由器可能在等待超时后才收到Master路由器的报文,导致备份组内的成员频繁的进行主备状态转换。

(5) 检查CPU占用情况

参见1.2.1 2. (4)

(6) 寻求进一步帮助

如果上述方法不能确定问题,请联系技术支持人员。

3. 问题解决

链路故障请排除组网问题;因STP等协议引起的端口阻塞问题可以参见各协议配置手册更改配置或者根据需要关闭相应协议;报文收发问题解决参见1.2.1 3. (3)。在网络比较拥塞的环境,可以适当增加Backup等待延迟时间;CPU占用率过高问题的解决请参见1.2.1 3. (4)。

1.2.3 VRRP备份组不能进行三层转发

1. 问题描述

默认网关设为VRRP虚拟IP地址的主机不能访问外部网络。

2. 问题定位

请按如下步骤依次检查:

(1) 检查VRRP备份组状态是否稳定

查看同属一个备份组的各个路由器的状态是否是一主多备(通常是一主一备)。如果发现有两个或多个Master路由器,请参见“1.2.1 配置VRRP之后出现多个Master”;如果VRRP状态有频繁切换的情况,请参见“1.2.2 VRRP路由器状态不稳定”。

(2) 检查互通性

检查业务经过端口的配置信息,确定端口是否启用802.1x,ACL规则,端口是否允许VRRP路由器所在VLAN通过。

使用命令display stp brief检查业务经过端口的STP状态,确定端口STP状态是否正常,且端口STP状态是否稳定。检查端口是否因STP、RRPP、Smart-link或者LACP等协议而阻塞。

在确认vrrp ping-enable使能的情况下,检查是否能ping通VRRP路由器的虚拟IP地址。vrrp ping-enable属于全局配置,只有在没有配置VRRP备份组的情况下才能更改此配置。

(3) 检查ARP和MAC地址表项学习情况

当网络拓扑结构发生变化时,ARP表项和MAC地址表项可能无法及时更新,导致报文不能正常转发。

依次检查以下表项的正确性:

l 使用命令display arp检查Master路由器上是否成功学习到内部网络中主机的ARP表项。

l 检查内部网络中主机的ARP表项学习情况。内部网络中主机学到的虚拟IP地址和MAC地址对应关系,应该与VRRP备份组配置的虚拟IP地址和MAC地址对应方式保持一致。即实MAC方式时,应为虚拟IP地址和Master路由器的接口MAC地址对应;虚MAC方式时,应为虚拟IP地址和VRRP备份组的虚拟MAC地址对应。

l 确认连接路由器的交换机的MAC地址表项情况,确认Master路由器的MAC(实MAC方式)或虚拟MAC地址(虚MAC方式)对应正确的交换机端口。

(4) 检查三层互通

使用Ping功能,在业务的两端进行互Ping,确定是否能够Ping通。如果能够Ping通,证明三层转发没有问题,需要检查主机发送的业务报文是否正确。

(5) 检查路由表项

如果不能ping通,检查VRRP路由器的路由表项是否正确。是否配置了正确的静态路由,以及路由协议是否工作正常。

(6) 检查报文接收

通过打开IP报文调试开关,观察TTL等字段信息,确定是否因为报文填充错误而被丢弃。

3. 问题解决

(1) VRRP状态不稳定

请参见“1.2.1 配置VRRP之后出现多个Master”和“1.2.2 VRRP路由器状态不稳定”中相应的问题解决过程。

(2) 端口配置、STP配置等故障

请更改trunk或hybrid端口上PVID配置,删除无用的ACL规则、802.1x配置,更改STP优先级等配置,保证二层互通。

(3) 路由问题

在设备上正确配置静态路由或动态路由协议。

(4) ARP学习问题

请参照《ARP故障处理手册》。

(5) 报文发送和接收问题

确认是否发送的业务报文有误。如果无误,请联系技术支持人员。

1.2.4 无法ping通VRRP虚拟IP地址

1. 问题描述

VRRP备份组中只存在一个处于Master状态的路由器,但是主机无法ping通该VRRP备份组的虚拟IP地址。

2. 问题定位

(1) 确认主机能否ping通设备接口的实际IP地址。

(2) 通过display vrrp命令,查看“Virtual IP Ping”字段,确认备份组的虚拟IP地址能否被ping通。

(3) 如果在vrrp ping-enable使能的条件下不能ping通,输入display ip routing-table命令查看是否有VRRP虚拟IP地址对应的主机路由。

3. 问题解决

(1) 如果无法ping通接口的实际IP地址,请确认链路连接是否正常,报文转发是否正常,解决方法请参见“1.2.1 配置VRRP之后出现多个Master”。

(2) 如果display vrrp的显示信息如下,需要执行vrrp ping-enable命令使备份组的虚拟IP地址可以被ping通。在系统视图下输入vrrp ping-enable命令。

<sysname> display vrrp

IPv4 Standby Information:

Run Method : VIRTUAL-MAC

Virtual IP Ping : Disable

The total number of the virtual routers: 1

Interface VRID State Run Adver. Auth Virtual

Pri Time Type IP

---------------------------------------------------------------------

GE0/0 1 Master 155 1 NONE 192.168.1.1

& 说明:

vrrp ping-enable命令只有在没有创建VRRP备份组的情况下才允许配置。

(3) 如果通过上述步骤不能确定问题,请检查路由表中VRRP虚拟IP地址对应的路由。如果路由表中没有虚拟IP地址对应的路由,请通过静态路由或动态路由协议添加。检查对应的主机路由是否存在。如果不存在,说明是VRRP和路由的配合出现了问题,请联系技术支持人员。

<Sysname> display ip routing-table

Routing Tables: Public

Destinations : 5 Routes : 5

Destination/Mask Proto Pre Cost NextHop Interface

127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0

127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0

172.1.0.0/16 Static 60 0 192.168.1.2 GE0/0

192.168.1.0/24 Direct 0 0 192.168.1.1 GE0/0

192.168.1.1/32 Direct 0 0 127.0.0.1 InLoop0

1.2.5 VRRP监视功能失效

1. 问题描述

配置VRRP监视某链路,当该链路处于down状态时对端VRRP没有切换成为Master;或者链路处于up状态时,本地VRRP优先级降低。

2. 问题定位

(1) 通过display vrrp verbose命令查看本地VRRP的运行优先级是否按预期降低。

(2) 检查VRRP的配置是否正确。如果VRRP不是直接监视接口,而是监视Track项(当前支持BFD和NQA两种探测协议),Master监视自己的上行链路时,需要通过vrrp vrid track reduced命令配置降低的优先级额度;Backup监视Master状态时,需要通过vrrp vrid track switchover命令配置Backup路由器工作在switchover模式。

(3) 如果监视接口之后VRRP优先级始终降低,请查看所监视的链路协议状态。

3. 问题解决

(1) 如果优先级已降低,但是对端没有切换,说明优先级配置不合理。通过命令行增大优先级降低的幅度,保证本地VRRP优先级降低之后,低于对端的优先级。如果是监视Track项的模式配置错误,则需要更改配置;

(2) 对于不同的监视接口类型,关注的链路层协议类型也有所不同。确保VRRP监视了正确的协议。对于上层协议来说,如果是IPv4版本的VRRP,应该监视链路的IPv4协议状态;如果是IPv6版本的VRRP,则应该监视链路的IPv6协议状态。对于监视Track项的情况,确认监视项的状态。

1.3 故障处理过程

1.3.1 故障诊断流程

图1-1 故障诊断流程图

1.3.2 故障处理步骤

1. 查看VRRP配置是否正确

在接口视图下执行display this命令,观察两端配置是否对称、优先级设置(包括优先级配置和监视接口降低值)是否合理。VRRP要求组成虚拟路由器的多个路由器必须配置一致,即要求虚拟IP地址、VRRP报文广播间隔时间、认证方式和认证字的配置必须相同。此外,设备上能够支持的虚MAC下发的数目有规格限制。一台设备上处于Master状态的VRRP备份组数目超过了该规格限制后,会导致部分虚拟MAC地址无法下发,相应的备份组回退到Initialize状态。

2. 检查链路互通

检查端口配置(VLAN配置、802.1x、STP状态等),ping VRRP所在接口实IP地址,观察是否能够ping通。检查互连端口的配置情况,如果是trunk或者hybrid端口,要确定端口PVID是否一致,是否允许VRRP备份组所在VLAN通过,端口是否配置802.1x等协议。使用命令display stp brief查看互连端口STP状态是否正常。检查端口是否因为RRPP、Smart-link或者LACP等协议而阻塞。

3. 检查报文收发

打开VRRP报文调试开关,检查报文在指定接口的收发是否正常。

可以打开以太网报文调试开关debugging ethernet packet和IP报文调试开关debugging ip packet配合检查(以太网报文的目的MAC是VRRP的组播MAC地址0100-5e00-0012,VRRP报文的IP协议号为112)。如果报文没有到达入端口,请检查对端信息。

4. 检查ARP和路由

在接入交换机上检查ARP表项和MAC表项(注意MAC地址和端口以及VLAN的对应关系)是否正确,在各网络主机上检查VRRP虚拟IP地址对应的ARP表项是否正确。

如果出现Master不能ping通的情况,在vrrp ping-enable使能前提下,检查VRRP的Master路由器上虚拟IP地址对应的主机路由是否存在。如果出现转发问题,需要检查转发的路由。出现路由故障则需要借助路由故障处理手段检查路由协议是否正常运作,配置的静态路由是否正确。

5. CPU占用率

使用display cpu-usage命令查看设备的CPU占用率。关闭不必要的业务,以降低CPU的利用率。

1.4 典型案例

1.4.1 VRRP主备切换引起网络中断

1. 组网环境

图1-2 VRRP主备切换引起网络中断

2. 故障现象

如图1-2所示,Router A和Router B上分别配置50个采用虚MAC方式的VRRP备份组。Router A为50个备份组的Master路由器,Router B为Backup路由器。Switch上虚MAC地址对应的端口为Ethernet1/0。快速shutdown,并undo shutdown接口Ethernet1/0,稳定后发现个别虚MAC地址对应的端口为Ethernet1/1,而不是Ethernet1/0。

3. 处理过程

查看Switch的MAC地址表项,发现VRRP路由器的虚拟MAC地址对应的端口是Ethernet1/1,即切换后的Backup路由器Router B所连接的端口。

l 问题原因可能是Router A切换到Master之后发送免费ARP没有生效。所以,首先确认路由器Router A是否发送了免费ARP。通过debugging arp packet命令打开Router A的ARP报文调试开关,重现切换过程,发现Router A切换到Master时发送了免费ARP。

l 问题原因还可能是Switch的MAC地址表项没有更新。由于配置较多VRRP备份组,会同时发送大量免费ARP,超出了Switch的处理能力,导致部分ARP没有生效。减少备份组的数量,重现切换过程,该问题得到解决。

1.4.2 接口down引起网络两次流量中断

1. 组网环境

图1-3 接口down引起网络两次流量中断

2. 故障现象

如图1-3所示,Router A和Router B组成VRRP备份组,Router A优先级较高,作为Master正常运行。配置Router A监视连接上行链路接口Ethernet1/1。在Router A、Router B和Router C上运行OSPF协议。

在Switch上进行ping Router C的操作,同时在Router A的接口Ethernet1/1上执行shutdown命令。

<Switch> ping 100.100.100.100

Reply from 100.100.100.100: bytes=56 Sequence=188 ttl=254 time=3 ms

Reply from 100.100.100.100: bytes=56 Sequence=189 ttl=254 time=2 ms

Reply from 100.100.100.100: bytes=56 Sequence=190 ttl=254 time=2 ms

Request time out

Request time out

Reply from 100.100.100.100: bytes=56 Sequence=193 ttl=254 time=3 ms

Request time out

Reply from 100.100.100.100: bytes=56 Sequence=195 ttl=254 time=3 ms

Reply from 100.100.100.100: bytes=56 Sequence=196 ttl=254 time=2 ms

当接口Ethernet1/1由up变成down时,Router A降低优先级,Router B迅速切换为Master。理论上,只应在接口down到VRRP的主备切换完成之间出现一次流量中断,但实际却出现了两次流量中断。

3. 处理过程

(1) 打开VRRP报文和状态转换的调试信息开关,重现上述问题。没有出现VRRP状态的震荡。从Master监视接口down引起的优先级降低,到立刻发送优先级较低的通告报文,再到Backup路由器迅速切换成Master以及发送免费ARP都完全正常。

(2) 查看Switch上ARP的表项,检查VRRP虚拟IP地址对应的出接口,检查各个端口的STP的状态,确认不存在问题。

(3) 检查Router C上接收报文情况。通过调试信息发现Router C接收报文只出现一次中断。很显然,Router C上看到的中断应该是Router A的接口Ethernet1/1链路故障导致Router A转发的报文没有送达Router C。由此可以判断,另一次中断是Router B已经将报文送达Router C,但是Router C的回应报文没有送达Switch导致。

(4) 查看Router C上的路由信息。由于使用了OSPF协议,查看OSPF路由信息。

<RouterC> display ospf routing

OSPF Process 1 with Router ID 5.5.5.30

Routing Tables

Routing for Network

Destination Cost Type NextHop AdvRouter Area

100.100.100.100/32 0 Stub 100.100.100.100 5.5.5.30 0.0.0.0

5.5.5.0/24 2 Transit 2.2.2.2 10.10.10.2 0.0.0.0

5.5.5.0/24 2 Transit 10.10.10.2 10.10.10.2 0.0.0.0

2.2.2.0/24 1 Transit 2.2.2.1 5.5.5.10 0.0.0.0

10.10.10.0/24 1 Transit 10.10.10.1 5.5.5.30 0.0.0.0

Total Nets: 5

Intra Area: 5 Inter Area: 0 ASE: 0 NSSA: 0

从OSPF路由信息中可以看出,存在两条到5.5.5.0/24网段的等价路由,其中一条的下一跳指向2.2.2.2(Router A),另一条指向10.10.10.2(Router B)。

由于存在这两条等价路由,当Router C回应报文时,依照负载分担原则,交替从接口Ethernet1/1和Ethernet1/2进行转发。当Router A的接口Ethernet1/1出现故障,VRRP主备切换完成之后有一段时间这两条等价路由还同时存在(OSPF还未能删除到Router A的路由),导致报文仍然交替转发,出现流量中断。

由此可见,出现两次流量中断的原因是OSPF发现这两条等价路由的变化需要一定时间。可以采取配置一条指向Router B的静态路由的方式来避免此问题。

1.5 诊断工具与命令

1.5.1 VRRP报文调试开关

l debugging vrrp packet

l debugging vrrp ipv6 packet

1.5.2 VRRP状态转换调试开关

l debugging vrrp state

l debugging vrrp ipv6 state

Copyright ©2008 杭州华三通信技术有限公司 版权所有,保留一切权利。

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。

本文档中的信息可能变动,恕不另行通知。

附件下载

联系我们