目录

简介

先决条件

要求

使用的组件

规则

配置

网络图

配置

验证

故障排除

故障排除命令

调试输出示例

故障排除步骤

相关信息

简介

当您在通过LAN交换机连接的两台路由器之间运行热备份路由器协议(HSRP)时，您可能会发现HSRP不稳定。这通常发生在网络中断或活动路由器转换期间，例如优先级更高的HSRP路由器，并抢先配置到LAN。本文档说明了为什么会发生这种不稳定，以及如何避免这种不稳定。

先决条件

要求

本文档没有任何特定的要求。

使用的组件

本文档不限于特定的软件和硬件版本。

规则

有关文档规则的详细信息，请参阅 Cisco 技术提示规则。

配置

本部分提供有关如何配置本文档所述功能的信息。

注：要查找有关本文档中使用的命令的其他信息，请使用命令查找工具(仅注册客户)。

网络图

本文档使用下图所示的网络设置。

配置

本文档使用以下配置：

Router A

interface FastEthernet1/0

ip address 10.144.220.3 255.255.252.0

standby priority 120

standby preempt

standby ip 10.144.220.1

Router B

interface FastEthernet3/0

ip address 10.144.220.2 255.255.252.0

standby priority 110

standby preempt

standby ip 10.144.220.1

验证

当前没有可用于此配置的验证过程。

故障排除

本部分提供的信息可用于对配置进行故障排除。

故障排除命令

命令输出解释程序工具（仅限注册用户）支持某些 show 命令，使用此工具可以查看对 show 命令输出的分析。

注意：在使用debug命令之前，请参阅有关debug命令的重要信息。

- debug standby

调试输出示例

在上图中，当路由器A添加到网络时，您可以观察路由器B的HSRP状态从主用状态摆动到备用状态。在路由器B上运行debug standby 会产生以下输出：

RouterB# debug standby

*Mar 1 02:55:56: SB0:FastEthernet3/0 Hello out 10.144.220.2 Active pri 110 hel 3

hol 10 ip 10.144.220.1

*Mar 1 02:56:08: SB0:FastEthernet3/0 Hello in 10.144.220.3 Active pri 120 hel 3

hol 10 ip 10.144.220.1

*Mar 1 02:56:08: SB0: FastEthernet3/0 state Active -> Speak

*Mar 1 02:56:08: SB0:FastEthernet3/0 Resign out 10.144.220.2 Speak pri 110 hel 3

hol 10 ip 10.144.220.1

*Mar 1 02:56:08: SB0:FastEthernet3/0 Hello out 10.144.220.2 Speak pri 110 hel 3

hol 10 ip 10.144.220.1

*Mar 1 02:56:09: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet3/0,

changed state to down

*Mar 1 02:56:11: SB0: FastEthernet3/0 state Speak -> Init

*Mar 1 02:56:13: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet3/0,

changed state to up

*Mar 1 02:56:13: SB0: FastEthernet3/0 state Init -> Listen

*Mar 1 02:56:14: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet3/0,

changed state to down

*Mar 1 02:56:14: SB0: FastEthernet3/0 state Listen -> Init

*Mar 1 02:56:20: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet3/0,

changed state to up

*Mar 1 02:56:20: SB0: FastEthernet3/0 state Init -> Listen

*Mar 1 02:56:30: SB0: FastEthernet3/0 state Listen -> Speak

*Mar 1 02:56:40: SB0: FastEthernet3/0 state Speak -> Standby

*Mar 1 02:56:41: SB0: FastEthernet3/0 state Standby -> Active

*Mar 1 02:56:41: SB: FastEthernet3/0 Adding 0000.0c07.ac00 to address filter

*Mar 1 02:56:41: SB0:FastEthernet3/0 Hello out 10.144.220.2 Active pri 110 hel 3

hol 10 ip 10.144.220.1

*Mar 1 02:56:44: SB0:FastEthernet3/0 Hello in 10.144.220.3 Active pri 120 hel 3

hol 10 ip 10.144.220.1

*Mar 1 02:56:44: SB0: FastEthernet3/0 state Active -> Speak

从以上输出中，很明显路由器B的HSRP状态在从主用状态持续更改为主用状态，依此类推。

HSRP进程使用组播地址224.0.0.2与其他HSRP路由器通信hello数据包。如果连接丢失，或将具有更高优先级的HSRP路由器添加到网络，则HSRP状态可能开始抖动，如上所示。在某些路由器平台上运行HSRP(请参阅下面的注意)并向网络添加高优先级路由器时，低优先级路由器的HSRP状态会从“活动”变为“发言”，并会发生链路状态更改。交换机的端口检测到此链路状态更改，生成树协议转换发生。端口经过侦听、学习和转发阶段大约需要30秒。此时间段超过HSRP hello进程的默认超时，因此低优先级路由器在达到备用状态后会变为活动状态，因为没有从活动路由器接收到hello数据包。

由于路由器看不到彼此的HSRP hello数据包，因此它们都会变为活动状态。当交换机端口转换到Learning状态时，交换机可能会从两个不同的端口看到相同的虚拟MAC地址。

注意：HSRP状态更改导致的物理链路状态更改在Cisco 2600、Cisco 3600和Cisco 7200系列路由器上的网络模块快速以太网(NM-FE)接口上发生。Cisco IOS®软件版本12.1(3)及更高版本中不再出现此行为。

有关详细信息，请参阅Cisco Bug ID CSCdr02376(仅限注册客户)。

故障排除步骤

执行以下任务之一，以解决上述问题。

1. 为交换机配置set spantree portfast enable，这允许交换机绕过spantree状态并直接进入转发状态。

如果路由器配置为桥接此接口/端口上的数据包，则无法使用此解决方法，因为此类链路上的立即转发可能导致网络容易出现转发环路中断。

注意：此限制也适用于连接到其他交换机或网桥的交换机端口。

2. 更改HSRP计时器，使生成树转发延迟（默认为15秒）小于HSRP保持时间的一半（默认为10秒）。

我们建议HSRP保持时间为40秒。

注意：增加HSRP保持时间会使HSRP在检测活动路由器已关闭和备用路由器处于活动状态时变慢。

3. 确保网络中没有数据包风暴（IPX容易发生数据包风暴）。

4. 配置standby use-bia命令，该命令强制HSRP活动路由器使用固化地址。

这完成了两件事。由于HSRP不再需要更改（或添加）单播MAC地址到MAC地址过滤器列表，因此以太网接口不会重置。它还防止交换机在两个不同端口上获取同一地址。请参阅什么是standby use-bia命令及其工作原理？。

注意：使用standby use-bia命令有以下缺点：

- 当路由器变为活动状态时，虚拟 IP 地址会移至其他 MAC 地址。新的活动路由器将发送无故地址解析协议 (ARP) 响应，但不是所有主机实施都能正确处理无故 ARP。

- 配置standby use-bia时代理ARP会中断。备用路由器无法覆盖故障路由器丢失的代理ARP数据库。

- 由于内部限制，多层交换机功能卡2(MSFC2)不支持standby use-bia命令。 有关详细信息，请参阅在Supervisor引擎2上配置IP单播第3层交换的配置指南和限制部分。

相关信息

- 了解和配置 Catalyst 交换机上的生成树协议 (STP)

- HSRP（热备份路由器协议）支持页

- 技术支持 - Cisco Systems