生成树基础实验
以太网交换网络中为了进行链路备份,提高网络可靠性,通常会使用冗余链路。但是使用冗余链路会在交换网络上产生环路,引发广播风暴以及 MAC地址表不稳定等故障现象,从而导致用户通信质量较差,甚至通信中断。
为解决交换网络中的环路问题,提出了生成树协议STP(Spanning Tree Protocol)。
与众多协议的发展过程一样,生成树协议也是随着网络的发展而不断更新的,从最初的IEEE802.1D 中定义的 STP 到 IEEE 802.1W 中定义的快速生成树协议 RSTP(Rapid Spanning TreeProtocol),再到最新的IEEE 802.1S 中定义的多生成树协议 MSTP(Multiple Spanning TreeProtocol )
本实验将通过完成 STP 的基本配置,帮助学员掌握 STP 的配置和原理,以及部分 RSTP 特性。
一、实验目的
- 掌握启用和禁用 STP/RSTP 的方法
- 掌握修改交换机 STP 模式的方法
- 掌握修改桥优先级,控制根桥选举的方法
- 掌握修改端口优先级,控制根端口和指定端口选举的方法
- 掌握修改端口开销,控制根端口和指定端口选举的方法
- 掌握边缘端口的配置方法
- 掌握启用和禁用 RSTP 的配置方法
二、实验拓扑结构
交换机S1-S4统一采用S3700交换机,连接线两端的接口编号相同。
三、实验背景
某公司的二层交换网络中,为了提高网络可靠性,故在二层交换网络中增加冗余链路。为了阻止冗余链路可能带来的广播风暴,MAC 地址漂移等负面影响,需要在交换机之间部署生成树协议。
四、实验内容
4.1 实验配置思路
- 使能设备上的 STP 功能
- 修改桥优先级来控制根桥的选举
- 修改接口参数来控制端口角色
- 修改设备运行 RSTP 协议
- 配置 RSTP 边缘端口
4.2 实验配置步骤
4.2.1 设备基础配置
(1)S1设备命名并关闭信息中心
<Huawei>system-view [Huawei]undo info-center enable [Huawei]sysname S1
(2)S2设备命名并关闭信息中心
<Huawei>system-view [Huawei]undo info-center enable [Huawei]sysname S2
(3)S3设备命名并关闭信息中心
<Huawei>system-view [Huawei]undo info-center enable [Huawei]sysname S3
(4)S4设备命名并关闭信息中心
<Huawei>system-view [Huawei]undo info-center enable [Huawei]sysname S4
4.2.2 配置设备运行 STP
(1)全局使能STP功能
全局使能交换设备或端口上的STP/RSTP/MSTP 功能的命令为stp enable 。默认情况下,交换设备上的 STP/RSTP/MSTP 功能处于启用状态,故该过程可以直接跳过。作为演示,以使能S1交换机的STP/RSTP/MSTP为例。
[S1]stp enable
(2)修改生成树的工作模式
默认情况下,设备的生成树协议工作模式为 MSTP 模式。修改生成树工作模式的命令格式如下:
stp mode 工作模式
其中:工作模式可从stp、rstp和mstp中选择。
对四个交换机的工作模式进行修改如下:
[S1]stp mode stp
[S2]stp mode stp
[S3]stp mode stp
[S4]stp mode stp
(3)查看生成树的状态
[S1]display stp
-------[CIST Global Info][Mode MSTP]-------
CIST Bridge :32768.4c1f-cc4b-051e # 自身的桥 ID
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC :32768.4c1f-cc32-6930 / 200000 # 根桥 ID 和 RPC
CIST RegRoot/IRPC :32768.4c1f-cc4b-051e / 0
CIST RootPortId :128.3
BPDU-Protection :Disabled
TC or TCN received :67
TC count per hello :0
STP Converge Mode :Normal
Time since last TC :0 days 0h:1m:7s
Number of TC :13
Last TC occurred :Ethernet0/0/3
----[Port1(Ethernet0/0/1)][FORWARDING]---- # 接口状态,下面内容为具体信息Port Protocol :EnabledPort Role :Designated PortPort Priority :128Port Cost(Dot1T ) :Config=auto / Active=200000Designated Bridge/Port :32768.4c1f-cc4b-051e / 128.1Port Edged :Config=default / Active=disabledPoint-to-point :Config=auto / Active=trueTransit Limit :147 packets/hello-timeProtection Type :NonePort STP Mode :MSTP Port Protocol Type :Config=auto / Active=dot1sBPDU Encapsulation :Config=stp / Active=stpPortTimes :Hello 2s MaxAge 20s FwDly 15s RemHop 20TC or TCN send :3TC or TCN received :0BPDU Sent :53 TCN: 0, Config: 0, RST: 0, MST: 53BPDU Received :1 TCN: 0, Config: 0, RST: 0, MST: 1
从S1的 生成树的状态信息可以看出,自身的桥ID与根桥ID不相同,表明S1不是根桥。
经查,S3的桥ID与根桥ID相同,即表示S3为根桥。
[S3]display stp
-------[CIST Global Info][Mode MSTP]-------
CIST Bridge :32768.4c1f-cc32-6930 # 自身桥ID
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC :32768.4c1f-cc32-6930 / 0 # 根桥ID及RPC
CIST RegRoot/IRPC :32768.4c1f-cc32-6930 / 0
CIST RootPortId :0.0
BPDU-Protection :Disabled
TC or TCN received :12
TC count per hello :0
STP Converge Mode :Normal
Time since last TC :0 days 3h:17m:5s
Number of TC :11
Last TC occurred :Ethernet0/0/3
注:按空格键翻页查看后续输出,按Ctrl+C 可结束显示。
(4)查看各交换机上生成树的状态信息摘要
[S1]display stp brief MSTID Port Role STP State Protection0 Ethernet0/0/1 DESI FORWARDING NONE0 Ethernet0/0/2 DESI FORWARDING NONE0 Ethernet0/0/3 ROOT FORWARDING NONE0 Ethernet0/0/4 DESI FORWARDING NONE
[S2]display stp brief MSTID Port Role STP State Protection0 Ethernet0/0/1 ALTE DISCARDING NONE0 Ethernet0/0/2 ALTE DISCARDING NONE0 Ethernet0/0/3 DESI FORWARDING NONE0 Ethernet0/0/4 ROOT FORWARDING NONE
[S3]display stp brief MSTID Port Role STP State Protection0 Ethernet0/0/1 DESI FORWARDING NONE0 Ethernet0/0/3 DESI FORWARDING NONE0 Ethernet0/0/4 DESI FORWARDING NONE
[S4]display stp brief MSTID Port Role STP State Protection0 Ethernet0/0/1 ROOT FORWARDING NONE0 Ethernet0/0/3 ALTE DISCARDING NONE0 Ethernet0/0/4 ALTE DISCARDING NONE
根据各设备连接接口的STP State(FORWARDING表示接口可以转发业务数据,DISCARDING表示不转发,即接口被阻塞),结合拓扑结构,可得到如下所示的有效拓扑结构,图中红色标识的接口表示此接口被阻塞,不转发业务数据,从而保障了从任一设备出发到达任意其它设备,均有路径可达,且不存在环路。
注:该拓扑仅供参考,每个人的实验环境中的生成树拓扑不一定相同。
4.2.3 手动配置根桥和备份根桥
由于根桥在网络中的重要性,在根桥选举过程中,通常希望性能高、网络层次高的交换设备会被选举为根桥。
但是,性能高、网络层次高的交换设备其优先级不一定高,因此需要通过执行相应命令配置其为根桥,以保证该设备成为根桥。
配置当前交换设备为指定生成树的根桥或备份根桥的命令为stp root。
执行【stp root primary】命令指定当前交换设备为根交换设备,即表示该设备在指定生成树中的优先级为0,且优先级不能修改。
执行【stp root secondary】命令指定当前交换设备在指定生成树中为备份根桥,则表示该设备的优先级数值为 4096,且优先级不能修改。
现要求修改设备参数,使得 S2 成为根桥,S1 成为备份根桥。
(1)配置S2为根桥
# 配置当前交换机为根桥
[S2]stp root primary # 查看stp详情
[S2]display stp
-------[CIST Global Info][Mode MSTP]-------
CIST Bridge :0 .4c1f-cca5-07c7 # 自身桥ID
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC :0 .4c1f-cca5-07c7 / 0 # 根桥ID及到根桥的路径开销RPC
CIST RegRoot/IRPC :0 .4c1f-cca5-07c7 / 0
CIST RootPortId :0.0
BPDU-Protection :Disabled
CIST Root Type :Primary root # 根桥
……此处省略后续输出……
注:因自身桥 ID 与根桥 ID 相同,且根路径开销为 0,说明 S2 是当前网络的根桥。
(2)配置S1为备用根桥
# 配置当前交换机为备用根桥
[S1]stp root secondary # 查看当前STP详情
[S1]display stp
-------[CIST Global Info][Mode MSTP]-------
CIST Bridge :4096 .4c1f-cc4b-051e # 自身桥ID
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC :0 .4c1f-cca5-07c7 / 200000 # 根桥ID及到根桥的路径开销RPC
CIST RegRoot/IRPC :4096 .4c1f-cc4b-051e / 0
CIST RootPortId :128.1
BPDU-Protection :Disabled
CIST Root Type :Secondary root # 备用根桥
……此处省略后续输出……
(3)再次查看所有设备的STP状态摘要
[S1]display stp brief MSTID Port Role STP State Protection0 Ethernet0/0/1 ROOT FORWARDING NONE0 Ethernet0/0/2 ALTE DISCARDING NONE0 Ethernet0/0/3 DESI FORWARDING NONE0 Ethernet0/0/4 DESI FORWARDING NONE
[S2]display stp brief MSTID Port Role STP State Protection0 Ethernet0/0/1 DESI FORWARDING NONE0 Ethernet0/0/2 DESI FORWARDING NONE0 Ethernet0/0/3 DESI FORWARDING NONE0 Ethernet0/0/4 DESI FORWARDING NONE
[S3]display stp brief MSTID Port Role STP State Protection0 Ethernet0/0/1 DESI FORWARDING NONE0 Ethernet0/0/3 ALTE DISCARDING NONE0 Ethernet0/0/4 ROOT FORWARDING NONE
[S4]display stp brief MSTID Port Role STP State Protection0 Ethernet0/0/1 ALTE DISCARDING NONE0 Ethernet0/0/3 ROOT FORWARDING NONE0 Ethernet0/0/4 ALTE DISCARDING NONE
根据各设备连接接口的STP State(FORWARDING表示接口可以转发业务数据,DISCARDING表示不转发,即接口被阻塞),结合实验拓扑结构,可得到如下所示的有效拓扑结构,图中红色标识的接口表示此接口被阻断,不转发业务数据,从而保障了从任一设备出发到达任意其它设备,均有路径可达,且不存在环路。
4.2.4 配置根端口
现假定需要将S4 的Eth 0/0/4接口配置成为根端口。
(1)查看S4的STP状态信息
[S4]display stp
-------[CIST Global Info][Mode MSTP]-------
CIST Bridge :32768.4c1f-ccf3-6b1b
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC :0 .4c1f-cca5-07c7 / 200000 # 根桥ID及RPC
CIST RegRoot/IRPC :32768.4c1f-ccf3-6b1b / 0
CIST RootPortId :128.3 # 根端口ID(即Eth 0/0/3)
BPDU-Protection :Disabled
TC or TCN received :32
TC count per hello :0
STP Converge Mode :Normal
Time since last TC :0 days 0h:24m:5s
Number of TC :8
Last TC occurred :Ethernet0/0/3
从S4的STP状态信息可以看出,S4到根桥S2的路径开销RPC为200000,本设备的根端口为Eth 0/0/3。
(2)修改RPC
现将S4到根桥S2的路径开销RPC为500000,命令如下所示。
[S4]interface Ethernet0/0/3# 指定从此接口到根桥的路径开销
[S4-Ethernet0/0/3]stp cost 500000
[S4-Ethernet0/0/3]quit
(3)查看当前 STP 状态信息
[S4]display stp
-------[CIST Global Info][Mode MSTP]-------
CIST Bridge :32768.4c1f-ccf3-6b1b
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC :0 .4c1f-cca5-07c7 / 400000 # RPC变为400000
CIST RegRoot/IRPC :32768.4c1f-ccf3-6b1b / 0
CIST RootPortId :128.4 # 根端口变为Eth 0/0/4
BPDU-Protection :Disabled
TC or TCN received :38
TC count per hello :0
STP Converge Mode :Normal
Time since last TC :0 days 0h:1m:44s
Number of TC :9
Last TC occurred :Ethernet0/0/4
从图中可以看出,此时S4到根桥S2的路径开销RPC变成了400000,根端口变成了Eth 0/0/4,也就是Eth0/0/3被阻塞了,从而有效的网络拓扑变成了如下图所示的样子。
4.2.5 修改当前生成树工作模式为 RSTP
(1)修改所有设备的生成树工作模式
[S1]stp mode rstp
[S2]stp mode rstp
[S3]stp mode rstp
[S4]stp mode rstp
(2)查看设备上的生成树状态,仅以S1为例
[S1]display stp
-------[CIST Global Info][Mode RSTP]-------
……此处省略后续输出……
从输出的首行可以看出,S1此时的生成树工作模式为RSTP。
注:模式修改后,对生成树的整体拓扑无影响。
4.2.6 配置边缘端口
(1)S3 的 Eth 0/0/5-0/0/22确认只会连接终端设备,需要被配置为边缘端口。
配置当前端口为边缘端口的命令为【stp edged-port enable】
# 将Ethernet0/0/5配置为边缘端口
[S3]interface Ethernet0/0/5
[S3-Ethernet0/0/5]stp edged-port enable
[S3-Ethernet0/0/5]quit# 将Ethernet0/0/6配置为边缘端口
[S3]interface Ethernet0/0/6
[S3-Ethernet0/0/6]stp edged-port enable
[S3-Ethernet0/0/6]quit……其它端口类似操作,此处省略……
通常,设备的以太网接口数比较多,并且在很多以太网接口下有相同的配置。如果对这些以太网接口进行逐个配置会较为繁琐,且容易输入错误。因此,将需要执行相同配置命令的以太网接口加入到一个临时端口组,在临时端口组配置命令时,系统会自动到临时端口组绑定的所有成员接口下执行这些命令行,完成以太网接口批量配置。
注:某些产品上可能不支持临时接口组,需要对接口做单独配置。本实验中的交换机就需要单独配置。
当前端口配置成边缘端口后,如果收到 BPDU(Bridge Protocol Data Unit,桥协议数据单元)报文,交换设备会自动将边缘端口设置为非边缘端口,并重新进行生成树计算。
4.3 结果验证
(1)请根据实际收敛情况,标识和说明当前实验环境中的根桥以及端口角色。
以S1为例
[S1]display stp
-------[CIST Global Info][Mode RSTP]------- # 工作模式为RSTP
CIST Bridge :4096 .4c1f-cc4b-051e # 自身桥ID
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20 # 配置时间参数
Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20 # 生效的时间参数
CIST Root/ERPC :0 .4c1f-cca5-07c7 / 200000 # 根桥ID / RPC
CIST RegRoot/IRPC :4096 .4c1f-cc4b-051e / 0 # 备用根桥ID / RPC
CIST RootPortId :128.1 # 根端口
BPDU-Protection :Disabled # BPDU保护(未启用,若启用,收到BPDU的边缘端口会被关闭)
CIST Root Type :Secondary root # 根桥类型(备用根桥)
TC or TCN received :100 # 收到的拓扑变更(TC/TCM)BPDU 数量
TC count per hello :0 # 每个 Hello 时间内的 TC 计数
STP Converge Mode :Normal # 生成树收敛模式为普通模式(非快速收敛)。
Time since last TC :0 days 0h:24m:40s # 上次发生 TC 的时间(24分40秒前)
Number of TC :27 # 累计 TC 事件次数
Last TC occurred :Ethernet0/0/1 # 最后一次 TC 事件发生的端口
----[Port1(Ethernet0/0/1)][FORWARDING]---- # 端口工作状态为转发Port Protocol :EnabledPort Role :Root Port # 端口角色为根端口Port Priority :128 # 端口优先级Port Cost(Dot1T ) :Config=auto / Active=200000 # 端口开销Designated Bridge/Port :0.4c1f-cca5-07c7 / 128.1 # 指派桥/端口的地址/接口Port Edged :Config=default / Active=disabled # 边缘端口(默认即未配置)Point-to-point :Config=auto / Active=true # 链路类型自动检测为 点对点(P2P)Transit Limit :147 packets/hello-time # 每个Hello时间内允许传输的BPDU包数量上限为147Protection Type :None # 未启用任何保护功能Port STP Mode :RSTP # 端口运行模式为RSTPPort Protocol Type :Config=auto / Active=dot1s # 端口协议类型IEEE 802.1sBPDU Encapsulation :Config=stp / Active=stp # BPDU 封装格式为标准的 STP 格式PortTimes :Hello 2s MaxAge 20s FwDly 15s RemHop 0 # 端口的时间参数与全局一致TC or TCN send :3TC or TCN received :4BPDU Sent :5 TCN: 0, Config: 0, RST: 5, MST: 0BPDU Received :702 TCN: 0, Config: 0, RST: 702, MST: 0
----[Port2(Ethernet0/0/2)][DISCARDING]---- # 端口工作状态为丢弃Port Protocol :EnabledPort Role :Alternate Port # 端口角色为备用端口Port Priority :128Port Cost(Dot1T ) :Config=auto / Active=200000Designated Bridge/Port :0.4c1f-cca5-07c7 / 128.2Port Edged :Config=default / Active=disabledPoint-to-point :Config=auto / Active=trueTransit Limit :147 packets/hello-timeProtection Type :NonePort STP Mode :RSTP Port Protocol Type :Config=auto / Active=dot1sBPDU Encapsulation :Config=stp / Active=stpPortTimes :Hello 2s MaxAge 20s FwDly 15s RemHop 0TC or TCN send :0TC or TCN received :3BPDU Sent :2 TCN: 0, Config: 0, RST: 2, MST: 0BPDU Received :700 TCN: 0, Config: 0, RST: 700, MST: 0
----[Port3(Ethernet0/0/3)][FORWARDING]---- # 端口工作状态为转发Port Protocol :EnabledPort Role :Designated Port # 端口角色为指派端口,即要负责业务数据转发Port Priority :128Port Cost(Dot1T ) :Config=auto / Active=200000Designated Bridge/Port :4096.4c1f-cc4b-051e / 128.3Port Edged :Config=default / Active=disabledPoint-to-point :Config=auto / Active=trueTransit Limit :147 packets/hello-timeProtection Type :NonePort STP Mode :RSTP Port Protocol Type :Config=auto / Active=dot1sBPDU Encapsulation :Config=stp / Active=stpPortTimes :Hello 2s MaxAge 20s FwDly 15s RemHop 20TC or TCN send :3TC or TCN received :0BPDU Sent :700 TCN: 0, Config: 0, RST: 700, MST: 0BPDU Received :0 TCN: 0, Config: 0, RST: 0, MST: 0
----[Port4(Ethernet0/0/4)][FORWARDING]---- # 端口工作状态为转发Port Protocol :EnabledPort Role :Designated Port # 端口角色为指派端口Port Priority :128Port Cost(Dot1T ) :Config=auto / Active=200000Designated Bridge/Port :4096.4c1f-cc4b-051e / 128.4Port Edged :Config=default / Active=disabledPoint-to-point :Config=auto / Active=trueTransit Limit :147 packets/hello-timeProtection Type :NonePort STP Mode :RSTP Port Protocol Type :Config=auto / Active=dot1sBPDU Encapsulation :Config=stp / Active=stpPortTimes :Hello 2s MaxAge 20s FwDly 15s RemHop 20TC or TCN send :7TC or TCN received :2BPDU Sent :706 TCN: 0, Config: 0, RST: 706, MST: 0BPDU Received :4 TCN: 0, Config: 0, RST: 4, MST: 0
(2)关闭任意交换机上的任意端口,观察是否能通过备份链路到达其他所有交换机。
在4.2.4节的基础上,将S3的Eth0/0/3端口关闭以便模拟故障,然后观察并绘制出实际的网络拓扑结构。
[S3]interface Ethernet0/0/3
[S3-Ethernet0/0/3]shutdown
[S3-Ethernet0/0/3]quit
[S1]display stp brief MSTID Port Role STP State Protection0 Ethernet0/0/1 ROOT FORWARDING NONE0 Ethernet0/0/2 ALTE DISCARDING NONE0 Ethernet0/0/4 DESI FORWARDING NONE
[S2]display stp brief MSTID Port Role STP State Protection0 Ethernet0/0/1 DESI FORWARDING NONE0 Ethernet0/0/2 DESI FORWARDING NONE0 Ethernet0/0/3 DESI FORWARDING NONE0 Ethernet0/0/4 DESI FORWARDING NONE
[S3]display stp brief MSTID Port Role STP State Protection0 Ethernet0/0/1 DESI FORWARDING NONE0 Ethernet0/0/4 ROOT FORWARDING NONE
[S4]display stp brief MSTID Port Role STP State Protection0 Ethernet0/0/1 ALTE DISCARDING NONE0 Ethernet0/0/3 ALTE DISCARDING NONE0 Ethernet0/0/4 ROOT FORWARDING NONE
根据上述四个设备接口的STP状态,可得到如下图所示的拓扑结构。
从一个设备出发,到任意其它设备仍均有路径可达。
4.4 参考配置
4.4.1 S1的参考配置
[S1]display current-configuration
#
sysname S1
#
undo info-center enable
#
stp mode rstp
stp instance 0 root secondary
#
……此处省略默认的输出……
4.4.2 S2的参考配置
[S2]display current-configuration
#
sysname S2
#
undo info-center enable
#
stp mode rstp
stp instance 0 root primary
#
……此处省略默认的输出……
4.4.3 S3的参考配置
[S3]display current-configuration
#
sysname S3
#
undo info-center enable
#
stp mode rstp
#
……此处省略默认输出……
#
interface Ethernet0/0/5stp edged-port enable
#
interface Ethernet0/0/6stp edged-port enable
……此处省略后续相同或类似输出……
4.4.4 S4的参考配置
[S4]display current-configuration
#
sysname S4
#
undo info-center enable
#
stp mode rstp
……此处省略默认输出……
4.5 思考题
S1与 S2 之间的两条链路能否同时处于转发状态?为什么?
答案:不能,因为 S1 和S2之间的链路就构成了环路,所以必须有一条链路被阻塞。
4.6 参考文献
HCIA-Datacom实验指导手册V1.0