简介
本文档介绍有关 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问题进行故障排除。
相关信息