目录

简介

先决条件

要求

使用的组件

背景信息

问题说明

拓扑

说明

根本原因

缓解

相关信息

简介

本文档介绍由EtherChannel成员接口中的任何更改引起的停机的根本原因分析。

先决条件

EtherChannel是在生成树协议(STP)上运行的第2层环路/星型/网格/冗余拓扑的一部分。

要求

Cisco 建议您了解以下主题：

基本了解

- 思科交换和Catalyst操作

- STP

- EtherChannel负载均衡

使用的组件

本文档中的信息基于这些基于软件和硬件的图示版本，但不限于：

- 思科C9000交换机

- 虚拟交换机链路(VSL)设置

- EtherChannel

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

背景信息

本文档包含更改（例如添加/删除/删除链路或成员接口链路从EtherChannel成员接口中的一个端口移动到另一个端口）的根本原因。此外，它概述了一个缓解计划，以避免此类意外停机。

问题说明

通常，向现有EtherChannel添加成员接口链路不能导致任何停机或流量转发中断。同样，在删除成员接口链路之后，如果EtherChannel的剩余带宽大于在删除链路之前的整体利用率，则一定不会出现任何流量中断。但是，前面提到的场景会导致特殊的第2层环路拓扑中几秒钟的停机时间。

拓扑

说明

Laptop 1的IP地址是10.10.10.50/24,Laptop 2的IP地址是10.10.10.51/24。两者都在同一个VLAN中。

9600核心交换机通过po1连接到9500 Dist1，通过po2连接到9500 Dist2。

9300接入交换机通过接口GI 1/0/14连接到9500 Dist 1，并通过GI 1/0/46连接到9500 Dist 2。

Laptop 1和Laptop 2之间的整体数据包路径为：

Laptop 1 > (GI 1/0/1) Cat 9300 (GI 1/0/46) > (Te 1/0/12) Cat 9500 Dist 2 (Port-channel 1) > (Port-channel 2) Cat 9600 (Port-channel 4) > (Port-channel 1) Cat 9500 Dist 4 (Te 1/0/1) > Laptop 2

但是，Laptop 1和Laptop 2之间有两个数据包路径选项，具体取决于负载均衡算法。

选项 1： Laptop 1 > (GI 1/0/1) Cat 9300 (GI 1/0/46) > (Te 1/0/12) Cat 9500 Dist 2 (Te1/0/4) > (Twe 1/1/0/24) Cat 9600 - Active (Twe 1/1/0/8) > (Twe 1/0/5) Cat 9500 Dist 4 (Te 1/0/1) > Laptop 2

选项 2： Laptop 1 > (GI 1/0/1) Cat 9300 (GI 1/0/46) > (Te 1/0/12) Cat 9500 Dist 2 (Te1/0/5) > (Twe 2/1/0/10) Cat 9600 - Standby (Twe 2/1/0/34) > (Twe 1/0/8) Cat 9500 Dist 4 (Te 1/0/1) > Laptop 2

最初，由于两个接口连接到Cat 9300以到达根网桥9600，因此根据STP路径选择标准，其中一个接口GI 1/0/14被置于备用阻塞状态，而GI 1/0/46处于根转发状态。

从Cat 9300从GI 1/0/14接口或GI 1/0/46到达根的命令相同且等于30000。

Cat 9300#show spanning-tree

VLAN0001

Spanning tree enabled protocol rstp

Root ID    Priority    24577

Address    549f.c666.c580

Cost       30000

Port       46 (GigabitEthernet1/0/46)

Hello Time  2 sec  Max Age 20 sec  Forward Delay 15 sec

Bridge ID  Priority    32769  (priority 32768 sys-id-ext 1)

Address     2416.9d7a.2480

Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

Aging Time  300 sec

Interface           Role Sts Cost      Prio.Nbr Type

------------------- ---- --- --------- -------- --------------

GI 1/0/14            Altn BLK 20000     128.14   P2p

GI 1/0/46            Root FWD 20000     128.46   P2p

Cat 9600#show spanning-tree

VLAN0001

Spanning tree enabled protocol rstp

Root ID    Priority    24577

Address     549f.c666.c580

This bridge is the root

Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

Bridge ID  Priority    24577  (priority 24576 sys-id-ext 1)

Address     549f.c666.c580

Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

Aging Time  300 sec

Interface           Role Sts Cost      Prio.Nbr Type

------------------- ---- --- --------- -------- --------------------------------

Po1                 Desg FWD 10000     128.3433 P2p

Po2                 Desg FWD 10000     128.3434 P2p

Po3                 Desg FWD 10000     128.3435 P2p

Po4                 Desg FWD 10000     128.3436 P2p

当前STP状态：

Cat 9600#show spanning-tree  detail | include is exec|changes|from

VLAN0001 is executing the rstp compatible Spanning Tree protocol

Number of topology changes 8 last change occurred 00:10:28 ago

from Port-channel1

从9600的Port-channel 2关闭其中一个成员接口(Twe 2/1/0/10)的活动将导致：

1. Cat 9600和Cat 9500 Dist 2之间的端口通道的STP路径开销从10000增加到20000。

Cat 9600#show spanning-tree

VLAN0001

Spanning tree enabled protocol rstp

Root ID    Priority    24577

Address     549f.c666.c580

This bridge is the root

Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

Bridge ID  Priority    24577  (priority 24576 sys-id-ext 1)

Address     549f.c666.c580

Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

Aging Time  300 sec

Interface   Role Sts Cost      Prio.Nbr Type

------------------- ---- --- --------- -------- --------------

Po1         Desg FWD 10000     128.3433 P2p

Po2         Desg FWD 20000     128.343  P2p <<

Po3         Desg FWD 10000     128.3435 P2p

Po4         Desg FWD 10000     128.3436 P2p

2.到Cat 9300上的根的STP路径开销从30000到40000口GI 1/0/46的增量。因此，9300选择接口GI 1/0/14作为根端口，具有更少的STP路径开销。

Cat 9300#show spanning-tree

VLAN0001

Spanning tree enabled protocol rstp

Root ID    Priority    24577

Address     549f.c666.c580

Cost        30000

Port        14 (GigabitEthernet1/0/14)

Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

Bridge ID  Priority    32769  (priority 32768 sys-id-ext 1)

Address     2416.9d7a.2480

Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

Aging Time  300 sec

Interface           Role Sts Cost      Prio.Nbr Type

------------------- ---- --- --------- -------- --------------------------------

GI 1/0/14            Root FWD 20000     128.14   P2p  <<<<< GI 1/0/14 is coming to forward state

GI 1/0/46            Altn BLK 20000     128.46   P2p

3.此更改会导致生成整个生成树域中的拓扑更改通知(TCN)。

Cat 9600#show spann det | inc is exec|changes|from

VLAN0001 is executing the rstp compatible Spanning Tree protocol

Number of topology changes 9 last change occurred 00:03:21 ago

from Port-channel1 <<< TCN is received over port-channel 1

生成树重新收敛后，网络中可能会出现中断。

中断的时间间隔可能因其他因素和协议而异。

从Laptop 1向Laptop 2发起连续ping操作可以演示网络中EtherChannel更改的实时影响。

同样，在Cat 9500 Dist 1和Cat 9600 Core Switch之间的Port-channel 1上添加成员接口会降低STP成本，还会影响拓扑更改。

根本原因

添加或删除EtherChannel的成员接口会改变其STP端口成本。这会导致STP重新收敛和TCN生成。

缓解

选项1：使用以下步骤在更改期间对EtherChannel的STP成本进行硬编码：

步骤1:了解计划更改（添加或删除成员接口）的EtherChannel的现有STP成本。

Cat 9600#show spanning-tree interface port-channel 1

Vlan                Role Sts Cost      Prio.Nbr Type

------------------- ---- --- --------- -------- --------------------------------

VLAN0001            Desg FWD 10000     128.3433 P2p

在本例中，VLAN 1的10000本为100。

第二步：硬编码相同的STP成本。

Switch#

Switch#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Switch(config)#interface port-channel 1

Switch(config-if)#spanning-tree cost 10000

Switch(config-if)#end

Switch#

同样，成本更改配置也必须在对等设备连接的接口上完成。

第三步：执行更改。

包括：

- 将成员接口添加到现有EtherChannel

或

- 从现有EtherChannel中删除成员接口

或

- 关闭/不关闭任何成员接口

或

- 成员接口从一个端口移动到另一个端口

添加或删除成员接口不会对STP拓扑造成任何影响，因为链路的STP开销是硬编码的。

注意：

缓解计划会影响直通式处理计算并产生副作用。但是，这在EtherChannel的任何活动中都非常有用，因为在该活动中需要临时更改成员接口的数量。

请考虑以下场景：在特定网络活动期间需要关闭EtherChannel的成员接口，并在结束时恢复成员接口。在这种情况下，可以在练习开始时将EtherChannel的STP成本硬编码为其默认值。

关闭相应的成员接口，完成练习，然后恢复接口；稍后，再次默认STP开销。使用此方法可以避免STP重新收敛。

建议谨慎地将生成树成本恢复到各自更改结束时的默认设置。

选项2：对于一些设计，可以使用其他方法避免中断，例如生成树增强功能，例如上行链路快速、根防护等。

相关信息

- https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst4000/8-2glx/configuration/guide/spantree.html#wp1193602

- 思科技术支持和下载