一、STP协议出现背景(Spanning Tree Protocol,生成树协议)
二层环路带来的问题:广播风暴;
MAC地址表的震荡;
二、STP定义
stp是二层网络中用于消除环路的协议,通过阻断冗余链路来消除,网络中可能存在的环路;
当前活动路径发生故障时,激活冗余备份链路,恢复网络连通性;
分析:STP会临时阻塞冗余链路的端口,被阻塞的端口不能收发数据,这时,就不会形成环路。
当主链路DOWN,被阻塞的链路会被启用,保证数据正常转发。
思考:阻塞端口怎么选?如下图,我们肯定希望阻塞10Mbps的。但阻塞谁,肯定有一个阻塞机制。
三、STP相关概念
BDPU:
1、定义:桥协议数据单元,用于传递STP协议相关报文
2、分类:
(1)配置BPDU:传递STP配置信息
网桥通过交互配置BPDU,获取STP计算所需的参数;
配置BPDU基于二层组播方式发送,目 的地址:01-80-C2-00-00-00;
配置BPDU只由根桥周期性发出,发送周期为Hello Time(2秒);
配置BPDU格式
配置BPDU老化时间为Max Age即10个hello time;
总结:配置BPDU是传递生成树选举所需信息的报文
(2)TCN BPDU:通告拓扑变更信息
注意区分:TC BPDU(根桥发出的拓扑变化信息,其他交换机收到后会将MAC地址表老化时间由300秒缩短到15秒)、
TCA BPDU(拓扑变化确认)
TCN BPDU(非根交换机发的拓扑变化通知,用于报错使用) 两者是属于配置BPDU中不同的flag置位
四、STP选举机制
BID中的优先级范围:
根桥选举的情况
思考1:下图交换机,谁是根网桥
答案1:A交换机
思考2:下图交换机的接口,谁是根端口
答案2:B的1口、C的1口
思考3:一个交换机上有多个口,到达根网桥的开销都是相同的,选不出来根端口,怎么办?
答案3:依据对端交换机BID小的优先级选举根端口,则D交换机的1口为根端口
思考4:依据端口ID小的优先的情况?
答案4:E的1端口为根端口
综上:选举出的根端口如下图所示:
指定端口的选举情况
阻塞端口:
STP选举完后,修剪的网络拓扑,一颗没有环路的树
注:选举根桥和端口角色同步进行,不分先后;
stp计算时间是30秒;
总结:STP桥角色:根桥、非根桥
端口角色:指定端口、根端口、阻塞端口
port id:格式:优先级+端口号,小优
优先级0-240,默认128,必须是16的倍数
五、stp初始化流程---端口状态
端口状态
disable:禁用状态,被手动shutdown的端口。不发送配置BPDU,不进行MAC地址学习,不收发数据。
blocking:阻塞状态:不发送配置BPDU,不进行MAC地址学习,不收发数据。
listening:监听状态,发送配置BPDU,不进行MAC地址学习,不收发数据,持续15秒。
learning:学习状态,发送配置BPDU,进行MAC地址学习,不收发数据,持续15秒。
forwarding:转发状态,发送配置BPDU,进行MAC地址学习,收发数据
发送延迟的过程:
从中间状态listening经过一个延迟进入另一个中间状态learning;
从中间状态learning经过一个延迟进入另一个中间状态forWording
思考:当交换机A和B之间的链路down,故障切换(网络收敛)需要多长时间?
答案:需要30秒,因为上图中虽然有很多的阻塞口,可到底启用哪个口,就需要重新进行STP的选举过程。
六、STP计时器
hello time:2秒,配置BPDU的发送周期
max age:20秒,判断链路故障的时间,10个hello time周期
forwarding delay:15秒,状态切换延迟
STP收敛时间总结:
(1)初次收敛时间:
30秒(15侦听+15s学习):存在直连检测=本地仅存在一个阻塞端口,可以收到来自根桥的BPDU
分析:SW0上2口是阻塞口,当其上1口链路故障,2口只需经过30S就可以故障切换,因为它可以收到来自根桥的BPDU,所以不需要经过额外的20秒的故障检测机制。
(2)拓扑故障再收敛时间:
若某个端口断开,将发送次优BPDU(以本地为根)给其他邻居交换机,其他交换机无视该数据,进行20s max age计时,同时阻塞接口进入15s侦听,15s学习,故总50s
七、STP拓扑变更机制
所以:拓扑变更后,要及时通知给上行交换机
工作原理:
1.交换机检测到拓扑变更,交换机向根网桥发起TCN BPDU;
max age超时/有接口变更为转发状态,判断为拓扑发生变更
交换机上有端口从forwarding或learning状态转变为blocking;
2.沿途的非根桥收到TCN BPDU后,会继续向根桥转发,并在根桥的下一轮配置BPDU中,把TCA(TC acknowledge)位置位
3.根桥收到TCN BPDU后,在下一轮配置BPDU中,把其TC位置位;
4.所有交换机收到TC置位的BPDU后,MAC地址表老化时间由300秒缩短到15秒
八、缺点
拓扑变更不灵活,主机频繁上下线,网络会产生大量TCN,导致网卡;
收敛时间长:拓扑层次越多,收敛时间越长,一个端口从blocking到forwarding至少需要30秒;
故障切换时间太长;
九、链路开销标准:
链路速率:100Mbps\1000Mbps\10Gbps
标椎:802.1D-1998
802.1t(华为标准)
私有标准(华三交换机私有)
十、STP实验