前言:
在二层交换网络中,一旦发生环路就会造成报文在环路内不断循环和增生,产生广播风暴,从而占用有效的带宽,使网络变得不可用。在这种环境下,生成树协议应运而生,生成树是一种二层管理协议,它通过选择性地阻塞网络中的冗余链路来消除二层环路。生成树协议分为STP和RSTP和MSTP。
STP的端口状态有五种:
状态 | 描述 |
Disabled | 该状态下的端口没有激活,不参与STP的计算,不转发用户流量 |
Listening | 该状态下的端口可以接收和发送BPDU,但不转发用户流量 |
Learning | 该状态下建议无环的转发表,不转发用户流量 |
Forwarding | 该状态下的端口可以接收和发送BPDU,也转发用户流量 |
Blocking | 该状态下的端口可以接收BPDU,但不转发用户流量 |
注:STP采用的协议报文是BPDU(Bridge Protocol Data Unit,网桥协议数据单元),也称为配置信息
STP的角色选举机制
STP的角色选举分为:根桥选举,根端口选举,指定端口选举
1.根桥选举:在整个二层网络中,选举出一台交换机作为根桥,选举规则是BID小的优先。BID由桥优先级+MAC地址组成,桥优先级的取值范围为0-61440,必须是4096的倍数,默认为32768.
2.根端口选举:每台非根网桥选举出一个根端口,根端口的选举规则是:1.到达根桥cost小的优先 2.对端交换机BID小的优先 3.端口ID小的优先 端口ID由端口优先级+端口索引号组成。端口优先级取值范围是0-240,必须是16的倍数,默认为128,端口索引号是每个端口的内部编号,每个端口都有唯一的内部编号
3.指定端口的选举:每条线路上选举一个指定端口。端口对比发出的BPDU和收到的对端的BPDU,发出的向量更优则本端是指定端口,对端的更优,则对端是指定端口。
实验拓扑
实验需求
- 开启所有设备,等待STP收敛后观察STP状态
- 使SW4成为根网桥
- 使闭塞端口出现在SW2上
- 把SW1上连接的PC的端口配置为边缘端口
实验步骤:
1.等待STP收敛后,查看STP运行状态,找出根网桥,阻塞端口
步骤1:根据HCL模拟器的运行机制,SW1的Mac地址应该是最小的,会成为根网桥,在SW1上查看STP运行状态,确认SW1为根网桥
[SW1]dis stp
-------[CIST Global Info][Mode MSTP]-------
Bridge ID : 32768.6238-7c1a-0100
Bridge times : Hello 2s MaxAge 20s FwdDelay 15s MaxHops 20
Root ID/ERPC : 32768.6238-7c1a-0100, 0
RegRoot ID/IRPC : 32768.6238-7c1a-0100, 0
RootPort ID : 0.0
BPDU-Protection : Disabled
Bridge Config-
Digest-Snooping : Disabled
TC or TCN received : 7
Time since last TC : 0 days 0h:2m:47s
步骤2:根据STP计算机制,所有链路开销一致,阻塞端口应该在SW4上,在SW4上查看端口状态,确认SW4的G1/0/2被阻塞
[SW4]dis stp brief
MST ID Port Role STP State Protection
0 GigabitEthernet1/0/1 ROOT FORWARDING NONE
0 GigabitEthernet1/0/2 ALTE DISCARDING NONE
2.使SW4成为新的根网桥
步骤1:修改SW4的优先级为4096
分析:要想使SW4成为根网桥,最好的办法就是让SW4的优先级成为全网最小。默认优先级都为32768,只要把SW4的优先级改成比32768小就行
[SW4]stp priority 4096
[SW4]%Aug 17 11:26:13:805 2023 SW4 STP/6/STP_DETECTED_TC: Instance 0's port GigabitEthernet1/0/2 detected a topology change.
步骤2:在SW4上查看STP运行状态,发现SW4成为新的根网桥
[SW4]dis stp
-------[CIST Global Info][Mode MSTP]-------
Bridge ID : 4096.6238-8476-0400
Bridge times : Hello 2s MaxAge 20s FwdDelay 15s MaxHops 20
Root ID/ERPC : 4096.6238-8476-0400, 0
RegRoot ID/IRPC : 4096.6238-8476-0400, 0
RootPort ID : 0.0
BPDU-Protection : Disabled
Bridge Config-
Digest-Snooping : Disabled
TC or TCN received : 6
Time since last TC : 0 days 0h:1m:4s
3.使得阻塞端口出现在SW2上
分析:SW4成为了根网桥,按照STP计算机制,阻塞端口此时应该在SW1上。要使得阻塞端口到SW2上,就需要让SW2到SW1的cost比SW4到SW1的更大
步骤1:在SW2上进入到g1/0/2接口的接口视图,修改stp cost为1000
[sw2]int g1/0/2
[sw2-GigabitEthernet1/0/2]stp cost 1000
[sw2-GigabitEthernet1/0/2]%Aug 17 11:30:37:063 2023 sw2 STP/6/STP_NOTIFIED_TC: Instance 0's port GigabitEthernet1/0/1 was notified a topology change.
步骤2:在SW2上查看STP接口状态,发现SW2的g1/0/2接口已经成为新的阻塞端口
[sw2]dis stp brief
MST ID Port Role STP State Protection
0 GigabitEthernet1/0/1 ROOT FORWARDING NONE
0 GigabitEthernet1/0/2 ALTE DISCARDING NONE
4.把SW1连接PC的所有接口配置为边缘端口
[SW4]int g1/0/3
[SW4-GigabitEthernet1/0/3]stp edged-port
Edge port should only be connected to terminal. It will cause temporary loops if port GigabitEthernet1/0/3 is connected to bridges. Please use it carefully.
[SW4-GigabitEthernet1/0/3]qu
[SW4]int g1/0/4
[SW4-GigabitEthernet1/0/4]stp edged-port
Edge port should only be connected to terminal. It will cause temporary loops if port GigabitEthernet1/0/4 is connected to bridges. Please use it carefully.
注:配置边缘端口的目的是防止用户端接收到BPDU。