目录

简介

先决条件

要求

使用的组件

规则

背景信息

不一致检测如何工作

排除EtherChannel不一致检测故障

相关信息

简介

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

先决条件

要求

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

使用的组件

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

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您的网络处于活动状态，请确保您了解所有命令的潜在影响。

规则

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

背景信息

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

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

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

此绘制提供一个示例：

广播数据包

如果交换机 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)。

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

STP BPDU

在图表中，交换机 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)

对于Catalyst交换机上的Cisco IOS®软件，如果发出 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地址更改为发送BPDU的端口的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    命令以及如何进行故障排除的详细信息，请参阅对Catalyst交换机上的STP问题进行故障排除。

相关信息

- 第3层和第2层EtherChannel

- Catalyst 6500版本12.2SXF和重建软件配置指南

- LAN产品支持（无线）

- 工具和资源

- 思科技术支持和下载