局域网交换 : 以太网

在 CatOS 平台上恢复处于 errDisable 状态的端口

2016 年 10 月 24 日 - 机器翻译
其他版本: PDFpdf | 英语 (2015 年 10 月 7 日) | 反馈


目录


简介

经常客户联系方式思科技术支持,当他们注意一个或很多他们的交换机端口变得使错误停止;。他们希望知道发生这种情况的原因以及如何将端口恢复到正常状态。本文档介绍了什么是 errDisable 状态,如何从该状态恢复,并提供了从 errDisable 状态恢复的两个示例。本文档将 errDisable 和“因错误而禁用”这两个术语互换使用。(errDisable 是 show port 命令所示的一种端口状态,“因错误而禁用”在英语上表达的意思与 errDisable 相同。)

先决条件

要求

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

使用的组件

本文档中的信息基于以下软件和硬件版本。您需要这些以创建本文档中的示例:

  • 实验室环境中采用原始配置的两台 Catalyst 4000/5000/6000 系列交换机(或同等级别交换机)。我们的主要机器是运行 CatOS 5.4(2) 的 Catalyst 5500。该交换机连接到运行 5.3(5a)CSX 的 Catalyst 6509,但可以是任意 CatOS 机器并支持 EtherChannel 和 portfast。

  • 两条 RJ-45 以太网交叉电缆。

  • 至少一台交换机上具有 CatOS 5.4(x)。

  • 每台交换机上支持 EtherChannel 和 portfast 的两个快速以太网端口。

  • 连接到一台或两台交换机的终端连接。

本文档中的信息在隔离的实验室环境中生成。在使用任何命令之前,确保已了解该命令可能会对网络产生的影响。在每台交换机上输入 clear config all 命令,确保采用的是默认配置。如果要复制和测试这些错误,请仅尝试在隔离的环境中复制,以免影响真实网络。这些示例仅用于说明。某些命令的输出在与所讨论内容无关处截断。

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。

规则

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

errDisable

使用 errDisable 的平台

运行 CatOS(Catalyst 2948G、4500/4000、5500/5000 和 6500/6000)的 Catalyst 交换机和运行 Cisco IOS(Catalyst 2900XL/3500XL、2950、2970、3550、4500 和 65000)的 Catalyst 交换机支持 errDisable 功能。实施 errDisable 的方法随不同的平台有所变化。本文档重点介绍运行 CatOS 软件的交换机因错误而禁用。

errDisable 的功能

errDisable 功能在 CatOS 版本 3.2(2) 中首次实施。如果配置显示要启用的端口,但交换机上的软件检测到该端口上存在错误情况,则软件将关闭该端口。换言之,由于端口上存在错误情况,因此,交换机操作系统软件自动禁用了该端口。

当端口因错误而禁用时,可有效关闭该端口,并且在该端口上不会发送或接收任何数据流。端口 LED 将设置为橙色,并且当您输入 show port 命令时,端口状态将显示 errdisable。以下示例说明了因错误而禁用的端口在交换机命令行界面 (CLI) 中显示的内容。

Cat5500> (enable) show port 11/1
Port  Name               Status     Vlan       Level  Duplex Speed Type
----- ------------------ ---------- ---------- ------ ------ ----- ------------
11/1  		          errdisable   1 normal   auto  auto 10/100BaseTX

“因错误而禁用”功能有以下两种用途。首先,管理员通过此功能可以了解存在端口问题的时间和位置。其次,它排除了由于损坏端口独占缓冲区、端口错误消息独占卡上的进程间通信而导致模块上的其他端口(或整个模块)发生故障,甚至最终导致严重的网络问题的可能性。“因错误而禁用”功能有助于防止出现这些情况。

errDisable 的原因

最初,实现此功能是为了处理特殊的冲突情况,即交换机在端口上检测到过度延迟冲突。当连续遇到 16 次冲突而丢弃某个帧时,将会发生过度冲突。在线路上的每个设备均识别出线路已被占用后,即发生延迟冲突。这些类型的错误可能由于电缆不合规范(过长、类型错误或有缺陷)、网络接口卡 (NIC) 损坏(本身有问题或驱动程序有问题)或端口双工配置错误导致。最后一个原因很常见,因为无法在两台直接连接的设备(例如连接到交换机的 NIC)之间正确协商速度和双工。在 LAN 中,仅半双工连接才会产生冲突;由于以太网具有载波侦听多路访问 (CSMA) 特性,因此对于半双工而言,只要冲突在数据流中不超过较小的百分比即为正常。

随着 CatOS 的功能不断增加,端口可能因错误而禁用的方式将会更多。例如,在运行 catOS 的 catalyst 6500 上,针对这些连接问题支持 Errdisable 功能:

  • ARP 检查

  • 广播抑制

  • BPDU 端口防护

  • 信道配置错误

  • 纵横制结构故障

  • 双工不匹配

  • 第 2 层协议隧道配置错误

  • 超出第 2 层协议隧道阈值

  • UDLD

当遇到这些情况中的任何一个时,“因错误而禁用”功能允许交换机关闭端口。请记住,只要确定并解决根本原因,因错误而禁用的端口本身并不是报警的原因。因错误而禁用的端口是一个必须解决的更深问题的症状。

从 errDisable 中恢复

要从 errDisable 状态恢复,您需要做两件事:

  1. 确定并解决任何导致端口因错误而禁用的原因(电缆、NIC 和 EtherChannel 等)。

    如果没有确定并解决导致端口因错误而禁用的基础问题,则当问题再次发生时,端口将再次因错误而禁用。某些错误可能会非常频繁地出现(其中的一个例子就是 BPDU 端口防护检测到的错误,该错误每两秒钟发生一次)。如果在未解决根本问题的情况下尝试重新启用端口,则端口将再次因错误而禁用。

  2. 重新启用端口。

    只有解决根本问题才不会导致端口再次因错误而禁用。解决根本问题之后,端口仍然处于禁用状态(并且端口 LED 仍然显示为橙色);必须重新启用端口才能使其成为活动端口。最初,重新启用端口的唯一方法是在相关端口手动输入 set port enable 命令。随着时间的推移,“因错误而禁用”功能中增加了扩展选项,使其更加灵活和自动。

注意: 因错误而禁用的端口不是端口 LED 可能变为橙色的唯一原因,而只是其中一个原因。因此,最好是使用 show port 命令检查端口状态。

errDisable 的扩展

Set Option Errport - CatOS 4.2(2)

某些客户希望能够确定是否应该由于 CatOS 发现了特殊冲突错误而关闭端口。在某些情况下(例如链路是骨干网连接),关闭端口实际上比在端口遇到的错误还要糟糕;尽可能在解决问题之前使端口正常运行比关闭端口更加理想。因此,在版本 4.2(2) 中,CatOS 增加了一个称为 set option errport 的新命令,管理员可使用该命令确定交换机在发现端口存在这些特别冲突错误时所采取的操作。原始和默认状态为 set option errport disable,在该状态下,交换机将在遇到因错误而禁用类型的特殊冲突错误时使端口处于因错误而禁用状态。相反,如果使用 set option errport enable 命令,则交换机即使在遇到通常会禁用这些端口的冲突错误时,也会使端口保持在启用状态。

此命令将全面影响交换机;不能对单个端口发出此命令。在命令参考中未列出此命令,但在 4.2(2) 发行版本注释(Catalyst 5000 系列软件版本 4.x 发行版本注释)中列出。请注意,此命令具有与直觉相悖的效果;必须启用 errport 选项才能禁用 err-disable 功能(默认情况下处于启用状态)。讲得更清楚一些,只要使用 set option errport enable 命令即可防止端口因错误而禁用。

仅当您认识到允许这些错误情况继续发生将会导致模块上的其他端口受到影响时,才推荐您使用 set option errport 命令。该命令只是应急措施,不能真正“解决”问题;它只能防止遇到这些错误的端口在您能够解决真正的问题之前关闭。请谨慎使用。

Set errdisable-timeout - CatOS 5.4(1)

CatOS 版本 5.4(1) 中引入了称为 set errdisable-timeout 的新命令。此命令是之前讨论的 set option errport 命令更成熟的版本。此命令在可配置的时间段(从 30 秒到 24 小时,以秒为单位指定)后将自动重新启用因错误而禁用的端口,不需要手动重新启用因错误而禁用的端口。

此命令会影响由交换机上的当前配置启用但是被 CatOS 软件置于因错误而禁用状态的端口。使用 show errdisable-timeout 命令查看 errdisable-timeout 功能的当前状态。可指定能够启用此功能的五个独立区域:bpdu 防护、信道错误配置、双工不匹配(包括上述特殊冲突错误)、udld其他。这样,它仍然能够在您的目标区域为您提供永久的因错误而禁用保护,但是允许您在解决问题之前选择希望使端口保持正常运行的区域。

在 Catalyst 6000 系列软件版本 5.2.1 和 5.2.2 中,存在当端口状态变为因错误而禁用时导致网络中断的软件缺陷。当端口状态变为 errDisable 时,交换机将会导致无意中从因错误而禁用的端口获取所有获取的 MAC 地址。这将导致相关 VLAN 中的网络中断。此软件缺陷的 Cisco Bug ID 为 CSCdm48887,软件版本 5.2.3 和更高版本中已解决此问题。

防止此问题的短期解决方法如下:

  1. 发出 set option errport enable 命令以禁用“因错误而禁用”功能。

  2. 使用 set port enable mod_num/port_num 命令重新启用所有因错误而禁用的端口。

    示例:set port enable 3/1

  3. 使用 clear cam dynamic 命令清除 MAC 地址表,以恢复动态获取的 MAC 地址。

如何从 errDisable 状态中恢复端口

对于本文档中的这部分内容,我们提供了两个示例,介绍您可能遇到的因错误而禁用端口的情况以及如何解决此类问题;简要论述可能导致端口因错误而禁用的其他三个原因;以及与因错误而禁用端口相关的讨论过的命令汇总。以下显示的这些问题的具体示例在实验室环境下容易重复。

请使用这些步骤使端口从 errDisable 状态恢复:

  1. 本文档中使用的软件版本

    show version 命令可显示本文档中交换机运行的软件版本。其目的仅为显示此测试使用的是什么版本的 CatOS 以及包括哪些模块。

    Cat5500> (enable) show version
    WS-C5500 Software, Version McpSW: 5.4(2) NmpSW: 5.4(2)
    Copyright (c) 1995-2000 by Cisco Systems
    NMP S/W compiled on Apr  7 2000, 16:59:29
    MCP S/W compiled on Apr 07 2000, 16:49:24
    
    System Bootstrap Version: 5.1(1)
    
    Hardware Version: 1.3  Model: WS-C5500  Serial #: 069041642
    
    Mod Port Model      Serial #  Versions
    --- ---- ---------- --------- ----------------------------------------
    1   0    WS-X5540   013459824 Hw : 1.1
                                  Fw : 5.1(1)
                                  Fw1: 5.1(1)
                                  Sw : 5.4(2)
                                  Sw : 5.4(2)
    11  24   WS-X5225R  012121634 Hw : 3.1
                                  Fw : 4.3(1)
                                  Sw : 5.4(2)
    
           DRAM                    FLASH                   NVRAM
    Module Total   Used    Free    Total   Used    Free    Total Used  Free
    ------ ------- ------- ------- ------- ------- ------- ----- ----- -----
    1       32768K  18567K  14201K   8192K   4171K   4021K  512K  179K  333K
    
    Uptime is 0 day, 0 hour, 4 minutes
    
    Cat5500> (enable) show module
    Mod Slot Ports Module-Type               Model               Status
    --- ---- ----- ------------------------- ------------------- --------
    1   1    0     Supervisor IIG            WS-X5540            ok
    15  1          Route Switch Feature Card 
    11  11   24    10/100BaseTX Ethernet     WS-X5225R           ok
    
    Mod Module-Name         Serial-Num
    --- ------------------- --------------------
    1                       00013459824
    11                      00012121634
    
    Mod MAC-Address(es)                        Hw     Fw         Sw
    --- -------------------------------------- ------ ---------- -----------------
    1   00-90-ab-28-d0-00 to 00-90-ab-28-d3-ff 1.1    5.1(1)     5.4(2)
    5   00-10-7b-7c-09-d4 to 00-10-7b-7c-09-df 3.0    3.1(1)     5.4(2)
    6   00-e0-1e-6c-80-da to 00-e0-1e-6c-80-dc 1.0    4.1(1)     5.4(2)
    8   00-10-7b-44-16-40 to 00-10-7b-44-16-57 1.3    3.1(1)     5.4(2)
    10  00-10-7b-0c-32-d0 to 00-10-7b-0c-32-db 2.0    3.1(1)     5.4(2)
    11  00-50-a2-f4-e4-50 to 00-50-a2-f4-e4-67 3.1    4.3(1)     5.4(2)
  2. 如何确定端口是否处于 errDisable 状态

    可输入 show port 命令,以确定端口是否因错误而禁用。以下是活动端口的示例;再下面是因错误而禁用状态下的同一端口。

    Cat5500> (enable) show port 11/1
    Port  Name        Status     Vlan       Level  Duplex Speed Type
    ----- -------    ---------- ---------- ------ ------ ----- ------------
    11/1             connected  1          normal a-half a-100 10/100BaseTX
    
    
    Cat5500> (enable) show port 11/1
    Port  Name         Status     Vlan       Level  Duplex Speed Type
    ----- -------     ---------- ---------- ------ ------ ----- ------------
    11/1              errdisable  1          normal   auto  auto 10/100BaseTX

    注意: 当端口因错误而禁用时,与前面板上端口相关的 LED 为橙色。

  3. 如何确定因错误而禁用状态的原因(控制台消息、syslog、show errdisable-timeout)

    当交换机将某个端口置于因错误而禁用状态时,交换机会向控制台发送一条消息,说明为何禁用端口。以下是显示为何禁用端口的两条示例消息:其中一条从 portfast BPDU 防护功能的角度说明,另一条从 EtherChannel 配置问题的角度说明。

    2000 May 09 19:09:18 %SPANTREE-2-RX_PORTFAST:Received BPDU on PortFast
    enable port. Disabling 11/1
    
    2000 May 09 19:09:18 %PAGP-5-PORTFROMSTP:Port 11/1 left bridge port
    
    
    2000 May 09 19:22:11 %SPANTREE-2-CHNMISCFG: STP loop - channel 11/1-2
    is disabled in vlan 1
    
    2000 May 09 19:22:11 %PAGP-5-PORTFROMSTP:Port 11/1 left bridge port 11/1-2

    注意: 消息未明确说明 errDisable 或因错误而禁用;但是会指示交换机禁用了端口。控制台消息生成之后,仅当您的网络使用 syslog 服务器时,才会保存消息。如果将交换机配置为将这些消息发送到 syslog 服务器,您将获得有关何时以及为何禁用端口的更多永久性记录。有关如何将交换机配置为将消息发送到 syslog 服务器的信息,请参阅 CatOS 5.4 配置指南中的文档配置系统消息记录

    如果运行的是 CatOS 5.4(1) 或更高版本,则具有称为 errdisable-timeout 的功能,该功能在启用之后会说明为何禁用端口。示例如下

    Cat5500> (enable) show errdisable-timeout
    ErrDisable Reason   Timeout Status Port ErrDisable Reason
    ------------------- -------------- ----  ----------------
    bpdu-guard          enable         11/1  bpdu-guard
    channel-misconfig   disable
    duplex-mismatch     disable
    udld                disable
    other               disable
    
    Interval: 30 seconds
  4. 如何纠正问题。在发现为何禁用端口之后,首先应解决根本问题,然后重新启用端口。

    1. 解决根本问题

      这取决于真正引起错误的问题。有多种多样的原因能触发关闭。以下是一些最明显和常见的原因。

      • EtherChannel 配置错误

        为使 EtherChannel 正常运行,所涉及的端口必须具有一致的配置;必须是相同的 VLAN、相同的中继模式、相同的速度、相同的双工等。创建信道时,将捕获和报告交换机内的大多数配置差异。在某些情况下,通常当您使用 ON 模式(而不是 auto 或 desirable)时,一台交换机上的所有端口配置可以是一致的,从而使交换机开始建立信道。但是,连接的相邻交换机不能设置为相同配置,并且可能会导致第一台交换机因错误而禁用。如果两台交换机都支持端口聚合协议 (PAgP),可将这两台交换机的信道模式配置为 desirable 模式而不是 on 模式,以防止发生此问题。

      • 双工不匹配

        由于无法正确自动协商速度和双工而产生的双工不匹配情况非常普遍。与半双工(必须等到相同 LAN 段上没有任何其他设备进行传输)不同,只要有内容要发送,全双工就会开始传输,而不考虑其他设备。如果在半双工设备传输时进行全双工传输,则半双工设备会将此情况视为冲突(时隙过程中)或延迟冲突(时隙之后)。由于全双工端不认为会产生冲突,因此,它绝不会意识到必须重新传输丢弃的数据包。较低百分比的冲突率在半双工中很常见,但在全双工中并不常见。如果交换机端口接收大量延迟冲突,则通常表示存在双工不匹配问题。请确保电缆两端的端口均设置为相同的速度和双工。show port 命令将说明 Catalyst 交换机端口的速度和双工。在端口实际处于因错误而禁用状态之前,较高版本的 Cisco 发现协议 (CDP) 可提醒您双工不匹配问题。另外,可能有 NIC 卡的设置导致的问题(如自动极性功能-如果不确定,请关闭他们)。如果您拥有同一个供应商提供的多个 NIC,并且所有 NIC 似乎都有相同的问题,请查看制造商网站上的发行版本注释,并确保您从 NIC 制造商那里得到的是最新版本的驱动程序。延迟冲突的其他原因包括 NIC 损坏(本身有问题,而不仅仅是配置问题)、电缆损坏或某段电缆过长。

        2000 May 09 19:19:09 %CDP-4-DUPLEXMISMATCH:Full/half duplex
        mismatch detected on port 11/3
      • BPDU 端口防护

        如果端口上启用 portfast,则某些新版本的交换机软件将会进行监控。使用 portfast 的端口应该连接到终端站,而不是连接到生成名为 BPDU 的 STP 数据包的设备。如果交换机注意到 BPDU 进入已启用 portfast 的端口,则交换机会将端口置于 errDisable 模式。

      • UDLD

        UDLD 是有关某些新版本软件的协议,这些软件可以发现链路上的通信是否仅为单向,以及是否因此部分中断。光缆损坏或其他布线/端口问题可能会导致这种单向通信。生成树环路可能会发生此问题。当检测到此情况时,UDLD 允许端口检测单向链路,并且可以配置为将端口置于 errDisable 状态。

      • 其他

        交换机中识别出端口问题的任何程序均可将其置于因错误而禁用状态。请查看控制台消息或发送到 syslog 服务器以说明端口关闭原因的消息。此外,如果启用 errdisable-timeout 功能(最低为 CatOS 5.4(1)),则 show errdisable-timeout 功能将说明禁用端口的一般原因。

    2. 重新启用端口

      解决根本问题之后,端口仍然处于禁用状态;您必须重新启用端口。此操作可使用 set port enable 命令手动完成。

      Cat5500> (enable) set port enable 11/1-2
      Ports 11/1-2 enabled.
      

      如果您拥有 CatOS 4.2(2) 或更高版本,可使用上述 set option errport 命令防止端口因错误而禁用。由于您实际上并未解决根本问题,因此,此操作可能会带来风险。如果您拥有 CatOS 5.4(1) 或更高版本,您可使用 errdisable-timeout 命令按下一部分中的所述内容自动重新启用端口。

  5. 如何使用 errdisable-timeout 自动重新启用端口 - CatOS 5.4(1)

    可使用 errdisable-timeout 命令选择在指定的一段时间后自动重新启用端口的错误类型。输出显示默认状态,即在所有五种可能的条件下都禁用(而非激活)errdisable-timeout。如果启用了任意条件,则此条件下的端口将在 30 秒后重新启用。

    Cat5500> (enable) show errdisable-timeout
    ErrDisable Reason   Timeout Status
    ------------------- --------------
    bpdu-guard          disable
    channel-misconfig   disable
    duplex-mismatch     disable
    udld                disable
    other               disable
    
    Interval: 30 seconds
    

    要打开 errdisable-timeout,请使用以下命令选择 errdisable 条件。

    Cat5500> (enable) set errdisable-timeout enable ?
      bpdu-guard                 BPDU Port-guard
      channel-misconfig          Channel misconfiguration
      duplex-mismatch            Duplex Mismatch
      udld                       UDLD
      other                      Reasons other than the above
      all                        Apply errDisable timeout to all reasons
    
    Cat5500> (enable) set errdisable-timeout enable bpdu-guard 
    Successfully enabled errdisable-timeout for bpdu-guard.
    
    Cat5500> (enable) set errdisable-timeout interval 30
    Successfully set errdisable timeout to 30 seconds.

    此命令有一个优良特性:如果启用 errdisable-timeout,则命令将会列出将端口置于因错误而禁用状态的一般原因。有关更多详细说明,请参阅出现时显示的消息。请记住,解决因错误而禁用情况的第一步是解决导致关闭的原始错误。以下注意端口 11/1 关闭的原因是 bpdu 防护功能。

    Cat5500> (enable) show errdisable-timeout
    ErrDisable Reason   Timeout Status   Port ErrDisable Reason
    ------------------- --------------   ---- -----------------
    bpdu-guard          enable           11/1  bpdu-guard
    channel-misconfig   disable
    duplex-mismatch     disable
    udld                disable
    other               disable
    
    Interval: 30 seconds

    以下是一个示例,介绍交换机在重新启用端口时由于 errdisable-time 功能而显示的内容。

    Cat5500> (enable)
    2000 May 09 19:17:27 %MGMT-5-ERRDISPORTENABLED:Port 11/1 err-disabled
    by bpdu-guard enabled by errdisable timeout
    
    
  6. 如果在未解决问题的情况下重新启用端口,将会怎样?

    如果在未解决问题的情况下重新启用端口,则端口将再次因错误而禁用。这种情况将会不断持续,直到您解决真正的问题。请注意以下三条消息。在第一条消息中,交换机说明禁用端口 11/1,因为它在启用 portfast 的端口上收到了 BPDU(如果 bpdu 防护打开,这是导致发生这种情况的错误)。25 秒钟之后,端口由 errdisable-timeout 功能自动重新启用。但是 4 秒钟后,由于并未解决真正的问题,端口将再次因错误而禁用。

    2000 May 09 19:17:33 %SPANTREE-2-RX_PORTFAST:Received BPDU on PortFast
    enable port. Disabling 11/1
    
    2000 May 09 19:17:58 %MGMT-5-ERRDISPORTENABLED:Port 11/1 err-disabled by
    bpdu-guard enabled by errdisable timeout
    
    2000 May 09 19:18:02 %SPANTREE-2-RX_PORTFAST:Received BPDU on
    PortFast enable port. Disabling 11/1
    

    必须手工重新启用端口的好处是可以提醒您并提示您解决真正的问题。

  7. 我是否可以排除端口由于冲突而处于因错误而禁用状态

    以下是如何防止交换机由于过度或延迟冲突而使端口因错误而禁用的示例。CatOS 版本 4.2(2) 中提供了 set option errport 命令。再一次提醒您记住,应该仅将其作为“应急”类型的措施使用。此命令可防止由于冲突而使端口因错误而禁用,但是可能使您容易受到通常会导致交换机关闭端口的冲突的攻击。执行此命令可防止交换机由于冲突而禁用端口。

    Cat5500> (enable) set option errport enable
    Error port option is enabled
    
    Cat5500> (enable) show option errport
    Option errport   : enabled
    

    以下是如何通过返回到默认状态使交换机因错误而禁用端口的示例。

    Cat5500> (enable) set option errport disable
    Error port option is disabled
    
    Cat5500> (enable) show option errport
    Option errport   : disabled
    

    show option errport 命令可显示“因错误而禁用”功能当前所在的模式。此外,set option errport enable 命令不会解决错误原因;该命令仅可保证端口不会因为错误而关闭。如果错误仍然存在或变得更严重,则仍然存在 errDisable 端口可能影响模块其他端口的可能性。因此,仅在了解这些错误可能会导致交换机模块中出现更大的问题并且愿意承担这些风险之后,才能使用此命令。

修复Error-Disabled 端口 - 示例

此部分提供了解决因错误而禁用的端口问题的两个示例。

BPDU 端口防护导致的Error-Disabled

CatOS 5.4(1) 及更高版本具有的新功能可使交换机监控启用 portfast 的端口。使用 portfast 的端口仅可连接到终端站(例如工作站或服务器),不得连接到产生生成树 BPDU 的设备(例如交换机)或执行桥接的网桥和路由器。如果交换机接收到启用了 portfast 的端口上的生成树 BPDU,它会将端口置于 errDisable 模式,以避免产生环路。Portfast 假设交换机上的端口不可能生成物理环路,从而对该端口跳过初始生成树检查,以避免终端站在启动时超时。网络管理员必须小心谨慎地实施 Portfast;在启用了 portfast 的端口上,BPDU 防护有助于确保 LAN 无环路。

以下说明如何打开此功能。选择此示例的原因是在这种情况下很容易产生因错误而禁用问题。

Cat5500> (enable) set spantree portfast bpdu-guard enable
Spantree portfast bpdu-guard enabled on this switch.

Catalyst 5500 交换机连接到作为生成树根的另一台交换机 (6509)。6509 每 2 秒钟向我们发送一次 BPDU(使用默认的生成树设置)。当我们在 5500 交换机端口上启用 portfast 时,bpdu 防护功能将注意进入此端口的 BPDU。当 BPDU 进入端口(这表示在该端口检测到非终端设备关闭)时,bpdu 防护功能将关闭端口,以避免产生生成树环路。

Cat5500> (enable) set spantree portfast 11/1 enable

Warning: Spantree port fast start should only be enabled on ports connected
to a single host.  Connecting hubs, concentrators, switches, bridges, etc. to
a fast start port can cause temporary spanning tree loops.  Use with caution.
Spantree port 11/1 fast start enabled.

Cat5500> (enable)

2000 May 09 19:09:18 %SPANTREE-2-RX_PORTFAST:Received BPDU on
PortFast enable port. Disabling 11/1

2000 May 09 19:09:18 %PAGP-5-PORTFROMSTP:Port 11/1 left bridge port 11/1

交换机上的消息表示它在启用了 portfast 的端口上接收到一个 BPDU,因此,它关闭了端口 11/1。当我们查看端口状态时,将会显示 errDisable。

Cat5500> (enable) show port 11/1

Port  Name                   Status     Vlan       Level  Duplex Speed Type
----- ------------------     ---------- ---------- ------ ------ ----- ------------
11/1                         errdisable 1          normal   auto  auto 10/100BaseTX

要解决这些情况,我们必须解决潜在问题,然后重新启用端口。由于此端口的连接不正确(启用了 portfast 并且连接到另一台交换机上),因此,我们将关闭 portfast 功能。此外,portfast 仅可用于连接到终端站的端口。

Cat5500> (enable) set spantree portfast 11/1 disable
Spantree port 11/1 fast start disabled.

即使我们解决了根本问题,请注意,端口仍然处于因错误而禁用状态。如果查看端口 LED,它将仍然显示为橙色。在端口再次成为活动端口前,我们必须重新启用端口。

Cat5500> (enable) show port 11/1

Port  Name               Status     Vlan       Level  Duplex Speed Type
----- ------------------ ---------- ---------- ------ ------ ----- ------------
11/1                     errdisable 1          normal   auto  auto 10/100BaseTX

在以下示例中,我们使用 set port enable 命令手动重新启用端口。现在,端口将回到正常状态。

Cat5500> (enable) set port enable 11/1
Port 11/1 enabled.

Cat5500> (enable) show port 11/3
Port  Name               Status     Vlan       Level  Duplex Speed Type
----- ------------------ ---------- ---------- ------ ------ ----- ------------
11/1                     connected  1          normal a-half a-100 10/100BaseTX

以太网通道配置错误导致的Error-Disabled

以下是支持 EtherChannel 的端口可能会发生的另一种常见的因错误而禁用情况。如果一台交换机配置了 EtherChannel,另一台未配置,则可能会导致生成树进程关闭配置了 EtherChannel 一端的信道端口。在这种情况下,我们将两条交叉电缆从 5500 交换机连接到另一台交换机。我们使用 set port channel 11/1-2 on 命令打开 5500 交换机上的 EtherChannel。在建立信道之前,EtherChannel 的 on 模式并不发送 PAgP 数据包与另一端进行协商;而是假设另一端正在建立信道。此外,我们并不打开另一台交换机的 EtherChannel;而是使这些端口成为单独的无信道端口。如果将此状态保持一分钟左右,则 5500 上的 STP 会认为存在环路。这将导致信道端口被置于因错误而禁用状态。以下注意检测到环路并且端口已禁用。show port channel 命令可显示端口不再建立信道;并且,当我们查看涉及的端口之一时,我们将看到其状态为 errdisable。

Cat5500> (enable)
2000 May 09 19:20:02 %PAGP-5-PORTTOSTP:Port 11/1 joined bridge port 11/1-2
2000 May 09 19:20:27 %PAGP-5-PORTTOSTP:Port 11/2 joined bridge port 11/1-2
2000 May 09 19:22:11 %SPANTREE-2-CHNMISCFG: STP loop -
channel 11/1-2 is disabled in vlan 1

2000 May 09 19:22:11 %PAGP-5-PORTFROMSTP:Port 11/1 left bridge port 11/1-2
2000 May 09 19:22:11 %PAGP-5-PORTFROMSTP:Port 11/2 left bridge port 11/1-2



Cat5500> (enable) show port channel
No ports channeling

由于此交换机上的这些端口置于因错误而禁用状态,因此,EtherChannel 中断。

Cat5500> (enable) show port 11/1
Port  Name                  Status     Vlan       Level  Duplex Speed Type
----- ------------------    ---------- ---------- ------ ------ ----- ------------
11/1                        errdisable 1          normal   auto  auto 10/100BaseTX

要确定具体问题,需要查看错误消息。该消息说明 EtherChannel 遇到了生成树环路。如以上段落所述,当一台设备(本例中为交换机)使用 ON 模式(而非 desirable)手动打开 EtherChannel,而另一台连接设备(本例中为另一台交换机)未打开 EtherChannel 时,将会发生此问题。解决此问题的方法之一是将连接两端的信道模式均设置为 desirable,然后重新启用这些端口。这将导致仅在两端都同意建立信道时,每端才会形成信道。如果两端不同意建立信道,则两端都继续充当普通端口。

注意: 有关可能导致 EtherChannel 配置错误的列表,请参阅您当前使用的 CatOS 版本的 EtherChannel 配置指南。新版本的配置指南包含标题为配置 Fast EtherChannel 和 Gigabit EtherChannel 的特殊部分,该部分列出了正确形成信道的依赖因素,包括要配置的信道模式。

Cat5500> (enable) set port channel 11/1-2 desirable non-silent
Port(s) 11/1-2 are assigned to admin group 21.
Port(s) 11/1-2 channel mode set to desirable.

Cat5500> (enable) show port 11
Port  Name                  Status     Vlan       Level  Duplex Speed Type
----- ------------------    ---------- ---------- ------ ------ ----- ------------
11/1                        errdisable 1          normal   auto  auto 10/100BaseTX
11/2                        errdisable 1          normal   auto  auto 10/100BaseTX

请注意,即使我们关闭了 EtherChannel 功能并将 EtherChannel 模式设置为 desirable,端口仍然处于禁用状态。我们已经解决了根本问题,但是现在我们必须在使用之前重新启用端口。

Cat5500> (enable) set port enable 11/1-2
Ports 11/1-2 enabled.

Cat5500> (enable) show port 11
Port  Name                   Status     Vlan       Level  Duplex Speed Type
----- ------------------     ---------- ---------- ------ ------ ----- ------------
11/1                         connected  1          normal a-full a-100 10/100BaseTX
11/2                         connected  1          normal a-full a-100 10/100BaseTX

Cat5500> (enable) show port channel 11/1
Port            Status     Channel              Admin Ch
                           Mode                 Group Id
-----         ----------   -------------------- ----- -----
11/1          connected  desirable non-silent    21   833
11/2          connected  desirable non-silent    21   833

Port  Device-ID                       Port-ID                   Platform
----- ------------------------------- ------------------------- ----------------
11/1  TBA04090489(Cat6000)      5/13                      WS-C6506
11/2  TBA04090489(Cat6000)      5/14                       
----- ------------------------------- ------------------------- ----------------

检查配置

  • show version - 显示交换机上使用的软件版本

  • show module - 显示交换机上使用的是哪些模块

  • show port - 查看交换机端口的当前状态

  • show option errport - 查看 set option errport 命令的状态

  • show errdisable-timeout - 显示 errdisable-timeout 功能的当前设置以及任意端口当前因错误而禁用的原因

排除配置故障

  • show port - 查看交换机端口的当前状态

  • show port channel - 查看 EtherChannel 的当前状态

  • show option errport - 查看 set option errport 命令的状态

  • set option errport disable - 对于出现操作系统认为需要禁用的错误的任意端口,允许交换机禁用此类端口。这是默认状态,如果之前发出过 set option errport enable 命令,此状态将会有所不同。

  • show errdisable-timeout - 显示 errdisable-timeout 功能的当前设置以及任意端口当前因错误而禁用的原因

  • set errdisable-timeout - 有助于确定端口因错误而禁用的原因(与 show errdisable-timeout 命令一起使用)

命令汇总

语法: show version
如本文档中所引用部分: show version

语法: show module [mod_num]
如本文档中所引用部分: show module

语法: show port [mod_num[/port_num]]
如本文档中所引用部分: show port 11/1 show port 11

语法: show port channel [mod_num[/port_num]] [statistics|info [spantree|中继|协议|gmrp|gvrp|qos]]
如本文档中所引用部分: show port channel

语法: set port channel port_list mode {on||理想|auto} [silent|non-silent]
如本文档中所引用部分: set port channel 11/1-2 desirable non-silent

语法: set port enable mod_num/port_num
如本文档中所引用部分: set port enable 11/1-2

语法: show errdisable-timeout
如本文档中所引用部分: show errdisable-timeout

语法: set errdisable-timeout [enable|disable] [bpdu-guard|channel-misconfig|双工不匹配|udld|其他]
如本文档中所引用部分: set errdisable-timeout enable bpdu-guard

语法: set errdisable-timeout interval seconds
如本文档中所引用部分: set errdisable-timeout interval 30

语法: set spantree portfast mod_num/port_num {enable|禁用}
如本文档中所引用部分: set spantree portfast 11/1 enable set spantree portfast 11/1 disable

语法: set spantree portfast bpdu-guard {enable|禁用}
如本文档中所引用部分: set spantree portfast bpdu-guard enable


相关信息


Document ID: 12017