1、STP产生的背景:
为了提高网络可靠性,交换网络中通常会使用冗余链路,然而,冗余链路会给交换网络带来环路风险,并且导致广播风暴以及MAC地址表不稳定等问题,进而影响到用户的通信质量;STP可以在提高可靠性的同时又避免环路带来的各种问题。
2、STP的作用
防止交换环路(消除环路)和链路备份
3、无STP配置的问题(网络环路引发的问题):
- 1.广播风暴
- 2.导致MAC表震荡
- 3.多帧复制
4、MAC地址的过期时间
MAC地址表:它有一个300秒的维持时间;一旦有广播,泛洪、未知单播、组播、广播。
5、STP的工作原理
就是通过运算STP算法,来阻塞特定的接口,实现冗余无环的网络
6、STP的算法
- 1.选出整个网络中的根桥。(桥:就是交换机的意思),根交换机。----选一个老大出来。
选择根桥的方式:通过优先+MAC地址比较进行选择,越小越优先。
BID=优先级+MAC。优先级的范围:0-65535 .默认值:32768. - 2.在每个非根桥上选举一个根端口(只有一个);简单的选择标准:离根桥最近的端口就是根端口。
- 复杂点的选择标准:
1.依据该端口的根路径开销
2.依据对端的BID(桥ID)
3.依据对端的PID(port + 接口号)
4.依据本端的PID - 3.在每个段的链路中选择一个指定端口。(每个段就是两台设备之间的链路,直连的这条线,就叫段。)默认情况下:根桥上的端口都是指定端口。
- 4.剩下的就是我们的阻塞端口,也叫非指定端口。(预备端口)
7、STP命令
- 关闭STP功能的命令
[Huawei]stp disable
- 开启STP功能的命令
[Huawei]stp enable
- 修改优先级的命令:
[Huawei]stp priority 0
[Huawei]stp root primary
[Huawei]stp root secondary
- 查看STP的命令:
dis stp、dis stp br
8、端口状态
通过实验,我可以看到,端口从关闭到开启,大概需要(30-50秒)的时间。
-
1.端口未启用的状态。
默认的情况下所有端口都参与生成树规则,不管对端接的是交换机还是主机。 -
2.阻塞状态(Blocking):预备端口,非指定端口状态,端口处于该状态下,它是不会转发数据帧的,也不会学习MAC地址表,会接受和处理BPDU报文,但是不会向外发生BPDU。–关注BPDU的目的–为了随时启用备用端口。
-
3.侦听状态(Listening):
它是不会转发数据帧,也不会学习MAC地址表,它会接收并发送BPDU报文。(维持15S),在维持15S的过程中,通过BPDU 确定我们的根桥,确定端口角色。 确定端口角色后,非指定端口角色的状态,马上就回到Block状态。其他的端口,就会直接进入到下一个状态,学习状态。 -
4.学习状态(Learning):
它是不会转发数据帧,会学习MAC地址表,接收并发送BPDU。这个过程会维持15秒。 15秒之后,我们的根端口和指定端口,就会进入到转发状态。 -
5.转发状态;
他会正常转发数据帧,学习MAC地址表,接收并发送BPDU;最终我们的根端口和指定端口就会停留在转发状态。 -
故障情况:
1.如果是和阻塞端口的直连链路断掉了。 要历经30秒,开启我的阻塞端口。
2.对端链路有问题的情况。 这个收敛过程需要50s.
9、如何实现真正的冗余。
- 在我们的生产树里面,对于BPDU这个报文,它其实是有两种:
- 一种是:标准的BPDU (配置BPDU)
- 二种是:特殊的BPDU(TCN BPDU)—拓扑变更通告(TCN)
10、三种配置实验
- 1.边缘端口的配置
目的:为了减少接口收敛时间,建议将接PC的接口都配置成边缘端口。
配置命令:stp edged-port enable 。 - 2.STP根保护功能:
[Huawei-Ethernet0/0/1]stp root-protection
- 3.STP BPDU防护:因为上面哪个保护机制,不能限制用户不能接交换机。
STP BPDU机制:可以检测到你接的是PC还是交换机。[Huawei]stp bpdu-protection
自动恢复机制:[Huawei]error-down auto-recovery cause bpdu-protection interval 30