STP学习
Posted 丢爸
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STP学习相关的知识,希望对你有一定的参考价值。
STP学习
交换网络中会出现冗余链路,冗余链路会给交换网络带来环路风险,并导致广播风暴以及MAC地址表不稳定等问题,进而会影响到用户的通信质量,生成树协议STP(Spanning Tree Protocol)可以提高可靠性的同时避免环路带来的各种问题。
STP选举
- 每个广播域选举一个根桥(选择BID[网桥ID=优先级+MAC地址]小的作为根桥)
- 每个非根交换机选择一个根端口
- 该非根桥的交换机的端口到根网桥的路径成本最低
- 端口另一端的设备的网桥ID(BID)最小
- 选择端口标识小的(端口优先级0-240(默认128)+端口号(Ethernet 0/0/0)
- 每个段选择一个指定端口(Designated Port),根网桥上全是DP,对面就是RP
- 该端口所在交换机到根桥路径成本最低
- 所在交换机网桥ID(BID)最小
路径代价
10 Gbps-----2
1 Gbps-----4
100Mbps-----19
10 Mbps------100
注
根端口(RP)作用:当有下游交换机发送流量和控制消息时,它向根桥方向发送
指定端口(DP)作用:从根桥发送数据(BPDU),由指定端口转发
BPDU
- 配置BPDU
- TCN BPDU
配置BPDU
包含了桥ID、路径开销、和端口ID等参数,STP协议通过交换机之间传递配置BPDU来选择根交换机,以及确定每个交换机端口的角色和状态,在初使化过程中,每个桥都主动发送配置BPDU,在网络拓扑稳定以后,只有根桥主动发送配置BPDU,其他交换机在收到上游传来的配置BPDU后,才会发送自己的配置BPDU。
配置BPDU中包含了足够多的信息来保证设备完成生成树计算,其中包含的重要信息如下
- 根桥ID:由根桥的优先级和MAC地址组成,每个STP网络中有且仅有一个根
- 根路径开销:到根桥的最短路径开销
- 指定桥ID:由指定桥的优先级和MAC地址组成
- 指定端口ID:由指定端口的优先级和端口号组成
- Message Age:配置BPDU在网络中传播的生存期
- 如果配置BPDU是根桥发出的,则Message Age为0.否则,Message Age是从根桥发送至当前桥接收BPDU的总时间,包含传输延时等。实际实现中,配置BPDU报文每经过一个交换机,Message Age加1
- Max Age:配置BPDU在网络中传播的最大生存期
- 指BPDU报文的老化时间(默认20S),可在根桥上通过命令人为改动这个值。Max Age通过配置BPDU报文的传递,可以保证Max Age在整网中一致。非根桥设备收到配置BPDU报文后,会将报文中的Message Age和Max Age进行比较,如果Message Age 小于Max Age,则该非根桥设备会继续转发配置BPDU报文,如果Message Age 大于Max Age,则该配置BPDU报文将被老化掉,该非根桥设备将直接丢弃该配置BPDU,并认为是网络直径过大,导致根桥连接失败。
- Hello Time:配置BPDU发送的周期
- Hello Time是指运行STP协议的设备发送配置BPDU的时间间隔(默认2S),用于检测链路是否存在故障。交换机每隔Hello Time时间会向周围的交换机发送配置BPDU报文,以确认链路是否存在故障。当网络拓扑稳定后,该值只有在根桥上修改才有效。
- Forward Delay:端口状态迁移的延时
TCN BPDU
指下游交换机感知到拓扑发生变化时向上游发送的拓扑变化通知
端口状态变化
端口状态 | 作用 | 说明 |
---|---|---|
Forwarding | 端口既转发用户流量也转发BPDU报文 | 只有根端口和指定端口进入Forwarding状态 |
Learning | 设备会根据收到的用户流量构建MAC地址表,但不转发用户流量 | 过渡状态,增加Larning状态防止临时环路 |
Listening | 确定端口角色,将选出根桥、根端口和指定端口 | 过渡状态 |
Blocking | 端口仅仅接收并处理BPDU,不转发用户流量 | 阻塞端口的最终状态 |
Disabled | 端口不转发BPDU报文,也不转发用户流量 | 端口状态为Down |
STP实验
#路径开销标准
[Huawei]stp pathcost-standard ?
dot1d-1998 IEEE 802.1D-1998
dot1t IEEE 802.1T
legacy Legacy
# LSW4-MAC
<Huawei>display bridge mac-address
System bridge MAC address: 4c1f-cc19-69ee
<Huawei>display stp brief
MSTID Port Role STP State Protection
0 GigabitEthernet0/0/1 DESI FORWARDING NONE
0 GigabitEthernet0/0/2 ROOT FORWARDING NONE
# LSW5-MAC
<Huawei>display bridge mac-address
System bridge MAC address: 4c1f-cccf-4c84
<Huawei>display stp brief
MSTID Port Role STP State Protection
0 GigabitEthernet0/0/1 ALTE DISCARDING NONE
0 GigabitEthernet0/0/3 ROOT FORWARDING NONE
0 GigabitEthernet0/0/4 DESI FORWARDING NONE
# LSW6-MAC
<Huawei>display bridge mac-address
System bridge MAC address: 4c1f-cc19-2751
<Huawei>display stp brief
MSTID Port Role STP State Protection
0 GigabitEthernet0/0/2 DESI FORWARDING NONE
0 GigabitEthernet0/0/3 DESI FORWARDING NONE
0 GigabitEthernet0/0/5 DESI FORWARDING NONE
#1. 选择根桥(RB):默认优先级为32768,那么MAC地址小的就是BID小的,LSW6即为根桥
#2. 选择根端口(RP):默认cost都是相同,即LSW4上面的G0/0/2和LSW5的G0/0/3为根端口
#3. 查找指定端口(DP):根网桥上的都是指定端口,每个段需要选择一个指定端口,LSW4上的G0/0/1和LSW5上的G0/0/1至根桥的cost是相同的,此时需要判断BID,LSW4交换机的MAC地址小一些,因此LSW4上的G0/0/1设置为DP,LSW5上的G0/0/1设置为AP(Alternate Port)
#修改LSW4的优先级(只能是4096倍数),修改之后,端口状态信息发生改变,LSW5上的G0/0/1端口状态由DISCARDING变为FORWARDING
<Huawei>system-view
Enter system view, return user view with Ctrl+Z.
[Huawei]stp priority 4096
[Huawei]
Dec 31 2021 07:30:33-08:00 Huawei DS/4/DATASYNC_CFGCHANGE:OID 1.3.6.1.4.1.2011.5
.25.191.3.1 configurations have been changed. The current change number is 4, th
e change loop count is 0, and the maximum number of records is 4095.
#优先级修改完成后,查看stp的端口状态信息--LSW4
[Huawei]display stp brief
MSTID Port Role STP State Protection
0 GigabitEthernet0/0/1 DESI FORWARDING NONE
0 GigabitEthernet0/0/2 DESI FORWARDING NONE
#优先级修改完成后,查看stp的端口状态信息--LSW5
<Huawei>display stp brief
MSTID Port Role STP State Protection
0 GigabitEthernet0/0/1 ROOT FORWARDING NONE
0 GigabitEthernet0/0/3 ALTE DISCARDING NONE
0 GigabitEthernet0/0/4 DESI FORWARDING NONE
#优先级修改完成后,查看stp的端口状态信息--LSW6
<Huawei>display stp brief
MSTID Port Role STP State Protection
0 GigabitEthernet0/0/2 ROOT FORWARDING NONE
0 GigabitEthernet0/0/3 DESI FORWARDING NONE
0 GigabitEthernet0/0/5 DESI FORWARDING NONE
通过WireShark抓包,查看STP内容
以上是关于STP学习的主要内容,如果未能解决你的问题,请参考以下文章