生成树又叫CST spanning tree protocol
HUB工作原理:复制和放大
交换机原理:
生成树存在的原因:
解决二层环路:手动解决闭环问题(拔掉网线)、生成树
STP中交换机的角色:
根网桥、非根网桥(交换机的前身是网桥,交换机是硬件转发,网桥是软件转发,网桥端口密度小,交换机端口密度大)
STP中端口的角色:
根端口-RP(每台非根桥上有且仅有一个根端口);
指定端口-DP(在每条链路上有且仅有一个指定端口,有几根线就有几个DP,作用是发送配置的BPDU,指定端口是在每一条链路上面进行选举的);
阻塞端口-blocking;
STP的接口状态:
1、禁用(disable):该接口不能收发BPDU,也不能收发业务数据帧,例如接口为DOWN
5、转发(forwarding):处于该状态的接口可以正常收发业务数据帧,也会进行BPDU处理,接口的角色需要是根接口或指定接口才能进入转发状态。
根网桥选举原则:
2、Bridge id = priority (32768) + MAC
根端口的选举原则:
1、到根网桥的开销最小
2、直连网桥的bridge-id最小
3、对方的port-id(端口优先级默认128+端口编号)最小
指定端口的选举原则:
1、到根网桥的开销最小
2、所在网桥的bridge-id=priority(32768)+MAC最小
3、自己的port-id最小
注意:一般根网桥上的接口都是DP,但不是一定(一台交换机,自己连自己,就有一个端口是阻塞)
TCN BPDU拓扑变更提示+TCA拓扑变更确认+TC拓扑变更+message age消息寿命
STP重收敛过程慢:
1、直连故障:被阻塞的端口会从blocking状态,依次切换到listening及learning状态,最终进入forwarding状态;直连链路故障,端口状态切换,延时30s后进入forwarding状态。
2、非直连故障:由于被阻塞端口上不再收到更优的BPDU,因此20s后端口开始从blocking状态依次切换到listening、learning及forwarding状态;非直连故障会导致50s左右的恢复时间,等于max age加上2倍的forward delay时间
根网桥发生故障:(故障恢复过程)
1、当根桥发生故障时,会停止发送BPDU报文
2、非根网桥等待MAX Age计时器(20s)超时,从而导致以及收到的BPDU报文失效,又接收不到根桥发送的新的BPDU报文,从而得知上游出现故障
3、非根桥会互相发送配置BPDU,重新选举新的根桥
4、经过重新选举后,非根桥的A端口经过两个转发延迟之后恢复转发状态(非根桥会在BPDU老化之后开始根桥的重新选举,根桥故障会导致50s左右的恢复时间)
直连链路故障:
当交换机网络稳定时检测到根端口的链路发生故障,则其备用端口会经过两倍的Forward Delay(15s)时间进入用户流量转发状态
非根桥交换机检测到直连链路物理故障后,会将预备端口转换为根端口;直连链路故障,备用端口会经过30s后恢复转发状态。
拓扑改变导致MAC地址表错误:
TCN BPDU在网络拓扑发生变化的时候产生;报文格式:协议标识、版本号、类型;拓扑变化:会使用到BPDU中Flags的TCA和TC位
收到TC后,300s会变成15s
命令区别:
确定根网桥后,只有根网桥会发送配置BPDU,非根网桥转发配置BPDU,配置BPDU的报文格式:
PID(协议ID,对于STP而言,该字段的值总为0)+ PVI(协议版本ID,对于STP而言,该字段的值总为0)
BPDU type(指示本BPDU类型,0x00表示本报文为配置BPDU;0x80表示为TCN BPDU--当网络故障时,交换机向上发送拓扑变更提示)
Flags(STP只使用该字段的最高及最低两个比特位,最低位是TC标志(根网桥发送)--拓扑变更,最高位是TCA标志--拓扑变更确认)
ROOT ID(根网桥的桥ID)+ Bridge ID + Port ID
RPC(根路径开销,到达根桥的STP cost)
Message age(消息寿命,从根网桥发出BPDU之后的秒数,每经过一个网桥都加1,本质上就是到达根桥的跳数)+运行STP协议的网络中非根桥设备收到配置BPDU报文后,报文中的Message Age和Max Age会进行比较:1、如果message age 小于等于max age,则该非根桥设备继续转发配置BPDU报文 2、如果大于,则该配置BPDU报文将被老化,该非根桥设备直接丢弃该配置BPDU,可认为网络直径过大,导致根桥连接失败。
Max Age(最大寿命,当一段时间未收到任何BPDU,生存期到达最大寿命时,网桥认为该接口连接的链路发生故障,默认是20s)
Hello Time(根网桥连续发送的BPDU之间的时间间隔,默认2s)
Forwarding Delay(转发延迟,在侦听和学习状态所停留的时间间隔,默认是15s) + 链路故障会引发网络重新进行生成树的计算,生成树的结构将发生相应的变化,不过重新计算得到的新配置消息无法立刻传遍整个网络,如果新选出的根端口和指定端口立刻就开始数据转发的话,可能会造成临时环路;为此,STP采用了一种状态迁移机制,新选出的根端口和指定端口需要经过2倍的转发延迟后才能进入转发状态,这个延时保证了新的配置消息传遍整个网络,从而防止了临时环路的产生)
STP生成树的过程
(主要比较4个参数进行角色选举:根桥ID、根路径开销、网桥ID、端口ID)
1、选举根桥
2、选举根端口
3、选举指定端口
4、阻塞非指定端口
STP端口状态迁移:
1、端口初始化或者使能,进入BLOCKing状态
2、端口被选为根端口或者指定端口,进入Listening状态
3、端口的Forward Delay时间(15s)到,进入learning状态;再经过一个Forward Delay,进入Forwarding状态
4、端口不再是根端口、指定端口,进入Blocking状态
5、端口被禁用或者链路失效