此产品的文档集力求使用非歧视性语言。在本文档集中,非歧视性语言是指不隐含针对年龄、残障、性别、种族身份、族群身份、性取向、社会经济地位和交叉性的歧视的语言。由于产品软件的用户界面中使用的硬编码语言、基于 RFP 文档使用的语言或引用的第三方产品使用的语言,文档中可能无法确保完全使用非歧视性语言。 深入了解思科如何使用包容性语言。
思科采用人工翻译与机器翻译相结合的方式将此文档翻译成不同语言,希望全球的用户都能通过各自的语言得到支持性的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 Cisco Systems, Inc. 对于翻译的准确性不承担任何责任,并建议您总是参考英文原始文档(已提供链接)。
由于热备用路由器协议 (HSRP) 的性质,特定网络问题可能导致 HSRP 出现不稳定。本文档介绍了 HSRP 的常见问题及其故障排除方式。大多数 HSRP 相关问题都不是真正的 HSRP 问题。而是影响 HSRP 运行的网络问题。
本文档介绍了这些与 HSRP 相关的最常见问题:
路由器报告 HSRP 备用 IP 地址重复
HSRP 状态持续更改(活动、备用、对话)
缺少 HSRP 对等体
与 HSRP 相关的交换机错误消息
与 HSRP 配置相关的过度网络单播泛洪
Note:本文档详细描述了如何排除 Catalyst 交换机环境中的 HSRP 故障。本文档包含很多有关软件版本和网络拓扑设计的参考。然而,本文档唯一目的是帮助和引导工程师排除 HSRP 故障。本文档并非设计指南、软件推荐文档或者最佳实践文档。
本文档没有任何特定的要求。
本文档不限于特定的软件和硬件版本。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
依靠 Intranet 和 Internet 业务实现重要任务通信的企业和消费者需要并盼望他们的网络和应用程序是持续可用的。如果客户有效利用 Cisco IOS® 软件中的 HSRP,则能满足他们近 100% 的网络正常运行时间的需求。Cisco 平台独特的 HSRP 通过某种方式为 IP 网络提供网络冗余,以确保用户流量可以立即、透明地从网络边缘设备或接入电路的首跳故障中恢复。
如果共享 IP 地址和 MAC(第二层 [L2])地址,则两个或多个路由器可以充当单个虚拟路由器。对于主机工作站默认网关冗余,该地址是必要的。大多数主机工作站不包含路由表,并且仅使用单个下一跳 IP 和 MAC 地址。此地址称为默认网关。使用 HSRP,虚拟路由器组的成员可连续交换状态消息。如果某个路由器由于计划内或计划外的原因而停止工作,则另一个路由器可以接管该路由器的工作。主机配置有单个默认网关,并继续向一致的 IP 和 MAC 地址转发 IP 数据包。执行路由的设备转换对终端工作站是透明的。
Note:您可以为多个默认网关配置运行 Microsoft 操作系统的主机工作站。但是,多个默认网关并不是动态的。操作系统每次只使用一个默认网关。如果互联网控制管理协议 (ICMP) 确定第一个配置的默认网关不可到达时,系统只是在引导时选择另外的已配置默认网关。
运行 HSRP 的一组路由器协作运行,使得从 LAN 上的主机来看,好像只有单个默认网关路由器。此组路由器称为 HSRP 组或备用组。从组中选出的单个路由器负责转发主机发送到虚拟路由器的数据包。此路由器称为活动路由器。另一台路由器则被选为备用路由器。如果活动路由器发生故障,则备用路由器承担转发数据包的职责。虽然任意数量的路由器都可以运行 HSRP,但只有活动路由器才会转发那些发送到虚拟路由器 IP 地址的数据包。
为了使网络流量减到最小,协议完成选举过程之后,只有活动路由器和备用路由器定期发送 HSRP 消息。HSRP 组中的其他路由器保持在 Listen 状态。如果活动路由器发生故障,则备用路由器接管活动路由器。如果备用路由器发生故障或变成活动路由器,另一台路由器则被选为备用路由器。
每个备用组模拟一个虚拟路由器(默认网关)。对于每个组,会为该组分配单个已知的 MAC 和 IP 地址。多个备用组可在 LAN 上同时存在和重叠,单个路由器可参与多个组。在这种情况下,路由器为每个组维护独立的状态和计时器。
术语 | 定义 |
---|---|
活动路由器 | 目前为虚拟路由器转发数据包的路由器 |
备用路由器 | 主备份路由器 |
备用组 | 参加 HSRP 并共同模拟虚拟路由器的一组路由器 |
Hello 时间 | 来自给定路由器的连续 HSRP hello 消息之间的时间间隔 |
保持时间 | 接收 hello 信息和假定发送路由器发生故障之间的时间间隔 |
运行 HSRP 的路由器通过 HSRP hello 数据包在彼此之间传达 HSRP 信息。这些数据包基于用户数据报协议 (UDP) 端口 1985 被发送到目标 IP 多播地址 224.0.0.2。IP 多播地址 224.0.0.2 是保留用于与所有路由器通信的多播地址。活动路由器从其配置的 IP 地址和 HSRP 虚拟 MAC 地址发送 hello 数据包。备用路由器从其配置的 IP 地址和固化 MAC 地址 (BIA) 发送 hello 数据包。使用源寻址是必要的,以便 HSRP 路由器能正确地互相识别。
在多数情况下,当您将路由器配置为 HSRP 组的组成部分时,这些路由器将监听该组的 HSRP MAC 地址,以及它们自己的 BIA。此行为不适用于 Cisco 2500、4000 及 4500 路由器。这些路由器具有只识别单个 MAC 地址的以太网硬件。所以,当这些路由器作为活动路由器时,它们将使用 HSRP MAC 地址。当这些路由器作为备用路由器时,它们将使用其 BIA。
由于主机工作站将其默认网关配置为 HSRP 备用 IP 地址,因此主机必须与 HSRP 备用 IP 地址关联的 MAC 地址进行通信。此 MAC 地址是由 0000.0c07.ac** 组成的虚拟 MAC 地址。** 是基于各自接口的十六进制 HSRP 组号码。例如,HSRP 组 1 使用的 HSRP 虚拟 MAC 地址为 0000.0c07.ac01。相邻 LAN 网段上的主机使用正常地址解析协议 (ARP) 过程以解析关联的 MAC 地址。
令牌环接口使用功能地址作为 HSRP MAC 地址。功能地址是唯一可用的通用多播机制。可用的令牌环功能地址数量有限,并且其中许多地址是为其他功能保留的。这三个地址是唯一可用于 HSRP 的地址:
c000.0001.0000 (group 0) c000.0002.0000 (group 1) c000.0004.0000 (group 2)
所以,除非配置 standby use-bia 参数,您只能在令牌环接口上配置三个 HSRP 组。
保护子网的 HSRP 对等路由器能提供访问网络中所有其他子网的权限。这是 HSRP 的基础。所以,哪个路由器成为活动 HSRP 路由器并没有关系。在早于 Cisco IOS 软件版本 12.1(3)T 的 Cisco IOS 软件版本中,当 HSRP 用于某一接口时,将在该接口上自动禁用 ICMP 重定向。没有此配置,主机可从 HSRP 虚拟 IP 地址重定向到单个路由器的接口 IP 和 MAC 地址。于是失去冗余。
Cisco IOS 软件版本 12.1(3)T 引入了一种方法,允许 HSRP 的 ICMP 重定向。此方法通过 HSRP 过滤出站 ICMP 重定向消息。下一跳 IP 地址更改为 HSRP 虚拟地址。将出站 ICMP 重定向消息中的网关 IP 地址与存在于该网络上的 HSRP 活动路由器列表进行比较。如果对应于网关 IP 地址的路由器是 HSRP 组的活动路由器,则用该组虚拟 IP 地址替换网关 IP 地址。此解决方案使主机能够获知到达远程网络的最佳路由,同时维持 HSRP 提供的灵活性。
要了解支持 HSRP 的功能和 Cisco IOS 软件版本,请参阅热备用路由器协议特性和功能的 Cisco IOS 版本和 HSRP 功能一览表部分。
有关大多数 HSRP 功能的信息,请参阅热备用路由器协议特性和功能。本文档提供有关这些 HSRP 功能的信息:
抢占
接口跟踪
使用 BIA
多个 HSRP 组
可配置的 MAC 地址
Syslog 支持
HSRP 调试
增强的 HSRP 调试
认证
IP 冗余
简单网络管理协议 (SNMP) MIB
针对多协议标签交换 (MPLS) 的 HSRP
Note:您可以使用浏览器的“查找”功能,找出本文档中的这些部分。
此表显示 UDP HSRP 帧的数据部分的格式:
version | 操作码 | 状态 | 呼叫时间 |
---|---|---|---|
维持时间 | 优先级 | 组 | 预留 |
身份验证数据 | |||
身份验证数据 | |||
虚拟 IP 地址 |
下表说明了 HSRP 数据包中的每一个字段:
数据包字段 | 说明 |
---|---|
操作码(1 个八位组) | 操作码说明数据包包含的消息类型。可能的值包括:0- hello、1 - coup 和 2 - resign。发送 hello 消息可表明路由器运行 HSRP,并且能够成为活动路由器。当路由器希望成为活动路由器时,发送 coup 消息。当路由器不再希望作为活动路由器时,发送 resign 消息。 |
状态(1 个八位组) | 备用组中的每个路由器架设一台状态机。状态字段描述传送消息的路由器的当前状态。以下是有关各个状态的详细信息:0 - 初始、1 - 学习、2 - 监听、4 - 对话、8 - 备用以及 16 - 活动。 |
Hellotime(1 个八位组) | 此字段仅在 hello 消息中才有意义。它包含路由器发送的 hello 消息之间的大致周期。时间以秒为单位提供。 |
Holdtime(1 个八位组) | 此字段仅在 hello 消息中才有意义。它包含在路由器启动状态更改之前,路由器等待 hello 消息的时间。 |
优先级(1 个八位组) | 此字段用于选择活动和备用路由器。当比较两台路由器的优先级时,值最高的路由器将成为活动路由器。取 IP 地址较高的路由器。 |
组(1 个八位组) | 此字段标识备用组。 |
身份验证数据(8 个八位组) | 此字段包含一个明文的 8 字符口令。 |
虚拟 IP 地址(4 个八位组) | 如果路由器上没有配置虚拟 IP 地址,则可以从来自活动路由器的 hello 消息获知该地址。只有在未配置 HSRP 备用 IP 地址,并且 hello 消息经过身份验证(如果配置了验证)的情况下,才能获知地址。 |
状态 | 定义 |
---|---|
首字母 | 这是起始状态。此状态表明 HSRP 没有运行。配置发生更改或接口首次变得可用时,进入此状态。 |
了解 | 路由器没有确定虚拟 IP 地址,也没有看到活动路由器发出的经过身份验证的 hello 消息。在此状态下,路由器仍然等待来自活动路由器的消息。 |
监听 | 路由器知道虚拟 IP 地址,但该路由器既不是活动路由器,也不是备用路由器。它侦听来自那些路由器的 hello 消息。 |
讲话 | 路由器定期发送 hello 消息,并积极参与活动路由器和/或备用路由器的竞选。除非路由器有虚拟 IP 地址,否则该路由器不能进入 speak 状态。 |
暂挂 | 该路由器适合作为下一个活动路由器的候选者,并定期发送 hello 消息。除临时情况以外,组中至多有一个路由器处于 standby state。 |
活动 | 当前转发被发送到组虚拟 MAC 地址的数据包的路由器。该路由器定期发送 hello 消息。除临时情况以外,组中至多有一个路由器处于 active state。 |
在 HSRP 中每个路由器仅使用三个计时器。计时器计算 hello 消息的时间。当故障发生时 HSRP 的收敛时间取决于 HSRP hello 计时器和 hold 计时器的配置。默认情况下,这两个计时器分别设置为 3 和 10 秒,这意味着每 3 秒在 HSRP 备用组设备之间发送一次 hello 数据包,并且如果 10 秒钟内未收到 hello 数据包,则备用设备将成为活动设备。您可以降低这些计时器设置以加速故障切换或抢占,但为避免增加 CPU 使用率和不必要的备用状态抖动,请不要将 hello 计时器设置在一 (1) 秒以下或将 hold 计时器设置在 4 秒以下。请注意,如果使用 HSRP 跟踪机制,并且被跟踪的链路发生故障,则不管 hello 计时器和 hold 计时器为何值,都会立即发生故障切换或抢占。当计时器到期时,路由器转换为新的 HSRP 状态。可以使用此命令更改计时器:暂挂[group-number]计时器呼叫时间维持时间。例如,standby 1 timers 5 15。
此表提供有关这些计时器的详细信息:
计时器 | 说明 |
---|---|
活动计时器 | 此计时器用于监控活动路由器。只要活动路由器收到 hello 数据包,此计时器就会启动。此计时器到期与否将根据设置在 HSRP hello 消息的相关字段中的保持时间值而定。 |
备用计时器 | 此计时器用于监控备用路由器。只要备用路由器收到 hello 数据包,此计时器就会启动。此计时器到期与否将根据设置在各自 hello 数据包中的保持时间值而定。 |
Hello 计时器 | 此计时器用于对 hello 数据包计时。当此 hello 计时器到期时,任何 HSRP 状态下的所有 HSRP 路由器都将生成 hello 数据包。 |
此表提供 HSRP 有限状态机中的事件:
密钥 | 事件 |
---|---|
1 | 在已启用的接口上配置了 HSRP。 |
2 | HSRP 在某接口上被禁用或该接口被禁用。 |
3 | 当最后Hello信息从活动路由器时,被看到活动计时器超时活动计时器设置为保持时间。 |
4 | 当最后Hello信息从备用路由器时,被看到备用计时器终止备用计时器设置为保持时间。 |
5 | Hello计时器逾期hello消息发送的定期计时器过期。 |
6 | 从 speak 状态的路由器收到较高优先级的 hello 消息 |
7 | 从活动路由器收到较高优先级的 hello 消息 |
8 | 从活动路由器收到较低优先级的 hello 消息 |
9 | 从活动路由器收到 resign 消息 |
10 | 从较高优先级的路由器收到 coup 消息 |
11 | 从备用路由器收到较高优先级的 hello 消息 |
12 | 从备用路由器收到较低优先级的 hello 消息 |
此表指定作为状态机一部分所采取的操作:
字母 | 动作 |
---|---|
A | 启动活动计时器 - 如果此操作是由于从活动路由器接收到经过身份验证的 hello 消息导致的,则活动计时器被设置为 hello 消息中的保持时间字段。否则,活动计时器设置为由此路由器使用的当前保持时间值。然后活动计时器启动。 |
B | 启动备用计时器 - 如果此操作是由于从备用路由器接收到经过身份验证的 hello 消息导致的,则备用计时器被设置为 hello 消息中的保持时间字段。否则,备用计时器将设置为此路由器使用的当前保持时间值。然后备用计时器启动。 |
C | 终止活动计时器 - 活动计时器终止。 |
D | 终止备用计时器 - 备用计时器终止。 |
E | 学习参数 - 当从活动路由器收到经过身份验证的消息时,采取此操作。如果没有手工配置此组的虚拟 IP 地址,可以从此消息中获知虚拟 IP 地址。路由器可以从该消息获知 hello 时间和保持时间的值。 |
F | 发送 hello 消息 - 路由器根据其当前状态、hello 时间和保持时间发送一个 hello 消息。 |
G | 发送 coup 消息 - 路由器发送一条 coup 消息,以通知活动路由器有一个更高的优先级的路由器可用。 |
H | 发送 resign 消息 - 路由器发送 resign 消息,以允许其他路由器成为活动路由器。 |
我 | 发送无故 ARP 消息 - 路由器广播一个通告组虚拟 IP 和 MAC 地址的 ARP 响应数据包。发送该数据包时,使用虚拟 MAC 地址作为链路层报头中以及 ARP 数据包中的源 MAC 地址。 |
在此部分的图表显示 HSRP 状态机的状态转换。每次事件发生时产生,将产生相关联的操作,并且路由器转换到下一个 HSRP 状态。在图表中,编号指示事件,字母指示相关联的操作。HSRP 事件部分中的表定义了编号,HSRP 操作部分中的表定义了字母。此图表仅供参考。对于一般故障排除而言,此图表是详细的但不必要。
关于图表的高分辨率镜像,请参阅HSRP状态操作。
设备 | Mac 地址 | IP Address | 子网掩码 | 默认网关 |
---|---|---|---|---|
PC1 | 0000.0c00.0001 | 10.1.1.10 | 255.255.255.0 | 10.1.1.1 |
PC2 | 0000.0c00.1110 | 10.1.2.10 | 255.255.255.0 | 10.1.2.1 |
interface ethernet 0 ip address 10.1.1.2 255.255.255.0 mac-address 4000.0000.0010 standby 1 ip 10.1.1.1 standby 1 priority 200 interface ethernet 1 ip address 10.1.2.2 255.255.255.0 mac-address 4000.0000.0011 standby 1 ip 10.1.2.1 standby 1 priority 200
interface ethernet 0 ip address 10.1.1.3 255.255.225.0 mac-address 4000.0000.0020 standby 1 ip 10.1.1.1 interface ethernet 1 ip address 10.1.2.3 255.255.255.0 mac-address 4000.0000.0021 standby 1 ip 10.1.2.1
Note:这些示例仅出于示例目的而配置静态 MAC 地址。除非要求如此,请勿配置静态 MAC 地址。
当获得嗅探器踪迹时,您必须了解关于数据包流背后的概念,才能排除 HSRP 故障。路由器 A 使用优先级 200,并在两个接口上都成为活动路由器。在本部分的示例中,从路由器发送到某主机工作站的数据包的源 MAC 地址为路由器的物理 MAC 地址 (BIA)。由主机发出、发往 HSRP IP 地址的数据包的目标 MAC 地址为 HSRP 虚拟 MAC 地址。请注意,在路由器和主机之间,每个数据流的 MAC 地址并不相同。
下表显示的是每个数据流各自的 MAC 和 IP 地址信息,它基于从交换机 X 取得的嗅探器踪迹。
数据包流 | 源 MAC | 目的 MAC | 源 IP | 目的 IP |
---|---|---|---|---|
从 PC1 到 PC2 的数据包 | PC1 (0000.0c00.0001) | 路由器 A 接口 Ethernet 0 的 HSRP 虚拟 MAC 地址 (0000.0c07.ac01) | 10.1.1.10 | 10.1.2.10 |
通过路由器 A 从 PC2 返回且目标为 PC1 的数据包 | 路由器 A Ethernet 0 BIA (4000.0000.0010) | PC1 (0000.0c00.0001) | 10.1.2.10 | 10.1.1.10 |
来自 PC1 发往 HSRP 备用 IP 地址的数据包 (ICMP,Telnet) | PC1 (0000.0c00.0001) | 路由器 A 接口 Ethernet 0 的 HSRP 虚拟 MAC 地址 (0000.0c07.ac01) | 10.1.1.10 | 10.1.1.1 |
发往活动路由器的实际 IP 地址的数据包 (ICMP, Telnet) | PC1 (0000.0c00.0001) | 路由器 A Ethernet 0 BIA (4000.0000.0010) | 10.1.1.10 | 10.1.1.2 |
发往备用路由器 (ICMP, Telnet) 的实际 IP 地址的数据包 | PC1 (0000.0c00.0001) | 路由器 B Ethernet 0 BIA (4000.0000.0020) | 10.1.1.10 | 10.1.1.3 |
可能出现以下错误消息:
Oct 12 13:15:41: %STANDBY-3-DUPADDR: Duplicate address 10.25.0.1 on Vlan25, sourced by 0000.0c07.ac19 Oct 13 16:25:41: %STANDBY-3-DUPADDR: Duplicate address 10.25.0.1 on Vlan25, sourced by 0000.0c07.ac19 Oct 15 22:31:02: %STANDBY-3-DUPADDR: Duplicate address 10.25.0.1 on Vlan25, sourced by 0000.0c07.ac19 Oct 15 22:41:01: %STANDBY-3-DUPADDR: Duplicate address 10.25.0.1 on Vlan25, sourced by 0000.0c07.ac19
这些错误消息不一定指示 HSRP 问题。相反,错误消息可能指示一个生成树协议 (STP) 环路或路由器/交换机配置问题。这些错误消息只是另一个问题的症状。
另外,这些错误消息不妨碍 HSRP 正常操作。将忽略重复的 HSRP 数据包。这些错误消息被扼杀在 30 秒的时间间隔。然而,网络运行缓慢和数据包丢失可能源自网络不稳定性,这导致产生 HSRP 地址的 STANDBY-3-DUPADDR 错误消息。
可能出现以下错误消息:
Oct 15 22:41:01: %STANDBY-3-DUPADDR: Duplicate address 10.25.0.1 on Vlan25, sourced by 0000.0c07.ac19
这些消息特别指示路由器接收到来自 VLAN 25 上的 HSRP IP 地址(MAC 地址为 0000.0c07.ac19)的数据包。由于 HSRP MAC 地址是 0000.0c07.ac19,则所涉及的路由器接收自己发出的数据包,或者 HSRP 组中的两个路由器都进入了 active 状态。因为路由器收到其自己的数据包,所以问题很可能出在网络而不是路由器上。有多种问题可能导致此行为。可能导致该错误消息的网络问题包括:
短暂的 STP 环路
EtherChannel 配置问题
重复帧
当您排除这些错误消息故障时,请参阅本文档中的 CatOS 交换机的 HSRP 故障排除模块部分中的故障排除步骤。所有故障排除模块(包括有关配置的模块)均适用于此部分。另外,必要时应记下交换机日志中的所有错误并参考其他案例研究。
您可以使用访问列表以防止活动路由器收到其自己的多播 hello 数据包。但是,这只是这些错误消息的一种解决方法,并且实际上会隐藏问题的症状。解决方法是对 HSRP 接口应用扩展入站访问列表。访问列表阻塞从物理 IP 地址发送到所有路由器多播地址 224.0.0.2 的所有流量。
access-list 101 deny ip host 172.16.12.3 host 224.0.0.2 access-list 101 permit ip any any interface ethernet 0 ip address 172.16.12.3 255.255.255.0 standby 1 ip 172.16.12.1 ip access-group 101 in
可能出现以下错误消息:
Jan 9 08:00:42.623: %STANDBY-6-STATECHANGE: Standby: 49: Vlan149 state Standby -> Active Jan 9 08:00:56.011: %STANDBY-6-STATECHANGE: Standby: 49: Vlan149 state Active -> Speak Jan 9 08:01:03.011: %STANDBY-6-STATECHANGE: Standby: 49: Vlan149 state Speak -> Standby Jan 9 08:01:29.427: %STANDBY-6-STATECHANGE: Standby: 49: Vlan149 state Standby -> Active Jan 9 08:01:36.808: %STANDBY-6-STATECHANGE: Standby: 49: Vlan149 state Active -> Speak Jan 9 08:01:43.808: %STANDBY-6-STATECHANGE: Standby: 49: Vlan149 state Speak -> Standby
这些错误消息描述的是备用 HSRP 路由器没有从其 HSRP 对等体接收到三个连续 HSRP hello 数据包这种情况。输出显示备用路由器从 standby 状态变为 active 状态。紧接着,路由器回到 standby 状态。除非此错误消息在初始安装时出现,否则很可能不是 HSRP 问题导致此错误消息。此错误消息指示在对等体之间发生 HSRP hello 丢失。当您排除此故障时,您必须验证 HSRP 对等体之间的通信。对等体之间数据通信的随机、短暂丢失,是导致产生这些消息的最常见问题。HSRP 状态更改经常是因为高 CPU 使用率。如果错误消息是由于高 CPU 使用率所致,则在网络中放置嗅探器并跟踪导致高 CPU 使用率的系统。
有几种原因可能导致对等体之间丢失 HSRP 数据包。最常见的问题是物理层问题、生成树问题造成的过度网络流量,或每个 Vlan 造成的过度流量。如同案例分析 1 一样,所有故障排除模块均适用于 HSRP 状态更改的解决方案,特别是第三层 HSRP 调试。
如果对等体之间丢失 HSRP 数据包是由于上述由每个 VLAN 造成的过多流量,您可以调整或增加 SPD,并保持队列大小以克服输入队列丢弃的问题。
为了增加选择性数据包丢弃 (SPD) 大小,请在 Cat6500 交换机上进入配置模式并执行以下命令:
(config)# ip spd queue max-threshold 600 !--- Hidden Command (config)# ip spd queue min-threshold 500 !--- Hidden Command
为了增加保持队列大小,请去VLAN接口模式并且执行此命令:
(config-if)# hold-queue 500 in
增加 SPD 和保持队列大小之后,如果执行“clear counter interface”命令,则可以清除接口计数器。
此部分中的路由器输出显示一个针对 HSRP 进行了配置但无法识别其 HSRP 对等体的路由器。要发生此情况,路由器必须不能从相邻路由器接收 HSRP hello。当您排除此故障时,请参阅本文档中的验证物理层连接部分和验证 HSRP 路由器配置部分。如果物理层连接是正确的,请检查是否存在不匹配的 VTP 模式。
Vlan8 - Group 8 Local state is Active, priority 110, may preempt Hellotime 3 holdtime 10 Next hello sent in 00:00:01.168 Hot standby IP address is 10.1.2.2 configured Active router is local Standby router is unknown expired Standby virtual mac address is 0000.0c07.ac08 5 state changes, last state change 00:05:03
可能出现以下错误消息:
2001 Jan 03 14:18:43 %SYS-4-P2_WARN: 1/Host 00:00:0c:14:9d:08 is flapping between port 2/4 and port 2/3
在 Catalyst 4500/4000 和 2948G 的软件版本 5.5.2 和更高版本中,如果主机 MAC 地址在 15 秒内移动两次,则交换机将报告主机 MAC 地址移动。常见原因是 STP 环路。交换机大约在 15 秒内丢弃来自此主机的数据包,以尝试将 STP 环路的影响降至最低。如果被报告在两个端口之间移动的 MAC 地址是 HSRP 虚拟 MAC 地址,那么问题很可能是两个 HSRP 路由器都进入了 active 状态。
如果被报告的 MAC 地址不是 HSRP 虚拟 MAC 地址,则问题可能表明数据包在网络中被循环、重复或反射。这些类型的情况可能造成 HSRP 问题。导致 MAC 地址移动的最常见原因是生成树问题或物理层问题。
当您排除此错误消息故障时,请完成以下步骤:
Note:同时,请完成本文档中 CatOS 交换机的 HSRP 故障排除模块部分的步骤。
确定错误消息报告的 MAC 地址的正确来源(端口)。
断开不应是主机 MAC 地址来源的端口,并检查 HSRP 的稳定性。
记录每个 VLAN 的 STP 拓扑结构并且检查 STP 故障。
检验端口信道配置。
错误的端口信道配置可能导致主机 MAC 地址产生错误消息抖动。这是由于端口信道的负载均衡本质所致。
可能出现以下错误消息:
*Mar 9 14:51:12: %RTD-1-ADDR_FLAP: Fast Ethernet 0/7 relearning 21 addrs per min *Mar 9 14:52:12: %RTD-1-ADDR_FLAP: Fast Ethernet 0/7 relearning 22 addrs per min *Mar 9 14:53:12: %RTD-1-ADDR_FLAP: Fast Ethernet 0/7 relearning 20 addrs per min *Mar 9 14:54:12: %RTD-1-ADDR_FLAP: Fast Ethernet 0/7 relearning 20 addrs per min *Mar 9 14:55:12: %RTD-1-ADDR_FLAP: Fast Ethernet 0/7 relearning 21 addrs per min *Mar 9 14:56:12: %RTD-1-ADDR_FLAP: Fast Ethernet 0/7 relearning 22 addrs per min *Mar 9 14:57:12: %RTD-1-ADDR_FLAP: Fast Ethernet 0/7 relearning 21 addrs per min
这些错误消息指示 MAC 地址在不同端口之间一致移动。这些错误消息只适用于 Catalyst 2900XL 和 3500XL 交换机。这些消息可能表明两个或多个 HSRP 路由器进入 active 状态。这些消息可能指示 STP 环路、重复帧或反射数据包的来源。
为了收集有关错误消息的更多信息,请发出此 debug 命令:
switch#debug ethernet-controller address Ethernet Controller Addresses debugging is on l *Mar 9 08:06:06: Add address 0000.0c07.ac02, on port 35 vlan 2 *Mar 9 08:06:06: 0000.0c07.ac02 has moved from port 6 to port 35 in vlan 2 *Mar 9 08:06:07: Add address 0000.0c07.ac02, on port 6 vlan 2 *Mar 9 08:06:07: 0000.0c07.ac02 has moved from port 35 to port 6 in vlan 2 *Mar 9 08:06:08: Add address 0000.0c07.ac02, on port 35 vlan 2 *Mar 9 08:06:08: 0000.0c07.ac02 has moved from port 6 to port 35 in vlan 2 *Mar 9 08:06:10: Add address 0000.0c07.ac02, on port 6 vlan 2 *Mar 9 08:06:10: 0000.0c07.ac02 has moved from port 35 to port 6 in vlan 2 *Mar 9 08:06:11: Add address 0000.0c07.ac02, on port 35 vlan 2 *Mar 9 08:06:11: 0000.0c07.ac02 has moved from port 6 to port 35 in vlan 2 *Mar 9 08:06:12: %RTD-1-ADDR_FLAP: Fast Ethernet 0/7 relearning 20 addrs per min *Mar 9 08:06:13: Add address 0000.0c07.ac02, on port 6 vlan 2 *Mar 9 08:06:13: 0000.0c07.ac02 has moved from port 35 to port 6 in vlan 2
debug 命令引用的端口号减一。例如,端口 0 是快速以太网 0/1。错误消息指示 MAC 地址在各个交换机的端口 5 和 34 之间抖动。
Note: 该消息 RTD-1-ADDR_FLAP 可能不正确。请参阅以下 Cisco Bug ID 以排除此可能性:
- CSCdp81680 (仅限注册用户) —不正确RTD-1-ADDR_FLAP消息
- CSCds27100 (仅限注册用户)和CSCdr30113
(仅限注册用户) —快速以太信道问题原因RTD-1-ADDR_FLAP
导致 MAC 地址移动的最常见原因是生成树问题或物理层问题。
当您排除此错误消息故障时,请完成以下步骤:
Note:同时,请完成本文档中 CatOS 交换机的 HSRP 故障排除模块部分的步骤。
确定主机 MAC 地址的正确源(端口)。
断开不应是主机 MAC 地址来源的端口。
记录每个 VLAN 的 STP 拓扑结构并且检查 STP 故障。
验证端口信道配置。
错误的端口信道配置可能导致主机 MAC 地址产生错误消息抖动。这是由于端口信道的负载均衡本质所致。
可能出现以下错误消息:
05/13/2000,08:55:10:MLS-4-MOVEOVERFLOW:Too many moves, stop MLS for 5 sec(20000000) 05/13/2000,08:55:15:MLS-4:Resume MLS after detecting too many moves
这些消息表明交换机在两个不同端口上获知了同一 MAC 地址。只有在 Catalyst 5500/5000 交换机上才报告此消息。发出这些命令以收集关于该问题的其他信息:
Note:此部分提及的命令没有包括在文档中。您必须完整地输入它们。show mls notification 命令提供表地址 (TA) 值。show looktable TA-value 命令返回可能的 MAC 地址,您可以用它来追踪问题的根源。
Switch (enable) show mls notification 1: (0004e8e6-000202ce) Noti Chg TA e8e6 OI 2ce (12/15) V 1 !--- This is the mod/port and VLAN. The MAC address is !--- seen on this module 12, port 15 in VLAN 1. 2: (0004e8e6-000202cd) Noti Chg TA e8e6 OI 2cd (12/14) V 1 !--- This is the mod/port and VLAN. The next is seen on !--- module 12, port 14 in VLAN 1.
写下此命令输出中 Chg TA 之后出现的四位数字/字母组合。show looktable 命令提供导致 MLS TOO MANY MOVES 错误消息的 MAC 地址:
150S_CR(S2)> (enable) show looktable e8e6 Table address: 0xe8e6, Hash: 0x1d1c, Page: 6 Entry Data[3-0]: 0x000002cd 0x00800108 0x0008c790 0x215d0005, Entry Map [00] Router-Xtag QOS SwGrp3 Port-Index 0 0 0x0 0x2cd Fab AgeByte C-Mask L-Mask Static SwSc HwSc EnSc AL Trap R-Mac 0 0x01 0x0000 0x0000 0 0 0 0 0 0 0 MacAge Pri-In Modify Notify IPX-Sw IPX-Hw IPX-En Valid SwGrp2 Parity2 0 0 1 0 0 0 0 1 0x0 0 Entry-Mac-Address FID SwGrp1 Parity1 00-08-c7-90-21-5d 1 0x0 1
条目 MAC 地址 00-08-c7-90-21-5d 是在端口之间抖动的 MAC 地址。您必须知道 MAC 地址才能找出冲突设备。如果条目 MAC 地址是虚拟 HSRP MAC 地址,则问题可能是由两个进入 active 状态的 HSRP 路由器引起的。
导致 MAC 地址移动的最常见原因是生成树问题或物理层问题。
当您排除此错误消息故障时,请完成以下步骤:
Note:同时完成本文档中 CatOS 交换机的 HSRP 故障排除模块部分的步骤。
确定主机 MAC 地址的正确源(端口)。
断开不应是主机 MAC 地址来源的端口。
记录每个 VLAN 的 STP 拓扑结构并且检查 STP 故障。
验证端口信道配置。
错误的端口信道配置可能导致主机 MAC 地址产生错误消息抖动。这是由于端口信道的负载均衡本质所致。
禁用连接到除 PC 或 IP 电话之外的设备的所有端口上的 PortFast,以避免桥接环路。
对于作为多播残域网络一部分的 HSRP 路由器,发生 HSRP 异常状态更改有一个常见原因。此常见原因涉及非指定路由器 (DR) 看到的非反向路径转发 (RPF) 流量。这是不转发多播流量的路由器。
IP 多播使用一个路由器将数据转发到冗余拓扑结构的 LAN 中。如果多个路由器有接口连接到 LAN 或 VLAN,则只有一个路由器转发数据。对于 LAN 上的多播流量,不进行负载平衡。LAN 上每个路由器都总是可以看到所有多播流量。如果配置了 Cisco 组管理协议 (CGMP) 或 Internet 组管理协议 (IGMP) 侦测,也是如此。两个路由器都需要查看多播流量才能做出转发决定。
此图提供一个示例。红线指示多播馈送。
不转发多播流量的路由器(冗余路由器)将在 LAN 的出站接口上看到此数据。冗余路由器必须丢弃此流量,因为该流量到达了错误的接口,所以会导致 RPF 检查失败。该流量称为非 RPF 流量,因为它向后反射来自源的流量。对于此非 RPF 流量,冗余路由器中通常没有 (*,G) 或 (S,G) 状态。因此不能创建任何硬件或软件快捷方式来丢弃数据包。处理器必须单独检查每个多播数据包。这种需求可能导致这些路由器上的 CPU 出现峰值或以非常高的处理速度运行。通常,冗余路由器上的高速率多播流量导致 HSRP 丢失来自其对等体的 hello 数据包并更改状态。
所以,默认情况下,在不能高效处理非 RPF 流量的 Catalyst 6500 和 8500 路由器上将启用硬件访问列表。访问列表可防止 CPU 处理非 RPF 流量。
Note:请不要尝试通过在冗余路由器接口上禁用独立于 IP 协议的多播 (PIM) 的方法来解决这个问题。此配置可能对冗余路由器造成不良影响。
在 6500/8500 路由器上,有一个访问列表引擎,通过它可以以线速执行过滤。您可以使用此功能有效地处理稀疏模式组的非 RPF 流量。
在软件版本 6.2.1 及更高版本中,系统软件自动启用过滤,以便非 DR 不会接收不必要的非 RPF 流量。在早期软件版本中,您需要手动配置访问列表。对于早于 6.2.1 的软件版本,要实现此解决方案,需要在末节网络的入站接口上放置访问列表。访问列表过滤不是来自末节网络的多播流量。此访问列表被推入交换机的硬件中。此访问列表确保 CPU 永远不会看到数据包,并且允许硬件丢弃非 RPF 流量。
例如,假设两个路由器共同具有两个 VLAN。您可以根据需要将此 VLAN 数目扩展为任意数量的 VLAN。路由器 A 是 VLAN 1 中的 HSRP 主路由器,并且是 VLAN 2 的辅助路由器。路由器 B 是 VLAN 1 的辅助路由器,并且是 VLAN 2 的主路由器。请为路由器 A 或路由器 B 指定一个较高的 IP 地址,以便使该路由器成为 DR。请确保对于所有网段,只有一个路由器是 DR,如下例所示:
Router A VLAN1 Physical IP Address A.B.C.3 Router B VLAN1 Physical IP Address A.B.C.2 VLAN1 HSRP Address A.B.C.1 Router A VLAN2 Physical IP Address A.B.D.3 Router B VLAN2 Physical IP Address A.B.D.2 VLAN2 HSRP Address A.B.D.1
将此访问列表放置在非 DR 路由器上:
access-list 100 permit ip A.B.C.0 0.0.0.255 any access-list 100 permit ip A.B.D.0 0.0.0.255 any access-list 100 permit ip any 224.0.0.0 0.0.0.255 access-list 100 permit ip any 224.0.1.0 0.0.0.255 access-list 100 deny ip any 224.0.0.0 15.255.255.255
对于两台路由器共享的每个子网,您都应该拥有一个许可。其他许可允许自动集合点 (RP) 和预留组正确操作。
发出这些附加命令将访问控制列表 (ACL) 应用到非 DR 上的每个 VLAN 接口:
Note:为使 ACL 能在混合配置下工作,必须运行 Catalyst 软件 5.4(3) 或更高版本。
Note:本文档讨论的冗余路由器设计是外部冗余,因此它意味着有两个物理 6500 路由器。请勿将此解决方法用于内部冗余(其中两个路由处理器在一个机箱中)。
有了非对称路由,传输和接收数据包将遵循主机及与其通信的对等主机之间的不同路径。此数据包流是 HSRP 路由器之间配置负载平衡(根据将 HSRP 设置为活动或备用状态的 HSRP 优先权)的结果。交换环境中的这种数据包流可能导致未知的单播过度泛洪。此外,可能会缺失多层交换 (MLS) 条目。当交换机将单播数据包大量传出所有端口时,会发生未知单播泛洪。由于没有目标 MAC 地址条目,交换机将滥发数据包。因为仍在转发数据包,所以此行为不会中断连接。但是该行为的确造成了主机端口充斥过量的额外数据包。此案例分析不对称路由行为,并且分析发生单播泛洪的原因。
不对称路由的症状包括:
过多单播数据包泛洪
缺少流的 MLS 条目
嗅探器踪迹显示主机端口上的数据包的目的地不是该主机
基于第二层的数据包重写引擎(如服务器负载平衡器、Web 缓存设备和网络设备)增大了网络延迟
示例包括 Cisco LocalDirector 和 Cisco Cache Engine。
连接的主机和工作站因为不能处理附加单播泛洪流量负载而丢弃数据包
Note:路由器上的默认 ARP 缓存老化时间是四小时。交换机内容可寻址存储器 (CAM) 条目的默认老化时间是五分钟。主机工作站的 ARP 老化时间对本讨论并不重要。但本例将 ARP 老化时间设置为四小时。
本图表说明此问题。此拓扑结构示例包括在每台交换机中使用多层交换机功能卡 (MSFC) 的 Catalyst 6500 系列。虽然此示例使用 MSFC,但是您可以使用任何路由器而不是 MSFC。您可以使用的示例路由器包括路由交换模块 (RSM)、千兆交换路由器 (GSR) 和 Cisco 7500。直接将主机连接到交换机上的端口。交换机通过为 VLAN 1 和 VLAN 2 传输流量的中继互相连接。
这些输出是摘自show standby命令配置的部分从每个MSF。
interface Vlan 1 mac-address 0003.6bf1.2a01 ip address 10.1.1.2 255.255.255.0 no ip redirects standby 1 ip 10.1.1.1 standby 1 priority 110 interface Vlan 2 mac-address 0003.6bf1.2a01 ip address 10.1.2.2 255.255.255.0 no ip redirects standby 2 ip 10.1.2.1 MSFC1#show standby Vlan1 - Group 1 Local state is Active, priority 110 Hellotime 3 holdtime 10 Next hello sent in 00:00:00.696 Hot standby IP address is 10.1.1.1 configured Active router is local Standby router is 10.1.1.3 expires in 00:00:07 Standby virtual mac address is 0000.0c07.ac01 2 state changes, last state change 00:20:40 Vlan2 - Group 2 Local state is Standby, priority 100 Hellotime 3 holdtime 10 Next hello sent in 00:00:00.776 Hot standby IP address is 10.1.2.1 configured Active router is 10.1.2.3 expires in 00:00:09, priority 110 Standby router is local 4 state changes, last state change 00:00:51 MSFC1#exit Console> (enable)
interface Vlan 1 mac-address 0003.6bf1.2a02 ip address 10.1.1.3 255.255.255.0 no ip redirects standby 1 ip 10.1.1.1 interface Vlan 2 mac-address 0003.6bf1.2a02 ip address 10.1.2.3 255.255.255.0 no ip redirects standby 2 ip 10.1.2.1 standby 2 priority 110 MSFC2#show standby Vlan1 - Group 1 Local state is Standby, priority 100 Hellotime 3 holdtime 10 Next hello sent in 00:00:01.242 Hot standby IP address is 10.1.1.1 configured Active router is 10.1.1.2 expires in 00:00:09, priority 110 Standby router is local 7 state changes, last state change 00:01:17 Vlan2 - Group 2 Local state is Active, priority 110 Hellotime 3 holdtime 10 Next hello sent in 00:00:00.924 Hot standby IP address is 10.1.2.1 configured Active router is local Standby router is 10.1.2.2 expires in 00:00:09 Standby virtual mac address is 0000.0c07.ac02 2 state changes, last state change 00:40:08 MSFC2#exit
Note:在 MSFC1 上 VLAN 1 处于 HSRP active 状态,并且 VLAN 2 处于 HSRP standby 状态。在 MSFC2 上 VLAN 2 处于 HSRP active 状态,并且 VLAN 1 处于 HSRP standby 状态。每台主机的默认网关是各自的备用 IP 地址。
最初,所有缓存都为空。主机 A 使用 MSFC1 作为其默认网关。主机 B 使用 MSFC2。
Ping 启动之前的 ARP 和 MAC 地址表主机 A ARP 表 | 交换1个MAC地址表MAC VLAN端口 | MSFC1 ARP 表 | MSFC2 ARP 表 | 交换机2 MAC地址表MAC VLAN端口 | 主机 B ARP 表 |
---|---|---|---|---|---|
0003.6bf1.2a01 1 15/1 | 0003.6bf1.2a02 1 15/1 | ||||
0003.6bf1.2a01 2 15/1 | 0003.6bf1.2a02 2 15/1 | ||||
0000.0c07.ac01 1 15/1 | 0000.0c07.ac01 1 1/1 | ||||
0000.0c07.ac02 2 1/1 | 0000.0c07.ac02 2 15/1 | ||||
0003.6bf1.2a02 1 1/1 | 0003.6bf1.2a01 1 1/1 | ||||
0003.6bf1.2a02 2 1/1 | 0003.6bf1.2a01 2 1/1 |
Note:为简要起见,在此部分出现的其他表中不包括路由器 HSRP 的交换机 1 MAC 地址和 MAC 地址。
主机 A ping 主机 B,这意味着主机 A 发送一个 ICMP echo 数据包。由于每台主机位于单独的 VLAN 上,主机 A 将要发送给主机 B 的数据包转发到其默认网关。要发生此过程,主机 A 必须发送一个 ARP,才能解析其默认网关的 MAC 地址 10.1.1.1。
主机 A 向默认网关发送 ARP 之后的 ARP 和 MAC 地址表主机 A ARP 表 | 交换1个MAC地址表MAC VLAN端口 | MSFC1 ARP 表 | MSFC2 ARP 表 | 交换机2 MAC地址表MAC VLAN端口 | 主机 B ARP 表 |
---|---|---|---|---|---|
10.1.1.1 :0000.0c07.ac01 | 0000.0c00.0001 1 2/1 | 10.1.1.10 :0000.0c00.0001 |
MSFC1 接收数据包,重写数据包,并将数据包转发到主机 B。为了重写数据包,MSFC1 将向主机 B 发送 ARP 请求,因为该主机位于直接连接的接口。MSFC2 仍需接收此流中的所有数据包。当 MSFC1 从主机 B 收到 ARP 应答时,两台交换机获知与主机 B 关联的源端口。
主机A发送信息包到默认网关,以及MSFC1向主机B发送ARP之后,显示ARP和MAC地址表。主机 A ARP 表 | 交换1个MAC地址表MAC VLAN端口 | MSFC1 ARP 表 | MSFC2 ARP 表 | 交换机2 MAC地址表MAC VLAN端口 | 主机 B ARP 表 |
---|---|---|---|---|---|
10.1.1.1 :0000.0c07.ac01 | 0000.0c00.0001 1 2/1 | 10.1.1.10 :0000.0c00.0001 | 0000.0c00.0002 2 2/1 | 10.1.2.2 :0003.6bf1.2a01 | |
0000.0c00.0002 2 1/1 | 10.1.2.10 :0000.0c00.0002 |
主机 B 通过 MSFC1 从主机 A 接收 echo 数据包。现在主机 B 必须向主机 A 发送回声应答。因为主机 A 位于其他 VLAN 上,主机 B 通过其默认网关 MSFC2 转发回复。为了通过 MSFC2 转发数据包,主机 B 必须为其默认网关 IP 地址 10.1.2.1 发送 ARP。
在主机 B 向其默认网关发送 ARP 之后的 ARP 和 MAC 地址表主机 A ARP 表 | 交换1个MAC地址表MAC VLAN端口 | MSFC1 ARP 表 | MSFC2 ARP 表 | 交换机2 MAC地址表MAC VLAN端口 | 主机 B ARP 表 |
---|---|---|---|---|---|
10.1.1.1 :0000.0c07.ac01 | 0000.0c00.0001 1 2/1 | 10.1.1.10 :0000.0c00.0001 | 10.1.2.10 0000.0c00.0002 | 0000.0c00.0002 2 2/1 | 10.1.2.2 (0003.6bf1.2a01) |
0000.0c00.0002 2 1/1 | 10.1.2.10 :0000.0c00.0001 | 10.1.2.1 (0000.0c07.ac02) |
现在主机 B 将回声应答数据包转发到 MSFC2。MSFC2 将向主机 A 发送一个 ARP 请求,因为它直接连接 VLAN 1。交换机 2 使用主机 B 的 MAC 地址填充其 MAC 地址表。
在主机 A 收到 echo 数据包之后的 ARP 和 MAC 地址表主机 A ARP 表 | 交换1个MAC地址表MAC VLAN端口 | MSFC1 ARP 表 | MSFC2 ARP 表 | 交换机2 MAC地址表MAC VLAN端口 | 主机 B ARP 表 |
---|---|---|---|---|---|
10.1.1.1 :0000.0c07.ac01 | 0000.0c00.0001 1 2/1 | 10.1.1.10 :0000.0c00.0001 | 10.1.2.10 0000.0c00.0002 | 0000.0c00.0002 2 2/1 | 10.1.2.2 (0003.6bf1.2a01) |
10.1.1.3 :0003.6bf1.2a0 | 0000.0c00.0002 2 1/1 | 10.1.2.10 :0000.0c00.0001 | 10.1.1.10 0000.0c00.0001 | 0000.0c00.00001 1 1/1 | 10.1.2.1 (0000.0c07.ac02) |
回声应答到达主机 A,整个流是完整的。
由主机A. Remember设想主机B连续Ping的事例主机A发送响应包到MSFC1,并且主机B发送给MSFC2的ECHO回复,在非对称路由状态。仅当主机 B 回复来自 MSFC1 的 ARP 请求时,交换机 1 才获知主机 B 的源 MAC。这是因为主机 B 将 MSFC2 作为其默认网关,而不向 MSFC1 和交换机 1 发送数据包。由于 ARP 超时默认为四小时,因此默认五分钟之后交换机 1 将使主机 B 的 MAC 地址老化。五分钟之后交换机 2 使主机 A 老化。结果,交换机 1 必须将具有主机 B 目标 MAC 的所有数据包当作未知单播进行处理。交换机将从主机 A 发往主机 B 的数据包从所有端口大量送出。另外,因为交换机 1 中没有 MAC 地址条目主机 B,因而也不会有 MLS 条目。
在由主机 A 连续 Ping 主机 B 5 分钟之后,显示的 ARP 和 MAC 地址表
主机 A ARP 表 | 交换1个MAC地址表MAC VLAN端口 | MSFC1 ARP 表 | MSFC2 ARP 表 | 交换机2 MAC地址表MAC VLAN端口 | 主机 B ARP 表 |
---|---|---|---|---|---|
10.1.1.1 :0000.0c07.ac01 | 0000.0c00.0001 1 2/1 | 10.1.1.10 :0000.0c00.0001 | 10.1.2.10 0000.0c00.0002 | 0000.0c00.0002 2 2/1 | 10.1.2.2 :0003.6bf1.2a01 |
10.1.1.3 :0003.6bf1.2a0 | 10.1.2.10 :0000.0c00.0001 | 10.1.1.10 0000.0c00.0001 | 10.1.2.1 :0000.0c07.ac01 |
在交换机 2 上主机 A 的 MAC 地址条目老化后,来自主机 B 的回声应答数据包将遇到相同问题。主机 B 将回声应答转发到 MSFC2,MSFC2 再路由此数据包,并在 VLAN 1 上将其发送出去。交换机在 MAC 地址表中没有主机 A 条目,并且必须将数据包大量传出 VLAN 1 中的所有端口。
非对称路由问题不会中断连接。但是,非对称路由可能会导致单播过度泛洪和丢失 MLS 项。有三种配置更改可以解决此问题:
将各个交换机的上 MAC 老化时间调整为 14,400 秒(四小时)或更长时间。
将路由器上的 ARP 超时更改为五分钟(300 秒)。
将 MAC 老化时间和 ARP 超时更改为同一超时值。
首选方法是将 MAC 老化时间更改为 14,400 秒。以下是配置的指导原则:
CatOS :
set cam agingtime vlan_aging_time_in_msecCisco IOS 软件/2900XL/3500XL:
mac-address-table aging-time seconds [vlan vlan_id]当因交换机中的桥接环路而存在 interVLAN 泄漏时,将出现 STANDBY-3-DIFFVIP1 错误消息。
如果收到此错误消息,并且因交换机中的桥接环路而存在 interVLAN 泄漏,请完成这些步骤以解决此错误:
识别在终端节点之间数据包应采取的路径。
如果此路径上存在路由器,请完成以下步骤:
排除从第一台交换机到路由器的路径上的故障。
排除从路由器到第二台交换机的路径上的故障。
连接到路径上的每台交换机,并且检查路径上终端节点之间使用的端口的状态。
当在连接到启用 HSRP 的路由器的交换机端口上配置端口安全时,将导致 MAC 违规,因为您不能在多个接口上具有同一个安全 MAC 地址。在以下情况之一中,安全端口上将发生安全违规:
添加到地址表中的安全 MAC 地址数量已达到最大,而其 MAC 地址不在该地址表中的工作站试图访问接口。
在一个安全接口上获知或配置的地址出现在同一个 VLAN 中的另一个安全接口上。
默认情况下,端口安全违规导致交换机接口因错误而被禁用并立即关闭,从而阻止在路由器之间传送 HSRP 状态消息。
在路由器上发出 standby use-bia 命令。这强制路由器使用固化地址用于 HSRP,而不是虚拟 MAC 地址。
禁用连接到已启用 HSRP 的路由器的交换机端口上的端口安全。
如果在接口上创建了多个 HSRP 组,将收到此错误消息:
%Interface hardware cannot support multiple groups
收到此错误消息是因为某些路由器或交换机上的硬件限制。用任何软件方法都不可能克服此限制。问题是每个 HSRP 组使用接口上的另一个 MAC 地址,因此以太网 MAC 芯片必须支持多个可编程 MAC 地址,以启用多个 HSRP 组。
解决方法是使用 standby use-bia 接口配置命令,该命令使用接口的固化地址 (BIA) 作为其虚拟 MAC 地址,而不是预先分配的 MAC 地址。
逐接口验证每台 HSRP 路由器为每个子网提供了唯一的 IP 地址。并且,验证每个接口的线路协议是否 up。为了快速验证每个接口的当前状态,请发出 show ip interface brief 命令。示例如下:
Router_1#show ip interface brief Interface IP-Address OK? Method Status Protocol Vlan1 192.168.1.1 YES manual up up Vlan10 192.168.10.1 YES manual up up Vlan11 192.168.11.1 YES manual up up Router_2#show ip interface brief Interface IP-Address OK? Method Status Protocol Vlan1 192.168.1.2 YES manual up up Vlan10 192.168.10.2 YES manual up up Vlan11 192.168.11.2 YES manual up up
验证被配置的备用 (HSRP) IP 地址和备用组号码与每个参与 HSRP 的路由器相匹配。如果备用组或 HSRP 备用地址不匹配,则可能引起 HSRP 问题。show standby 命令详细显示每个接口的备用组和备用 IP 地址配置。示例如下:
Router_1#show standby Vlan10 - Group 10 Local state is Active, priority 110, may preempt Hellotime 3 holdtime 10 Next hello sent in 00:00:00.216 Hot standby IP address is 192.168.10.100 configured Active router is local Standby router is 192.168.10.2 expires in 00:00:08 Standby virtual mac address is 0000.0c07.ac0a 8 state changes, last state change 00:18:04 Vlan11 - Group 11 Local state is Active, priority 110, may preempt Hellotime 3 holdtime 10 Next hello sent in 00:00:01.848 Hot standby IP address is 192.168.11.100 configured Active router is local Standby router is 192.168.11.2 expires in 00:00:08 Standby virtual mac address is 0000.0c07.ac0b 2 state changes, last state change 00:04:45 Router_2#show standby Vlan10 - Group 10 Local state is Standby, priority 109, may preempt Hellotime 3 holdtime 10 Next hello sent in 00:00:01.710 Hot standby IP address is 192.168.10.100 configured Active router is 192.168.10.1 expires in 00:00:09, priority 110 Standby router is local Standby virtual mac address is 0000.0c07.ac0a 9 state changes, last state change 00:20:22 Vlan11 - Group 11 Local state is Standby, priority 109, may preempt Hellotime 3 holdtime 10 Next hello sent in 00:00:02.506 Hot standby IP address is 192.168.11.100 configured Active router is 192.168.11.1 expires in 00:00:09, priority 110 Standby router is local Standby virtual mac address is 0000.0c07.ac0b 4 state changes, last state change 00:07:07
验证备用 (HSRP) IP 地址是否与每个接口上配置的 IP 地址不同。show standby 命令是查看此信息的快速参考。示例如下:
Router_1#show standby Vlan10 - Group 10 Local state is Active, priority 110, may preempt Hellotime 3 holdtime 10 Next hello sent in 00:00:00.216 Hot standby IP address is 192.168.10.100 configured Active router is local Standby router is 192.168.10.2 expires in 00:00:08 Standby virtual mac address is 0000.0c07.ac0a 8 state changes, last state change 00:18:04 Vlan11 - Group 11 Local state is Active, priority 110, may preempt Hellotime 3 holdtime 10 Next hello sent in 00:00:01.848 Hot standby IP address is 192.168.11.100 configured Active router is local Standby router is 192.168.11.2 expires in 00:00:08 Standby virtual mac address is 0000.0c07.ac0b 2 state changes, last state change 00:04:45 Router_2#show standby Vlan10 - Group 10 Local state is Standby, priority 109, may preempt Hellotime 3 holdtime 10 Next hello sent in 00:00:01.710 Hot standby IP address is 192.168.10.100 configured Active router is 192.168.10.1 expires in 00:00:09, priority 110 Standby router is local Standby virtual mac address is 0000.0c07.ac0a 9 state changes, last state change 00:20:22 Vlan11 - Group 11 Local state is Standby, priority 109, may preempt Hellotime 3 holdtime 10 Next hello sent in 00:00:02.506 Hot standby IP address is 192.168.11.100 configured Active router is 192.168.11.1 expires in 00:00:09, priority 110 Standby router is local Standby virtual mac address is 0000.0c07.ac0b 4 state changes, last state change 00:07:07
除非令牌环接口上配置了 HSRP,否则 standby use-bia 命令应该只用于特殊情况。此命令通知路由器使用其 BIA 而不是虚拟 HSRP MAC 地址用于 HSRP 组。在令牌环网络中,如果源路由桥接 (SRB) 处于使用状态,那么 standby use-bia 命令将允许新的活动路由器通过无故 ARP 更新主机的路由信息字段 (RIF) 缓存。但并不是所有的主机实现都能正确地处理无故 ARP。standby use-bia 命令的另一个注意事项涉及代理 ARP。备用路由器不能取代故障活动路由器已丢失的代理 ARP 数据库。
验证在所有 HSRP 对等体上配置的访问列表是否未过滤在其接口上配置的任何 HSRP 地址。特别地,验证为了将流量发送到子网上所有路由器而使用的多播地址 (224.0.0.2)。同时,验证目标为 HSRP 端口 1985 的 UDP 流量是否未被过滤。HSRP 使用此地址和端口在对等体之间发送 hello 数据包。作为快速参考发出 show access-lists 命令,以记下路由器上配置的访问列表。示例如下:
Router_1#show access-lists Standard IP access list 77 deny 167.19.0.0, wildcard bits 0.0.255.255 permit any Extended IP access list 144 deny pim 238.0.10.0 0.0.0.255 any permit ip any any (58 matches)
Note:Catalyst 6500/6000 的 Multilayer Switch Module (MSM) 和 Catalyst 4000 的 4232-L3 刀片具有唯一配置。在排除 HSRP 故障时,不仅要验证 4232-L3 或 MSM 的配置,而且还要验证邻接交换机端口的配置。如果忽略正确配置邻接交换机端口,可能会发生 HSRP 不稳定性和其他连接问题。HSRP 重复 IP 地址错误消息是与这些硬件模块的不正确配置相关联的最常见消息。
有关详细信息,请参阅以下文档:
如果中继用来连接 HSRP 路由器,请验证路由器和交换机上的中继配置。有五个可能的中继模式:
在
理想
自动
nonegotiate
验证配置的中继模式是否提供期望的中继方法。
当您排除 HSRP 故障时,请使用 desirable 配置用于交换机到交换机连接。此配置可以隔离交换机端口无法正确建立中继的问题。因为多数 Cisco IOS 路由器不支持中继协商,请将路由器到交换机配置设置为非协商。
对于 IEEE 802.1Q (dot1q) 中继模式,请验证中继的两端是否均配置成使用同一本地 VLAN。由于默认情况下思科产品不标记本地 VLAN,本地 VLAN 配置不匹配会导致在错配的 VLAN 上无法连通。最后,验证是否已经配置中继来传输路由器上配置的 VLAN,同时验证 VLAN 是否未被修剪并且处于 STP 状态,以供与路由器连接的端口使用。发出 show trunk mod/port 命令以获取显示此信息的快速参考。示例如下:
Switch_1> (enable) show trunk 2/11 Port Mode Encapsulation Status Native vlan -------- ----------- ------------- ------------ ----------- 2/11 desirable isl trunking 1 Port Vlans allowed on trunk -------- --------------------------------------------------------------------- 2/11 1-1005 Port Vlans allowed and active in management domain -------- --------------------------------------------------------------------- 2/11 1-2 Port Vlans in spanning tree forwarding state and not pruned -------- --------------------------------------------------------------------- 2/11 1-2 Switch_2> (enable) show trunk 2/10 Port Mode Encapsulation Status Native vlan -------- ----------- ------------- ------------ ----------- 2/10 desirable isl trunking 1 Port Vlans allowed on trunk -------- --------------------------------------------------------------------- 2/10 1-1005 Port Vlans allowed and active in management domain -------- --------------------------------------------------------------------- 2/10 1-2 Port Vlans in spanning tree forwarding state and not pruned -------- --------------------------------------------------------------------- 2/10 1-2 Switch_1> (enable) show trunk 2/11 Port Mode Encapsulation Status Native vlan -------- ----------- ------------- ------------ ----------- 2/11 nonegotiate isl trunking 1 Port Vlans allowed on trunk -------- --------------------------------------------------------------------- 2/11 1-1005 Port Vlans allowed and active in management domain -------- --------------------------------------------------------------------- 2/11 1-2 Port Vlans in spanning tree forwarding state and not pruned -------- --------------------------------------------------------------------- 2/11 1-2 Switch_1> (enable) show trunk 2/11 Port Mode Encapsulation Status Native vlan -------- ----------- ------------- ------------ ----------- 2/11 nonegotiate dot1q trunking 1 Port Vlans allowed on trunk -------- --------------------------------------------------------------------- 2/11 1-1005 Port Vlans allowed and active in management domain -------- --------------------------------------------------------------------- 2/11 1-2 Port Vlans in spanning tree forwarding state and not pruned -------- --------------------------------------------------------------------- 2/11 1-2
如果用端口信道连接 HSRP 路由器,请验证路由器和交换机上的 EtherChannel 配置。在至少一端将交换机对交换机端口信道配置为 desirable。另一边可以处于任何以下模式:
在
理想
自动
示例如下:
Switch_1> (enable) show port channel Port Status Channel Admin Ch Mode Group Id ----- ---------- -------------------- ----- ----- 1/1 connected desirable silent 16 769 1/2 connected desirable silent 16 769 ----- ---------- -------------------- ----- ----- Port Device-ID Port-ID Platform ----- ------------------------------- ------------------------- ---------------- 1/1 SCA031700TR 1/1 WS-C6509 1/2 SCA031700TR 1/2 WS-C6509 ----- ------------------------------- ------------------------- ---------------- Switch_2> (enable) show port channel Port Status Channel Admin Ch Mode Group Id ----- ---------- -------------------- ----- ----- 1/1 connected desirable silent 29 769 1/2 connected desirable silent 29 769 ----- ---------- -------------------- ----- ----- Port Device-ID Port-ID Platform ----- ------------------------------- ------------------------- ---------------- 1/1 TBA03501066 1/1 WS-C6506 1/2 TBA03501066 1/2 WS-C6506 ----- ------------------------------- ------------------------- ----------------
参考配置在Catalyst 4500/4000, 5500/5000和6500/6000之间的EtherChannel运行CatOS系统软件的交换机。
验证 HSRP 路由器的交换机上的 MAC 地址表中是否存在 HSRP 虚拟 MAC 地址和物理 BIA 的条目。路由器上的 show standby 命令提供虚拟 MAC 地址。show interface 命令提供物理 BIA。以下是示例输出:
Router_1#show standby Vlan1 - Group 1 Local state is Active, priority 100 Hellotime 3 holdtime 10 Next hello sent in 00:00:01.820 Hot standby IP address is 10.1.1.254 configured Active router is local Standby router is 10.1.1.2 expires in 00:00:07 Standby virtual mac address is 0000.0c07.ac01 2 state changes, last state change 00:50:15 Vlan2 - Group 2 Local state is Active, priority 200, may preempt Hellotime 3 holdtime 10 Next hello sent in 00:00:00.724 Hot standby IP address is 10.2.1.254 configured Active router is local Standby router is 10.2.1.2 expires in 00:00:09 Standby virtual mac address is 0000.0c07.ac02 6 state changes, last state change 00:07:59 Switch_1> (enable) show cam 00-00-0c-07-ac-01 * = Static Entry + = Permanent Entry # = System Entry R = Router Entry X = Port Security Entry VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 1 00-00-0c-07-ac-01 R 15/1 [ALL] Total Matching CAM Entries Displayed = 1 Switch_1> (enable) show cam 00-00-0c-07-ac-02 * = Static Entry + = Permanent Entry # = System Entry R = Router Entry X = Port Security Entry VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type] ---- ------------------ ----- ------------------------------------------- 2 00-00-0c-07-ac-02 R 15/1 [ALL] Total Matching CAM Entries Displayed = 1
请务必检查 CAM 老化时间,以便确定条目的老化速度。如果时间等于 STP 转发延迟的配置值(默认情况下为 15 秒),则网络中很可能存在 STP 环路。示例命令输出如下:
Switch_1> (enable) show cam agingtime VLAN 1 aging time = 300 sec VLAN 2 aging time = 300 sec VLAN 1003 aging time = 300 sec VLAN 1005 aging time = 300 sec Switch_2> (enable) show cam agingtime VLAN 1 aging time = 300 sec VLAN 2 aging time = 300 sec VLAN 1003 aging time = 300 sec VLAN 1005 aging time = 300 sec
如果 HSRP 组内有多个路由器处于活动状态,则这些路由器不会一致从其他 HSRP 对等体那里接收到 hello 数据包。物理层问题可能会阻止流量在对等体之间持续通过并导致此情况。排除 HSRP 故障时,请务必验证 HSRP 对等体之间的物理连接和 IP 连接。发出 show standby 命令以验证连接。示例如下:
Router_1#show standby Vlan10 - Group 10 Local state is Active, priority 110, may preempt Hellotime 3 holdtime 10 Hot standby IP address is 192.168.10.100 configured Active router is local Standby router is unknown expired Standby virtual mac address is 0000.0c07.ac0a 12 state changes, last state change 00:00:48 Vlan11 - Group 11 Local state is Active, priority 110, may preempt Hellotime 3 holdtime 10 Hot standby IP address is 192.168.11.100 configured Active router is local Standby router is unknown expired Standby virtual mac address is 0000.0c07.ac0b 6 state changes, last state change 00:00:48 Router_2#show standby Vlan10 - Group 10 Local state is Active, priority 109, may preempt Hellotime 3 holdtime 10 Hot standby IP address is 192.168.10.100 configured Active router is local Standby router is unknown expired Standby virtual mac address is 0000.0c07.ac0a 15 state changes, last state change 00:01:18 Vlan11 - Group 11 Local state is Active, priority 109, may preempt Hellotime 3 holdtime 10 Hot standby IP address is 192.168.11.100 configured Active router is local Standby router is unknown expired Standby virtual mac address is 0000.0c07.ac0b 10 state changes, last state change 00:01:18
检查接口。验证是否所有配置 HSRP 的接口均处于 up/up 状态,如以下示例所示:
Router_1#show ip interface brief Interface IP-Address OK? Method Status Protocol Vlan1 10.1.1.1 YES manual administratively down down Vlan2 10.2.1.1 YES manual up up Router_2#show ip interface brief Interface IP-Address OK? Method Status Protocol Vlan1 10.1.1.2 YES manual up up Vlan2 10.2.1.2 YES manual down down
如果任何接口在管理上处于 down/down 状态,请在路由器上进入配置模式并发出接口特定的 no shutdown 命令。示例如下:
Router_1#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router_1(config)# interface vlan 1 Router_1(config-if)# no shutdown Router_1(config-if)# ^Z Router_1#show ip interface brief Interface IP-Address OK? Method Status Protocol Vlan1 10.1.1.1 YES manual up down Vlan2 10.2.1.1 YES manual up up
如果其中任一接口处于 down/down 或 up/down 状态,请检查日志中是否有接口更改通知。对基于 Cisco IOS 软件的交换机而言,在链路打开/关闭情况下会出现下列消息:
%LINK-3-UPDOWN: Interface "interface", changed state to up %LINK-3-UPDOWN: Interface "interface", changed state to down Router_1#show log 3d04h: %STANDBY-6-STATECHANGE: Standby: 0: Vlan2 state Active-> Speak 3d04h: %LINK-5-CHANGED: Interface Vlan2, changed state to down 3d04h: %LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan2, changed state to down
检查端口、电缆和 HSRP 对等体之间的所有收发器或其他设备。是否有人移除或松开了任何连接?是否有任何接口经常丢失链路?使用的电缆类型是否适当?检查接口是否存在任何错误,如下例所示:
Router_1#show interface vlan2 Vlan2 is down, line protocol is down Hardware is Cat5k RP Virtual Ethernet, address is 0030.f2c9.5638 (bia 0030.f2c9.5638) Internet address is 10.2.1.1/24 MTU 1500 bytes, BW 10000 Kbit, DLY 1000 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation ARPA, loopback not set ARP type: ARPA, ARP Timeout 04:00:00 Last input 00:00:00, output never, output hang never Last clearing of "show interface" counters never Queueing strategy: fifo Output queue 0/40, 0 drops; input queue 0/75, 0 drops 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 155314 packets input, 8259895 bytes, 0 no buffer Received 0 broadcasts, 0 runts, 0 giants, 0 throttles 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored 8185 packets output, 647322 bytes, 0 underruns 0 output errors, 3 interface resets 0 output buffer failures, 0 output buffers swapped out
检查交换机端口链路更改和其他错误。发出以下命令并检查输出:
show logging buffer
show port
show mac
这些命令可帮助您确定交换机和其他设备之间是否存在连接问题。
对于链路打开/关闭情况,以下消息是正常的:
PAGP-5-PORTTOSTP:Port [dec]/[dec] joined bridge port [dec]/[chars] PAGP-5-PORTFROMSTP: Port [dec]/[dec] left bridge port [dec]/[chars] Switch_1> (enable) show logging buffer 2001 Jan 08 20:37:24 %PAGP-5-PORTTOSTP:Port 2/1 joined bridge port 2/1 2001 Jan 08 20:37:25 %PAGP-5-PORTTOSTP:Port 2/2 joined bridge port 2/2 2001 Jan 08 20:37:25 %PAGP-5-PORTTOSTP:Port 2/3 joined bridge port 2/3 2001 Jan 08 20:37:25 %PAGP-5-PORTTOSTP:Port 2/11 joined bridge port 2/11 2001 Jan 08 20:46:39 %PAGP-5-PORTTOSTP:Port 2/12 joined bridge port 2/12 2001 Jan 08 20:46:29 %PAGP-5-PORTFROMSTP:Port 2/11 left bridge port 2/11 2001 Jan 08 20:46:29 %PAGP-5-PORTFROMSTP:Port 2/12 left bridge port 2/12 2001 Jan 08 20:47:05 %DTP-5-TRUNKPORTON:Port 2/11 has become isl trunk 2001 Jan 08 20:52:15 %PAGP-5-PORTTOSTP:Port 2/11 joined bridge port 2/11 2001 Jan 08 22:18:24 %DTP-5-TRUNKPORTON:Port 2/12 has become isl trunk 2001 Jan 08 22:18:34 %PAGP-5-PORTTOSTP:Port 2/12 joined bridge port 2/12
发出 show port 命令以确定端口的一般运行状况。示例如下:
Switch_1> (enable) show port status 2/11 Port Name Status Vlan Level Duplex Speed Type ----- ------------------ ---------- ---------- ------ ------ ----- ------------ 2/11 connected trunk normal a-full a-100 10/100BaseTX
端口状态为 connected、notconnect 还是 errdisable?如果状态是 notconnect,请检查两端电缆是否均已插入。检查使用的电缆是否适当。如果状态是 errdisable,请查看计数器看是否存在过多错误。有关详细信息,请参阅在 CatOS 平台上恢复处于 errDisable 状态的端口。
此端口是针对什么 VLAN 配置的?请确保连接的另一端是为同一 VLAN 配置的。如果将链路配置为中继,则应保证中继的两端都承载同样的 VLAN。
速度和双工配置如何?如果在设置前面加上了一个 a-,则该端口配置为自动协商速度和双工。否则,网络管理员已预先确定此配置。在配置链路的速度和双工时,链路两端的设置必须匹配。如果一个交换机端口配置为自动协商,则链路另一端也必须配置为自动协商。如果一端被硬编码为特定速度和双工,另一端也必须进行硬编码。如果留下一端自动协商,同时另一端为硬编码时,则会中断自动协商进程。
Switch_1> (enable) show port counters 2/11 Port Align-Err FCS-Err Xmit-Err Rcv-Err UnderSize ----- ---------- ---------- ---------- ---------- --------- 2/11 0 0 0 0 0 Port Single-Col Multi-Coll Late-Coll Excess-Col Carri-Sen Runts Giants ----- ---------- ---------- ---------- ---------- --------- --------- --------- 2/11 0 0 0 0 0 0 - Last-Time-Cleared -------------------------- Fri Jan 5 2001, 13:30:45
是否有很多 Align-Err、FCS-Err 或 Runts?这些指示端口和连接设备之间的速度或双工不匹配。请更改该端口的速度和双工设置,以便帮助正确这些错误。
发出 show mac 命令以验证端口是否有流量通过。Rcv- 和 Xmit- 列指示在特定端口上接收和传输的单播、多播和广播的数据包数量。底部的计数器显示有多少数据包被丢弃或丢失,以及这些数据包是否是入站或出站流量的一部分。Lrn-Discrd、In-Lost 和 Out-Lost 计算由于缓冲区不足而错误转发或丢弃的数据包数量。
Switch_1> (enable) show mac 2/11 Port Rcv-Unicast Rcv-Multicast Rcv-Broadcast -------- -------------------- -------------------- -------------------- 2/11 9786 9939 2678 Port Xmit-Unicast Xmit-Multicast Xmit-Broadcast -------- -------------------- -------------------- -------------------- 2/11 587 55517 148 Port Rcv-Octet Xmit-Octet -------- -------------------- -------------------- 2/11 2354136 7206386 MAC Dely-Exced MTU-Exced In-Discard Lrn-Discrd In-Lost Out-Lost -------- ---------- ---------- ---------- ---------- ---------- ---------- 2/11 0 - 13 0 0 0 Last-Time-Cleared -------------------------- Fri Jan 5 2001, 13:30:45
验证 IP 连接。从关联的路由器发出 IP ping。这有助于暴露所有连接的短暂丢失。扩展 ping 仅在 enable 模式中可用。示例命令输出如下:
router_1#ping Protocol [ip]: Target IP address: 10.2.1.2 Repeat count [5]: 1000 Datagram size [100]: 1500 Timeout in seconds [2]: Extended commands [n]: Sweep range of sizes [n]: Type escape sequence to abort. Sending 1000, 1500-byte ICMP Echos to 10.2.1.2, timeout is 2 seconds: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!! Success rate is 100 percent (1000/1000), round-trip min/avg/max = 4/4/20 ms
从每个 HSRP 路由器发出到其对等体的 ping 以确定连接的故障位置。
检查交换机是否存在 HSRP 对等体之间的单向链路。每当邻居可收到链路上的本地设备传输的流量,而本地设备无法接收邻居传输的流量时,就会产生单向链路。CatOS 的最新版本有一个可以检测单向链路的功能。此功能称作单向链路检测 (UDLD) 主动模式。UDLD 仅在连接的两端均支持此功能时才可用。UDLD 主动模式运行在 L2 层,以确定链路是否已正确连接,以及流量是否在正确的邻居之间双向流动。您可以在 CATOS 版本 5.4(3) 中配置 UDLD 主动模式,以后再逐端口配置点对点连接。示例命令输出如下:
Note:启用 UDLD 而不启用 UDLD 主动模式将仅检查未正确接线的光缆。在这种情况下,UDLD 检查多个连接中接收和传输交叉的位置。
Switch_1> (enable) set udld enable UDLD enabled globally Console> (enable) set udld aggressive-mode enable 1/1-2 Aggressive UDLD enabled on ports 1/1-2. Console> (enable) show udld UDLD : enabled Message Interval : 15 seconds Console> (enable) show udld port 1 UDLD : enabled Message Interval : 15 seconds Port Admin Status Aggressive Mode Link State -------- ------------ --------------- ---------------- 1/1 enabled enabled undetermined 1/2 enabled enabled undetermined
在交换机不支持 UDLD 的 CatOS 5.4.3 及更早版本中,或者,如果所涉及的链路一端有一个路由器,则可以启用 Cisco 发现协议 (CDP)。启用 CDP 是另一种检测单向链路是否存在的方法。如果只有链路的一端能发现其相邻设备,请替换设备之间的电缆,并且检查有故障的接口。
Switch_1> (enable) show cdp CDP : enabled Message Interval : 60 Hold Time : 180 Switch_1> (enable) show cdp neighbors * - indicates vlan mismatch. # - indicates duplex mismatch. Port Device-ID Port-ID Platform -------- ------------------------------- ------------------------- ------------ 2/5 066560091(Switch_2) 2/9 WS-C5505 2/6 066560091(Switch_2) 2/10 WS-C5505 15/1 Router_1 Vlan1 cisco Cat5k-RSFC Switch_2> (enable) show cdp CDP : enabled Message Interval : 60 Hold Time : 180 Switch_2> (enable) show cdp neighbors * - indicates vlan mismatch. # - indicates duplex mismatch. Port Device-ID Port-ID Platform -------- ------------------------------- ------------------------- ------------ 2/9 066565061(Switch_1) 2/5 WS-C5505 2/10 066565061(Switch_1) 2/6 WS-C5505 15/1 Router_2 Vlan1 cisco Cat5k-RSFC
请参阅以下文档:
如果 HSRP 状态频繁更改,请在路由器的启用模式下使用 HSRP debug 命令,以观察 HSRP 的活动。此信息可帮助您确定哪些 HSRP 数据包是由路由器接收和发送的。如果创建 Cisco 技术支持服务请求,请收集此信息。调试输出还显示 HSRP 状态信息,以及详细的 HSRP hello 数据包统计。
在 Cisco IOS 软件版本 12.1 及更早版本中,HSRP debug 命令就是 debug standby。对于间歇性的、仅影响几个接口的问题,此信息非常有用。通过调试,您可以确定所涉及的 HSRP 路由器是否以特定时间间隔接收和传输 HSRP hello 数据包。如果路由器未收到 hello 数据包,您可以推断对等体未传输 hello 数据包或网络丢弃了数据包。
命令 | 目的 |
---|---|
debug standby | 启用 HSRP 调试 |
示例命令输出如下:
Router_1#debug standby HSRP debugging is on Router_1# 4d01h: SB1: Vlan1 Hello out 10.1.1.1 Active pri 100 ip 10.1.1.254 4d01h: SB1: Vlan1 Hello in 10.1.1.2 Standby pri 100 ip 10.1.1.254 4d01h: SB2: Vlan2 Hello in 10.2.1.2 Standby pri 100 ip 10.2.1.254 4d01h: SB2: Vlan2 Hello out 10.2.1.1 Active pri 100 ip 10.2.1.254
Cisco IOS 软件版本 12.0(3) 引入 debug condition,它允许根据接口和组号码过滤 debug standby 命令的输出。该命令使用在 Cisco IOS 软件版本 12.0 中引入的 debug condition 示例。
命令 | 目的 |
---|---|
debug condition standby interface_group | 启用组 (0 – 255) 的 HSRP 条件调试 |
接口必须是可以支持 HSRP 的有效接口。组可以是任何组(从 0 至 255)。可以为不存在的组设置 debug condition。这允许在新组的初始化期间捕获调试。必须启用 debug standby,才能生成任何调试输出。如果不存在备用 debug condition,则将为所有接口上的所有组生成调试输出。如果存在至少一个备用 debug condition,则应根据所有备用 debug condition,对备用调试输出进行过滤。示例命令输出如下:
Router_1#debug condition standby vlan 2 2 Condition 1 set Router_1# 4d01h: Vl2 SB2 Debug: Condition 1, standby Vl2 SB2 triggered, count 1 Router_1#debug standby HSRP debugging is on Router_1# 4d01h: SB2: Vlan2 Hello in 10.2.1.2 Standby pri 100 ip 10.2.1.254 4d01h: SB2: Vlan2 Hello out 10.2.1.1 Active pri 100 ip 10.2.1.254 4d01h: SB2: Vlan2 Hello out 10.2.1.1 Active pri 100 ip 10.2.1.254 4d01h: SB2: Vlan2 Hello in 10.2.1.2 Standby pri 100 ip 10.2.1.254
Cisco IOS 软件版本 12.1(1) 添加了增强的 HSRP 调试功能。为了帮助找到有用的信息,增强的 HSRP 调试功能限制定期 Hello 消息中的噪声并且包括其他状态信息。当您创建服务请求以与 Cisco 技术支持工程师一起工作时,此信息特别有用。
命令 | 目的 |
---|---|
debug standby | 显示所有 HSRP 错误、事件和数据包 |
debug standby errors | 显示 HSRP 错误 |
debug standby events [[all]|[HSRP|冗余|track]] [detail] | 显示 HSRP 事件 |
debug standby packets [[all|简洁]|[请做通告|突然行动|Hello|resign]] [detail] | 显示 HSRP 数据包 |
示例命令输出如下:
Router_2#debug standby terse HSRP: HSRP Errors debugging is on HSRP Events debugging is on HSRP Packets debugging is on (Coup, Resign) Router_2# 00:39:50: SB2: Vlan2 Standby: c/Active timer expired (10.2.1.1) 00:39:50: SB2: Vlan2 Standby -> Active 00:39:50: %STANDBY-6-STATECHANGE: Standby: 2: Vlan2 state Standby -> Active 00:40:30: SB2: Vlan2 Standby router is 10.2.1.1 00:41:12: SB2: Vlan2 Active: d/Standby timer expired (10.2.1.1) 00:42:09: SB2: Vlan2 Coup in 10.2.1.1 Listen pri 200 ip 10.2.1.254 00:42:09: SB2: Vlan2 Active: j/Coup rcvd from higher pri router 00:42:09: SB2: Vlan2 Active -> Speak 00:42:09: %STANDBY-6-STATECHANGE: Standby: 2: Vlan2 state Active -> Speak 00:42:09: SB2: Vlan2 Active router is 10.2.1.1 00:42:19: SB2: Vlan2 Speak: d/Standby timer expired (unknown) 00:42:19: SB2: Vlan2 Speak -> Standby 00:42:19: %STANDBY-6-STATECHANGE: Standby: 2: Vlan2 state Speak -> Standby
您可以使用接口和/或 HSRP 组条件调试以对此调试输出进行过滤。
命令 | 目的 |
---|---|
debug condition interface interface | 启用接口条件调试 |
debug condition standby interface_group | 启用 HSRP 条件调试 |
在本示例中,路由器加入事先存在的 HSRP 组:
SB1: Ethernet0/2 Init: a/HSRP enabled SB1: Ethernet0/2 Active: b/HSRP disabled (interface down) SB1: Ethernet0/2 Listen: c/Active timer expired (unknown) SB1: Ethernet0/2 Active: d/Standby timer expired (10.0.0.3) SB1: Ethernet0/2 Speak: f/Hello rcvd from higher pri Speak router SB1: Ethernet0/2 Active: g/Hello rcvd from higher pri Active router SB1: Ethernet0/2 Speak: h/Hello rcvd from lower pri Active router SB1: Ethernet0/2 Standby: i/Resign rcvd SB1: Ethernet0/2 Active: j/Coup rcvd from higher pri router SB1: Ethernet0/2 Standby: k/Hello rcvd from higher pri Standby router SB1: Ethernet0/2 Standby: l/Hello rcvd from lower pri Standby router SB1: Ethernet0/2 Active: m/Standby mac address changed SB1: Ethernet0/2 Active: n/Standby IP address configured
网络中的 STP 环路或不稳定性可能会阻止 HSRP 对等体正常通信。由于这种不正常通信,每个对等体都成为活动路由器。STP 环路能导致广播风暴、重复帧和 MAC 表不一致。所有这些问题将影响整个网络,特别是 HSRP。HSRP 错误消息可能是 STP 问题的第一个征兆。
当您排除 STP 故障时,您必须了解每个 VLAN 上的网络 STP 拓扑。您必须确定哪个交换机是根网桥,并且该交换机的哪些端口处于阻塞和转发状态。由于每个 VLAN 有其自己的 STP 拓扑,在每个 VLAN 上,此信息是非常重要的。
请确保在网络中的每台交换机和桥接设备上配置 STP。请记下每台交换机所认为的根网桥位置。还要记下以下计时器的值:
根最大老化时间
hello 时间
转发延迟
发出 show spantree 命令以查看此信息的全部内容。默认情况下,该命令显示 VLAN 1 的此信息。但是,如果与命令一起提供 VLAN 编号,则还可以看到其他 VLAN 信息。当您排除 STP 故障时,此信息将非常有用。
您在 show spantree 输出中记下的那三个计时器是从根网桥获知的。这些计时器不需要与特定网桥上设置的计时器匹配。但请确保计时器与根网桥相匹配,以防出现此交换机在任一点成为根网桥的情况。计时器与根网桥相匹配有助于维护管理的连续性和便于管理。匹配还可以防止使用了不正确计时器的交换机导致网络瘫痪。
Note:请一直启用所有 VLAN 的 STP,不管网络中是否存在冗余链路。如果在非冗余网络上启用 STP,可以防止中断。如果有人将交换机与集线器或其他交换机一起桥接,并偶然创建一个物理环路,就可能发生中断。在隔离特定问题时,STP 也是非常有用的。如果启用 STP 的启动影响了网络中的某种操作,则可能存在需要隔离出来的问题。
show spantree 命令的示例输出如下:
Switch_1> (enable) show spantree VLAN 1 Spanning tree enabled Spanning tree type ieee Designated Root 00-01-64-34-90-00 Designated Root Priority 98 Designated Root Cost 0 Designated Root Port 1/0 Root Max Age 20 sec Hello Time 2 sec Forward Delay 15 sec Bridge ID MAC ADDR 00-01-64-34-90-00 Bridge ID Priority 98 Bridge Max Age 20 sec Hello Time 2 sec Forward Delay 15 sec Port Vlan Port-State Cost Priority Portfast Channel_id ------------------------ ---- ------------- ----- -------- ---------- ---------- 1/1 1 not-connected 4 32 disabled 0 1/2 1 not-connected 4 32 disabled 0 2/1 1 forwarding 100 32 disabled 0 2/2 1 not-connected 100 32 disabled 0 2/3 1 not-connected 100 32 disabled 0 2/4 1 not-connected 100 32 disabled 0 2/5-6 1 forwarding 12 32 disabled 803 2/10 1 not-connected 100 32 disabled 0 2/11 1 not-connected 100 32 disabled 0 2/12 1 not-connected 100 32 disabled 0 15/1 1 forwarding 5 32 disabled 0 Switch_1> (enable) show spantree 2 VLAN 2 Spanning tree enabled Spanning tree type ieee Designated Root 00-30-96-73-74-01 Designated Root Priority 8192 Designated Root Cost 12 Designated Root Port 2/5-6 (agPort 13/35) Root Max Age 20 sec Hello Time 2 sec Forward Delay 15 sec Bridge ID MAC ADDR 00-01-64-34-90-01 Bridge ID Priority 16384 Bridge Max Age 20 sec Hello Time 2 sec Forward Delay 15 sec Port Vlan Port-State Cost Priority Portfast Channel_id ------------------------ ---- ------------- ----- -------- ---------- ---------- 2/5-6 2 forwarding 12 32 disabled 803 2/7 2 not-connected 100 32 disabled 0 2/8 2 not-connected 100 32 disabled 0 2/9 2 not-connected 100 32 disabled 0 15/1 2 forwarding 5 32 disabled 0
交换机 1 是 VLAN 1 的根,并认为交换机 2 是 VLAN 2 的根。交换机 2 同意。
Switch_2> (enable) show spantree VLAN 1 Spanning tree enabled Spanning tree type ieee Designated Root 00-01-64-34-90-00 Designated Root Priority 98 Designated Root Cost 12 Designated Root Port 2/9-10 (agPort 13/37) Root Max Age 20 sec Hello Time 2 sec Forward Delay 15 sec Bridge ID MAC ADDR 00-30-96-73-74-00 Bridge ID Priority 16384 Bridge Max Age 20 sec Hello Time 2 sec Forward Delay 15 sec Port Vlan Port-State Cost Priority Portfast Channel_id ------------------------ ---- ------------- ----- -------- ---------- ---------- 1/1 1 not-connected 4 32 disabled 0 1/2 1 not-connected 4 32 disabled 0 2/6 1 not-connected 100 32 disabled 0 2/7 1 not-connected 100 32 disabled 0 2/8 1 not-connected 100 32 disabled 0 2/9-10 1 forwarding 12 32 disabled 805 2/11 1 not-connected 100 32 disabled 0 2/12 1 not-connected 100 32 disabled 0 15/1 1 forwarding 5 32 disabled 0 Switch_2> (enable) show spantree 2 VLAN 2 Spanning tree enabled Spanning tree type ieee Designated Root 00-30-96-73-74-01 Designated Root Priority 8192 Designated Root Cost 0 Designated Root Port 1/0 Root Max Age 20 sec Hello Time 2 sec Forward Delay 15 sec Bridge ID MAC ADDR 00-30-96-73-74-01 Bridge ID Priority 8192 Bridge Max Age 20 sec Hello Time 2 sec Forward Delay 15 sec Port Vlan Port-State Cost Priority Portfast Channel_id ------------------------ ---- ------------- ----- -------- ---------- ---------- 2/1 2 not-connected 100 32 disabled 0 2/2 2 not-connected 100 32 disabled 0 2/3 2 not-connected 100 32 disabled 0 2/4 2 not-connected 100 32 disabled 0 2/5 2 not-connected 100 32 disabled 0 2/9-10 2 forwarding 12 32 disabled 805 15/1 2 forwarding 5 32 disabled 0
要发生 STP 环路,网络中必须存在 L2 物理冗余。如果不可能存在物理环路,则不会发生 STP。STP 环路的症状如下:
整个网络中断
连接 损耗
网络设备报告高进程和系统利用率
show system 命令可帮助您确定特定交换机的系统利用率。show system 命令指示以下项目:
当前流量百分比
峰值流量百分比
最后高峰的日期和时间
20% 以上的系统利用率通常指示发生循环。7% 以上的利用率指示可能出现环路。但是,这些百分比只是近似值。近似值随硬件的不同(例如 Supervisor 引擎 I 与 Supervisor 引擎 IIIG 或 Catalyst 4000 与 Catalyst 6000)而略有变化。
show system 命令的示例输出如下:
Switch_1> (enable) show system PS1-Status PS2-Status Fan-Status Temp-Alarm Sys-Status Uptime d,h:m:s Logout ---------- ---------- ---------- ---------- ---------- -------------- --------- ok none ok off ok 5,00:58:16 20 min PS1-Type PS2-Type Modem Baud Traffic Peak Peak-Time ------------ ------------ ------- ----- ------- ---- ------------------------- WS-C5008B none disable 9600 0% 70% Tue Jan 9 2001, 16:50:52 System Name System Location System Contact ------------------------ ------------------------ ------------------------ Switch_1
此输出显示以下项目:
当前流量百分比,0%
峰值流量百分比,70%
最后高峰的日期和时间
70% 的系统利用率指示在显示 show system 命令输出时可能存在环路。
只要单个 VLAN 发生 STP 环路,就可能会拥塞链路,浪费其他 VLAN 的带宽。show mac 命令记下哪些端口传输或收到过量的数据包。过多的广播和多播可能指示端口是 STP 环路的一部分。show mac 命令的此示例输出显示在端口 2/11 上有大量的多播和广播数据包。调查此端口。通常,只要多播或广播超过单播数据包的数量,就可以怀疑链路是否存在 STP 环路。
Note:交换机将接收和传输的 STP 网桥协议数据单元 (BPDU) 也视为多播帧。处于 STP 阻塞状态的端口仍然会传输和接收 STP BPDU。
Switch_1> (enable) show mac Port Rcv-Unicast Rcv-Multicast Rcv-Broadcast -------- -------------------- -------------------- -------------------- 1/1 0 0 0 1/2 0 0 0 2/1 551277 296902 1025640 2/2 0 0 0 2/3 0 0 0 2/4 0 0 0 2/5 0 69541 0 2/6 0 44026 0 2/7 0 0 0 2/8 0 0 0 2/9 0 0 0 2/10 0 0 0 2/11 12836 5911986 1126018 2/12 6993144 177795414 19063645 Port Xmit-Unicast Xmit-Multicast Xmit-Broadcast -------- -------------------- -------------------- -------------------- 1/1 0 0 0 1/2 0 0 0 2/1 326122 1151895 431125 2/2 0 0 0 2/3 0 0 0 2/4 0 0 0 2/5 0 157414 0 2/6 10 652821 1 2/7 0 0 0 2/8 0 0 0 2/9 0 0 0 2/10 0 0 0 2/11 20969162 127255514 56002139 2/12 13598 7378244 3166 Port Rcv-Octet Xmit-Octet -------- -------------------- -------------------- 1/1 0 0 1/2 0 0 2/1 544904490 295721712 2/2 0 0 2/3 0 0 2/4 0 0 2/5 6997319 15860816 2/6 4787570 185054891 2/7 0 0 2/8 0 0 2/9 0 0 2/10 0 0 2/11 560753237 8058589649 2/12 6822964273 815810803 MAC Dely-Exced MTU-Exced In-Discard Lrn-Discrd In-Lost Out-Lost -------- ---------- ---------- ---------- ---------- ---------- ---------- 1/1 0 0 0 0 0 0 1/2 0 0 0 0 0 0 2/1 0 0 718920 0 0 0 2/2 0 0 0 0 0 0 2/3 0 0 0 0 0 0 2/4 0 0 0 0 0 0 2/5 0 - 3 0 1 0 2/6 0 - 0 0 0 0 2/7 0 0 0 0 0 0 2/8 0 0 0 0 0 0 2/9 0 0 0 0 0 0 2/10 0 0 0 0 0 0 2/11 0 0 67 0 0 0 2/12 0 0 869 0 3 0
发出 session 命令以查看 ATM 和路由器计数器。
Last-Time-Cleared -------------------------- Fri Jan 5 2001, 13:30:45
对 STP 问题诊断至关重要的另一个命令是 show spantree statistics 命令。此命令跟踪拓扑更改通知 (TCN) 消息,一直追溯到发送方。这些作为交换机间的特殊 BPDU 发送的消息表明交换机的拓扑结构发生过更改。该交换机将 TCN 传送出其根端口。TCN 上行移动到根网桥。根网桥然后将另一个特殊 BPDU(拓扑更改确认 (TCA))发送出其所有端口。根网桥在配置 BPDU 中设置 TCN 位。这会导致所有非根网桥将其 MAC 地址表老化计时器设置为配置 STP 转发延迟。
要隔离此问题,请访问每个 VLAN 的根网桥,为连接交换机的端口发送 show spantree statistics 命令。last topology change occurred 条目提供了上次收到 TCN 的时间。在此情况下,要发现谁发送了导致可能的 STP 环路的 TCN,已经为时太晚。topology change count 条目可以让您评估发生的 TCN 的数量。在 STP 环路中,此计数器随时可能增加。有关详细信息,请参阅生成树协议问题及相关设计注意事项。本文档包含关于如何解释 show spantree statistics 命令的更多信息。其他有用的数据包括:
最后一个 TCN 的端口
最后一个 TCN 的时间
当前 TCN 计数
示例命令输出如下:
Switch_1> (enable) show spantree statistics 2/5 1 Port 2/5 VLAN 1 SpanningTree enabled for vlanNo = 1 BPDU-related parameters port spanning tree enabled state forwarding port_id 0x8323 port number 0x323 path cost 12 message age (port/VLAN) 20(20) designated_root 00-01-64-34-90-00 designated_cost 0 designated_bridge 00-01-64-34-90-00 designated_port 0x8323 top_change_ack FALSE config_pending FALSE port_inconsistency none PORT based information & statistics config bpdu's xmitted (port/VLAN) 29660(357027) config bpdu's received (port/VLAN) 2(215721) tcn bpdu's xmitted (port/VLAN) 0(521) tcn bpdu's received (port/VLAN) 2(203) forward trans count 1 scp failure count 0 Status of Port Timers forward delay timer INACTIVE forward delay timer value 15 message age timer INACTIVE message age timer value 0 topology change timer INACTIVE topology change timer value 35 hold timer INACTIVE hold timer value 1 delay root port timer INACTIVE delay root port timer value 0 VLAN based information & statistics spanningtree type ieee spanningtree multicast address 01-80-c2-00-00-00 bridge priority 98 bridge mac address 00-01-64-34-90-00 bridge hello time 2 sec bridge forward delay 15(15) sec topology change initiator: 2/2 last topology change occurred: Wed Jan 10 2001, 18:16:02 topology change FALSE topology change time 35 topology change detected FALSE topology change count 80 topology change last recvd. from 00-10-7b-08-fb-94 Other port-specific info dynamic max age transitions 0 port bpdu ok count 0 msg age expiry count 0 link loading 1 bpdu in processing FALSE num of similar bpdus to process 1 received_inferior_bpdu FALSE next state 3 src mac count: 0 total src mac count 0 curr_src_mac 00-00-00-00-00-00 next_src_mac 00-00-00-00-00-00 channel_src_mac 00-10-7b-08-e1-74 channel src count 0 channel ok count 0
此输出显示,最后一次拓扑更改是在设备 00-10-7b-08-fb-94 出站端口 2/2 上发生的。下一步,从 00-10-7b-08-fb-94 设备发出相同的 show spantree statistics 命令。来自从邻接设备的 show spantree statistics 输出的摘要如下:
VLAN based information & statistics spanningtree type ieee spanningtree multicast address 01-80-c2-00-00-00 bridge priority 98 bridge mac address 00-10-7b-08-fb-94 bridge hello time 2 sec bridge forward delay 15(15) sec topology change initiator: 5/2 last topology change occurred: Wed Jan 10 2001, 18:16:02 topology change FALSE topology change time 35 topology change detected FALSE topology change count 80 topology change last recvd. from 00-00-00-00-00-00
输出记录 MAC 地址全部为零,这意味着此交换机拓朴结构更改的发起者。端口 5/2 是转换状态的端口,这很可能是因为该端口由状态 up 转为 down。如果此端口与 PC 或单个主机连接,请确保在此端口上已启用 STP PortFast。当端口转换状态时,STP PortFast 会抑制 STP TCN。
有关 STP 和如何排除与网络接口卡 (NIC) 关联的链路转换故障的信息,请参阅以下文档:
由于 Fast Etherchannel (FEC)(端口信道)负载均衡的本质,FEC 问题可能会造成 HSRP 和 STP 问题。当您排除 STP 或 HSRP 故障时,请删除所有 FEC 连接的配置。在配置更改到位之后,请在两台交换机上发出 show spantree blockedports 命令。确保在连接的每一端有至少一个端口开始阻塞。示例命令输出如下:
Switch_1> (enable) show spantree blockedports T = trunk g = group Ports Vlans ----- ---------- 2/6 (T) 2 Number of blocked ports (segments) in the system : 1 Switch_2> (enable) show spantree blockedports T = trunk g = group Ports Vlans ----- ---------- 2/10 (T) 1 Number of blocked ports (segments) in the system : 1
有关 Fast EtherChannel 的信息,请参阅以下文档:
启用广播抑制可帮助削减广播风暴的影响。广播风暴是 STP 环路的主要副作用之一。示例命令输出如下:
Switch_1> (enable) set port broadcast 2/5 ? Packets per second Percentage Switch_1> (enable) set port broadcast 2/5 10% Port(s) 2/1-12 broadcast traffic limited to 10%. Switch_1> (enable) show port broadcast 2/5 Port Broadcast-Limit Broadcast-Drop -------- --------------- -------------- 2/5 10 % -
在 STP 环路中,到交换机的控制台或 Telnet 流量经常变得太缓慢,以至于不能正确找到冲突设备。为了强制网络立刻恢复,请删除所有冗余物理链路。在允许 STP 在新的非冗余拓朴结构上重新收敛后,再一次重新连接一条冗余链路。如果在您添加某个特定段之后,重新出现 STP 环路,即已识别出冲突设备。
验证 PortFast、UplinkFast 和 BackboneFast 的配置是否正确。当您排除 STP 故障时,请禁用所有高级 STP(UplinkFast 和 BackboneFast)。另外,请验证是否仅在直接连接到非桥接主机的端口上启用 STP PortFast。非桥接主机包括用户工作站和不带网桥组的路由器。请勿在连接到集线器或其他交换机的端口上启用 PortFast。示例命令输出如下:
Switch_2> (enable) show port spantree Port(s) Vlan Port-State Cost Priority Portfast Channel_id ------------------------ ---- ------------- ----- -------- ---------- ---------- 1/1 1 not-connected 4 32 disabled 0 1/2 1 not-connected 4 32 disabled 0 2/1 2 not-connected 100 32 disabled 0 2/2 2 not-connected 100 32 disabled 0 2/3 2 not-connected 100 32 disabled 0 2/4 2 not-connected 100 32 disabled 0 2/5 2 not-connected 100 32 disabled 0 2/6 1 forwarding 19 32 disabled 0 2/7 1 not-connected 100 32 disabled 0 2/8 1 not-connected 100 32 disabled 0 2/9 1 blocking 19 32 disabled 0 2/9 2 forwarding 19 32 disabled 0 2/9 3 forwarding 19 32 disabled 0 2/9 1003 not-connected 19 32 disabled 0 2/9 1005 not-connected 19 4 disabled 0 2/10 1 blocking 19 32 disabled 0 2/10 2 forwarding 19 32 disabled 0 2/10 3 blocking 19 32 disabled 0 2/10 1003 not-connected 19 32 disabled 0 2/10 1005 not-connected 19 4 disabled 0 2/11 2 forwarding 100 32 enabled 0 2/12 1 not-connected 100 32 disabled 0 15/1 1 forwarding 5 32 disabled 0 15/1 2 forwarding 5 32 disabled 0
仅在分支节点交换机上启用 UplinkFast。分支节点交换机是用户直接连接的布线室交换机。UplinkFast 是只适用于将端口上行链接到网络的分布或核心层的 STP 优化。示例命令输出如下:
Switch_1> (enable) set spantree uplinkfast enable VLANs 1-1005 bridge priority set to 49152. The port cost and portvlancost of all ports set to above 3000. Station update rate set to 15 packets/100ms. uplinkfast all-protocols field set to off. uplinkfast enabled for bridge. Switch_1> (enable) show spantree uplinkfast Station update rate set to 15 packets/100ms. uplinkfast all-protocols field set to off. VLAN port list ----------------------------------------------- 1 2/2(fwd) ,2/5-6 2 2/5(fwd) ,2/6
在网络中的所有交换机上配置 BackboneFast。BackboneFast 是 STP 优化,可在收到指定网桥发送的下级 BPDU 时修改 Max Age timer。示例命令输出如下:
Switch_1> (enable) set spantree backbonefast enable Backbonefast enabled for all VLANs Switch_1> (enable) show spantree backbonefast Backbonefast is enabled.
当您启用 PortFast BPDU 防护时,如果在非中继的、已启用 PortFast 的端口上收到 BPDU,则该端口将转入 errdisable 状态。此功能可帮助您查找 PortFast 配置不正确的端口。该功能还可检测在何处设备可能反射数据包或将 STP BPDU 突然插入到网络。当您排除 STP 故障时,请在所有端口上启用此功能。CatOS 上的示例如下:
Switch_1>(enable) set spantree portfast bpdu-quard enable Spantree PortFast bpdu-guard enabled on this switch.
当在网络中已启用 VTP 修剪时,它可能会导致 HSRP 组的设备转入活动状态。这会导致在网关之间出现 IP 冲突并造成了流量问题。请确保任何 HSRP 组的 VLAN 不被网络中的 VTP 修剪。
HSRP 与目标 MAC 地址 01-00-5e-00-00-02 通信,该地址是 IGMP 快速离开处理功能使用的同一目标 MAC 地址。IGMP 快速离开处理功能处理是 IGMP 版本 2 的一项功能。在 Cisco 交换机上启用 CGMP 离开处理功能时,目标 MAC 地址为 01-00-5e-00-00-02 的所有多播流量将转发到交换机 CPU。如果数据包不是 IGMP 消息,交换机 CPU 将重新生成数据包,然后将数据包发送到所有路由器端口上。因为 HSRP 使用同一目标多播地址,所有 HSRP 数据包必须首先发送到交换机 CPU,然后由交换机 CPU 重新生成数据包并将其发送到所有路由器端口。所以,当您排除 HSRP 故障时,请在 HSRP 对等体之间禁用 CGMP 离开处理管理。
Note:在带有 Netflow 功能卡 (NFFC) 的 Catalyst 6500 和 5500 上使用 IGMP 监听不会产生这个问题。
为确定 CatOS 交换机上是否启用了 CGMP 离开处理功能,请发出 show cgmp leave 命令。示例如下:
Switch> (enable) show cgmp leave CGMP: disabled CGMP leave: disabled For Catalyst 2900XL/3500XL switches, issue the show cgmp state command: s-2924xl-27a#show cgmp state CGMP is running. CGMP Fast Leave is not running. Default router timeout is 300 sec.
如果隔离或解决 HSRP 的所有其他尝试失败,接下来就要使用“分开处理”的方法。此方法可帮助隔离组成网络的网络和组件。“分开处理”方法涉及以下列表中的任何一项指导原则:
Note:此列表重复了来自本文档中其他部分的一些指导原则。
为 HSRP 创建一个测试 VLAN 和隔离 VLAN 以与 HSRP 路由器交换。
断开所有冗余端口。
将 FEC 端口分成单个连接的端口。
将 HSRP 组成员数降低到仅含两名成员。
修剪中继端口,以便在这些端口上只传播必要的 VLAN。
断开网络中已连接的交换机,直到问题不再出现。
在 HSRP 非对称环境中,当流量从 POS 接口流到千兆以太网接口时,CPU 使用率可能会达到很高。数据包被分段,因为 POS MTU 大小是 4470 个字节,千兆以太网 MTU 大小是 1500 个字节。分段会消耗更多 CPU。
为了解决此问题,请执行以下命令之一:
!--- On the gigabit interface mtu 4770
或
!--- On the POS interface ip tcp adjust-mss 1460
Catalyst 6500/6000 系列的 Policy Feature Card 2 (PFC2)/MSFC2 最多支持 16 个唯一 HSRP 组。如果需要超过 16 个 HSRP 组,您可以在不同 VLAN 中重新使用相同的 HSRP 组号码。有关 Catalyst 6500/6000 系列的 HSRP 组限制的详细信息,请参阅 Catalyst 6500/6000 系列交换机上的 HSRP 组限制常见问题。
Catalyst 3550 系列受到类似的限制,它最多支持 16 个 HSRP 组。这是硬件限制,没有解决方法。
当网络中断连接或向网络添加更加高优先级的 HSRP 路由器时,快速以太网接口可能会发生此问题。当 HSRP 状态从活动更改为对话时,路由器会重置接口,以便从接口 MAC 地址过滤器中删除该 HSRP MAC 地址。只有用于 Cisco 2600、3600 及 7500 系列的快速以太网接口上的特定硬件有此问题。路由器接口重置导致快速以太网接口上的链路状态更改,并且交换机检测到这一更改。如果交换机运行 STP,则更改会导致发生 STP 转换。STP 需要 30 秒的时间以将端口到转换为 forwarding 状态。此时间是默认转发延迟时间 15 秒的两倍。同时,对话路由器在 10 秒(这是 HSRP 保持时间)之后过渡到 standby 状态。STP 尚未转发,因此不会收到来自活动路由器的 HSRP hello 消息。这会导致备用路由器在大约 10 秒之后变成活动路由器。两个路由器现在都处于 active 状态。当 STP 端口变为转发状态时,优先级较低的路由器将从活动状态更改为对话状态,且整个进程将重复操作。
平台 | 说明 | Cisco Bug ID | 修正 | 解决方法 |
---|---|---|---|---|
Cisco 2620/2621 | 当配置了 HSRP,并且拔掉电缆时,快速以太网接口开始抖动。 | 软件升级;有关修订的详细信息,请参阅 Bug。 | 启用在连接的交换机端口上生成树 PortFast。 | |
Cisco 2620/2621 | 在带快速以太网的 2600 上,HSRP 状态出现抖动。 | Cisco IOS 软件版本 12.1.3 | 启用在连接的交换机端口上生成树 PortFast。 | |
与NM-1FE-TX1的Cisco3600 | 在 2600 和 3600 快速以太网上,HSRP 状态出现抖动。 | Cisco IOS 软件版本 12.1.3 | 启用在连接的交换机端口上生成树 PortFast。 | |
带快速以太网接口的 Cisco 4500 | 在 4500 快速以太网上,HSRP 状态出现抖动。 | CSCds16055(仅限注册用户)![]() |
Cisco IOS 软件版本 12.1.5 | 启用在连接的交换机端口上生成树 PortFast。 |
有PA-2FEISL的2 Cisco 7200/7500 | 在 PA-2FEISL 上,HSRP 状态出现抖动。 | Cisco IOS 软件版本 12.1.5 | 启用在连接的交换机端口上生成树 PortFast。 |
1NM-1FE-TX =一端口快速以太网(10/100BASE-TX接口)网络模块。
1 PA-2FEISL =两端口的快速以太网交换机间链路[ISL]端口适配器。
备选解决方法是调整 HSRP 计时器,以便 STP 转发延迟低于默认 HSRP 保持时间的一半。默认 STP 转发延迟是 15 秒,并且默认 HSRP 保持时间是 10 秒。
当您使用trace命令在HSRP进程下时, Cisco建议您使用特定的递减值为了避免HSRP飘荡。
这是在HSRP活动路由器的一配置示例,当您使用trace命令时:
standby 1 ip 10.0.0.1 standby 1 priority 105 standby 1 preempt delay minimum 60 standby 1 name TEST standby 1 track Multilink100 15
那里15是递减值,当multilink100拍动。
当配置了 HSRP 时,Cisco 2600、3600 及 7200 路由器上的快速以太网接口可能会遇到以下问题:
当接口关闭或被拔掉时,HSRP 保持在 active 状态。
当接口打开时,HSRP 保持在 initial 状态。
接口跟踪不工作。
接口 up/down 的定时感知问题导致这些 HSRP 问题。计时问题是发生接口事件和更新路由器接口状态之间的延迟。
平台 | 说明 | Cisco Bug ID | 修正 | 解决方法 |
---|---|---|---|---|
Cisco 2620/2621 | HSRP 陷在 initial 状态。 | CSCdp24680(仅限注册用户)![]() |
软件升级;有关修订的详细信息,请参阅 Bug。 | 发出 shutdown 和 no shutdown 命令以重置接口。 |
带 NM-1FE-TX 的 Cisco 3600 | 在 3600 中的 NM-1FE-TX 模块上,HSRP 陷在 initial 状态。 | CSCdp24680(仅限注册用户)![]() |
软件升级;有关修订的详细信息,请参阅 Bug。 | 发出 shutdown 和 no shutdown 命令以重置接口。 |
带 PA-2FEISL 的 Cisco 7200/7500 | 在 7200/7500 中的 PA-2FEISL 模块上,HSRP 陷在 initial 状态。 | CSCdr01156(仅限注册用户)![]() |
软件升级;有关修订的详细信息,请参阅 Bug。 | 发出 shutdown 和 no shutdown 命令以重置接口。 |
在此图表中,路由器 A 表示 Cisco 2500 系列路由器,路由器 B 表示 Cisco 4500 系列路由器。如果路由器 A ping LAN 1 上的虚拟 IP 地址 10.1.1.1,路由器将首先发出 ARP 请求。路由器 B 使用包含虚拟 MAC 地址的 ARP 应答来回应。因为虚拟 MAC 地址和路由器 B 的 E1 接口地址相同,路由器 B 将忽略此 ARP 应答。
已知 Cisco 2500 及 4500 系列路由器上的 10 MB 以太网控制器存在限制。以太网控制器只支持在其地址过滤器中存在一个 MAC 地址。结果,在一个接口中只能配置一个 HSRP 组。HSRP MAC 地址也用作接口 MAC 地址。在同一个路由器上的不同以太网上配置同一个 HSRP 组时,就容易引起问题。show standby 命令显示使用 MAC 地址作为 HSRP MAC 地址。
此问题有两个解决方法:
在不同接口上配置不同的 HSRP 组。
Note:推荐使用此解决方法。
在一个或两个接口上发出 standby use-bia 命令。
当启用 HSRP,并且您在以下设备之一上使用 Cisco IOS 软件版本 12.1(4)E 时,MLS 交换可能会发生故障:
Supervisor 引擎 1/MSFC1
Supervisor 引擎 2/MSFC2
Supervisor 引擎 1/MSFC2
每个组合的症状各不相同,如以下列表所示:
对于 Supervisor 引擎 1/MSFC1 和 Supervisor 引擎 1/MSFC2(使用 Netflow MLS)- 当将流量发送到 HSRP MAC 地址时,无法创建 MLS 快捷方式。使用 HSRP 备用 IP 地址作为默认网关的任何客户端将使用 HSRP MAC 地址。
对于 Supervisor 引擎 2/MSFC2(使用 Cisco 快速转发 - MLS)- 在交换机上无法正确填充 Cisco 快速转发邻接表。
请参阅 Cisco Bug ID CSCds89040(仅限注册用户)。 此修补程序对 CatOS (c6msfc) 映像的 Cisco IOS 软件版本 12.1(5a)E 和 Cisco IOS 软件 (c6sup) 映像的 Cisco IOS 软件版本 12.1(5a)E1 可用。
Catalyst 4000 产品系列(2948G、2980G、4912G、4003 和 4006)软件存在几个与 HSRP 和 CGMP 互操作性相关的问题。所有问题在软件版本 6.3.6 和 7.2.1 中都已被解决。
启用 CGMP 可能导致 HSRP 问题。此问题已在软件版本 6.3(6) 中得到解决。处于 HSRP standby 状态的路由器被更改为活动状态。当状态还原时,路由器无法从 active 状态返回到 standby 状态。此问题已在软件版本 6.3(6) 中得到解决。
如果运行 HSRP 并已启用 CGMP 离开,使用 McastRx 可能显示 25% 的 CPU 使用率。发生此问题是因为 CGMP 离开和 HSRP hello 数据包共享同一个目标 MAC 地址。此问题已在软件版本 6.3(6) 中得到解决。