局域网交换 : EtherChannel

了解EtherChannel不一致检测

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


目录


简介

本文档提供有关 EtherChannel 不一致的信息以及如何在 Cisco Catalyst 交换机中检测 EtherChannel 不一致。

本文档不会详细说明 EtherChannel 的工作原理或配置方式。有关提供如何了解和配置 EtherChannel 以及不同 Catalyst 交换机之间配置示例的详情的文档,请参阅 LAN 技术的技术支持:EtherChannel

先决条件

要求

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

使用的组件

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

规则

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

背景

EtherChannel 是以单个逻辑端口形式出现的物理端口的聚合集。EtherChannel 的目标是提供比单个端口更高的带宽和可用性。

生成树协议 (STP) 将 EtherChannel 视为单个端口。如果信道两端的信道端口不一致,这会导致生成转发环路。

此绘制提供一个示例:

127-a.gif

如果交换机 A 有两条独立的物理链路,这两条链路不在一个信道中,并且交换机 B 将这两条相同的链路视为信道的一部分,那么交换机 B 会向交换机 A 发送一条广播或未知的单播数据包。由于这两条链路并非作为交换机 A 上的一个信道捆绑在一起,因此该数据包被转发回交换机 B,如图所示。这会导致数据包复制并更改交换机 B 上的转发表,从而指向错误的方向。

特殊协议(如 Cisco Port Aggregation Protocol (PAgP) 和 IEEE Link Aggregation Control Protocol (LACP))旨在确保信道相邻交换机之间保持一致。不过,在某些情况下,这两种协议都不受任何系统支持,或由于其他考虑因素而被禁用。Cisco 开发出一种特殊机制来检测信道不一致并防止此问题出现,从而避免数据包重复、循环以及其他与 EtherChannel 不一致相关的问题。此功能受 Catalyst 4500/4000、5500/6000 和 6500/6000 交换机的支持,默认情况下处于启用状态,无论信道模式是 desirable、active、auto、passive 还是 on。

不一致检测如何工作

“后台”部分中所述,STP 将 EtherChannel 视为单个端口。信道中所有端口的 STP 状态都相同,每个 VLAN 和每个 hello 间隔只能发送或接收一个 STP 网桥协议数据单元 (BPDU)。

如果一台交换机将这两条链路视为一个信道,相邻交换机将这两条链路视为独立的连接(即出现不一致),则情况不同。请考虑以下示例:

127-b.gif

在图表中,交换机 A 不建立信道,而交换机 B 建立信道。假设信道的 STP 指定端口位于交换机 B 侧。这意味着交换机 B 应发送 BPDU。只要信道被视为单个 STP 端口,信道上的每个 VLAN 就只能发送一个 BPDU。此 BPDU 实际上通过信道中的其中一条链路进行传输。因此,只有交换机 A 上的其中一个端口接收此 BPDU。在图表中,此端口用黑色箭头表示。

交换机 A 接收 BPDU 后,交换机 A 上的其他端口成为 STP 指定端口。由于此端口并非作为信道与接收 BPDU 的端口捆绑在一起,因此它不会直接从交换机 B 接收 BPDU。作为交换机 A 上的 STP 指定端口,此端口现在传输 BPDU(在图表中用红色箭头表示),然后传输回交换机 B。交换机 B 接收来自交换机 A 的 BPDU,则检测到不一致。

EtherChannel 不一致检测机制要求:对于每个 VLAN,信道中只有一个指定的端口发送或接收 BPDU。Catalyst 交换机上的每个端口都有自己唯一的 MAC 地址,在发送 BPDU 时使用。

对于 Catalyst OS (CatOS),如果在版本 7.1(1) 及更高版本中发出 show port mac-address mod/port 命令或 show module mod 命令,则会看到此 MAC 地址。以下是输出示例:

Cat6k> (enable) show port mac-address 2/7

Port  Mac address
----- -----------------
 2/7  00-02-fc-90-19-2c

Cat6k> (enable) show module 2 bold
Mod Slot Ports Module-Type               Model               Sub Status
--- ---- ----- ------------------------- ------------------- --- --------
2   2    16    10/100/1000BaseT Ethernet WS-X6516-GE-TX      no  ok

Mod Module-Name          Serial-Num
--- -------------------- -----------
2                        SAD05170009

Mod MAC-Address(es)                        Hw     Fw         Sw
--- -------------------------------------- ------ ---------- -----------------
2   00-02-fc-90-19-26 to 00-02-fc-90-19-35 0.231  6.1(3)     7.1(1)


对于Cisco IOSï ¿ Â在Catalyst交换机的½软件如此输出示例:所显示,如果发出show interface type mod/port命令,您能看到MAC地址:

Cat6k-CiscoIOS# show interface fastEthernet 4/1
FastEthernet4/1 is up, line protocol is down (monitoring)
  Hardware is C6k 100Mb 802.3, address is 0005.7461.c838 (bia 0005.7461.c838)
  Description: I,NSP49,10.101.5.96,OCCRBC7505BN1A HSSI 1/0/0
  MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec,
     reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation ARPA, loopback not set
  Full-duplex, 100Mb/s
  input flow-control is off, output flow-control is off
  ARP type: ARPA, ARP Timeout 04:00:00
  Last input never, output never, output hang never
  Last clearing of "show interface" counters never
  Input queue: 0/2000/0/0 (size/max/drops/flushes); Total output drops: 262140
  Queueing strategy: fifo
  Output queue :0/40 (size/max)
  5 minute input rate 0 bits/sec, 0 packets/sec
  5 minute output rate 0 bits/sec, 0 packets/sec
     119374 packets input, 8353326 bytes, 0 no buffer
     Received 118782 broadcasts, 299 runts, 0 giants, 0 throttles
     748 input errors, 14 CRC, 0 frame, 0 overrun, 0 ignored
     0 input packets with dribble condition detected
     9225693 packets output, 591962436 bytes, 0 underruns
     0 output errors, 0 collisions, 1 interface resets
     0 babbles, 0 late collision, 0 deferred
     0 lost carrier, 0 no carrier
     0 output buffer failures, 0 output buffers swapped out
Cat6k-CiscoIOS#�

如果 EtherChannel 上接收或发送 BPDU 的源 MAC 地址不断变化,则多个 STP 端口会发送 BPDU。这是明显的不一致迹象,因为 STP 将信道视为单个端口。

注意: 此机制允许部分容差,因为 BPDU 可能来自不同的 MAC 地址。例如,当 STP 融合时,信道两端的 STP 指定端口可能发生变化。不过,此过程必须在短时间内进行。

发送和接收的 BPDU 由检测机制检查。如果信道在超过 30 秒的时间内检测到 75 个以上来自不同 MAC 地址的 BPDU,则 EtherChannel 即视为不一致。不过,如果发现 连续 5 个 BPDU 来自同一个 MAC 地址,则会重置检测计数器。这些计时器/计数器会在未来的软件版本中进行更改。

注意: 由于此机制的一般性,即使信道配置一致,也会触发不一致检测。

例如,如果网络中某台交换机出现硬件或软件方面的问题,并且由信道连接的两台独立交换机不能就哪一端为 STP 指定端口达成一致,则两端都会发送 BPDU。一致性检测机制可禁用出现这些症状的 EtherChannel。由于这种更改可能允许分割的网络进行融合,因此它不一定会导致有害的负面影响。

即使禁用 STP,BPDU 也不会由硬件泛洪。STP 仍需在 BPDU 上进行处理,包括将 BPDU 中的源 MAC 地址更改为发送端口的 MAC 地址。这意味着,即使禁用 STP,不一致检测也会在信道上发挥作用。

对 EtherChannel 不一致检测进行故障排除

默认情况下,CatOS 和 Cisco IOS 软件上都启用检测。

您还可以监控此功能的运行。为此,请针对 CatOS 发出 show spantree statistics mod/port [vlan] 命令。请考虑以下示例:

Cat6k> (enable) show spantree statistics 2/5 199
Port  2/5   VLAN 199
  

!--- Output suppressed.


channel_src_mac                      00-d0-5a-eb-67-5a
channel src count                    73
channel OK count                     1

Cat6k> (enable) show spantree statistics 2/5 199
Port  2/5   VLAN 199


!--- Output suppressed.


channel_src_mac                      00-50-14-bb-63-a9
channel src count                    76
channel OK count                     1

此列表对输出示例中的 show spantree statistics mod/port [vlan] 参数进行说明。

  • channel_src_mac — 显示信道上发送或接收的最后一个 BPDU 的源 MAC 地址

  • channel src count — 对使用不同源 MAC 地址发送或接收的 BPDU 进行计数

  • channel OK count — 对连续使用同一个 MAC 地址发送的 BPDU 进行计数

注意: channel src count 参数会增加。一旦此参数超过 75,信道中的所有链路都将处于 error-disabled 状态,并发出系统日志消息。另请注意,您在两个输出示例中看到的 MAC 地址不同。

如果存在 EtherChannel 配置错误问题,那么您还会在 CatOS 的系统日志输出中看到此错误消息:

%SPANTREE-2-CHNMISCFG: STP loop - channel 2/5-12 is disabled in vlan/instance 199

此消息表明 EtherChannel 类型设置 (auto/desirable/on) 中可能存在配置错误。配置错误的信道已形成,导致生成树环路。在此消息中:

  • [[dec] 是模块编号

  • [[chars] 是端口号

  • vlan [dec] 是 VLAN 编号

在 CatOS 版本 8.1 及更高版本中,即为 %SPANTREE-2-CHNMISCFG2:BPDU 随错误消息一起出现。此消息帮助您进行故障排除,因为 MAC 地址现在位于系统日志中,可供查看并帮助您简化故障排除工作。

%SPANTREE-2-CHNMISCFG2: BPDU source mac addresses: [chars], [chars]

此消息在 SPANTREE-2-CHNMISCFG 消息显示后出现。此消息提供导致错误禁用信道的 STP BPDU 的源 MAC 地址。在此消息中,[chars]、[chars] 是 BPDU 的源 MAC 地址。

对于 Cisco IOS 软件,您必须使用标准 STP 故障排除步骤才能检测 EtherChannel 不一致。如果您在系统日志输出中看到此错误消息,则可能存在 EtherChannel 配置错误问题:

SPANTREE-2-CHNL_MISCFG: Detected loop due to etherchannel misconfiguration of [chars] 
 [chars]

此消息表明检测到信道组配置错误。例如,EtherChannel 一端的端口可能未配置到信道中,也可能捆绑失败,而 EtherChannel 另一端的端口则捆绑成功。在此消息中,[chars] 是信道组 ID。

使用 show interfaces status err-disabled 命令确定配置错误的本地端口。使用 show etherchannel summary 命令检查远程设备上的 EtherChannel 配置。如果配置正确无误,请在相关的端口信道接口上依次发出 shutdown 命令和 no shutdown 命令。

有关 STP debug 命令以及如何进行故障排除的详情,请参阅对运行 Cisco IOS 系统软件的 Catalyst 交换机上的 STP 进行故障排除


相关信息


Document ID: 20625