背景
由于交换机工作原理,很容易出现MAC地址漂移和广播风暴,STP(Spanning Tree Protocol)是一项为解决二层环路而设计的网络协议,通过阻断冗余链路实现网络无环路。
原理
报文
根桥选举
桥ID:优先级(0- 28673,4096的倍数,16bit)+MAC地址(48bit)
桥ID越小越优先,最优的成为根桥
开销
华为为STP提供3种计算方法,分别是802.1d,802.1t,华为
开销计算与接口带宽,工作模式有关,通常来说带宽越大开销越小
端口角色
RP根端口,DP指定端口,NDP非指定端口(阻塞端口)
- 一般来说,根桥上都是DP(自环除外)
- 每段链路都有一个DP
- 非根网桥上有且仅有一个RP,其到网桥的开销是设备中最小的
端口选举
接口ID:接口优先级(4 bit,16的倍数,0-240,缺省128)+接口编号(12bit)
接口ID越小越优
状态机
Disable失效·接口down
Blocking不学不转发不处理BPDU
Listening不学不转发处理BPDU
Learning学MAC不转发处理BPDU
Forwarding学MAC转发处理BPDU
当Blocking切换到Listening最大需要等待20s(Message age)
当Listening切换到Learning需要等15s(Forwarding delay)
当Learning切换到Forwarding需要等15s(Forwarding delay)
拓扑感知
直连故障
故障端口正好能被交换机感知,NDP马上从Blocking转换到Listening,等待30s进入转发。
非直连故障
通过·BPDU的message age来判断,要多等20s
新增设备
拓扑发生变更时发送TCN BPDU,一路转发至主桥,期间交换机收到恢复TCA,主桥收到后发送TC通告全网。如图绿色是TC,红色是TCN,蓝色是TCA
缺点
由此可见当链路故障STP至少需要30s来切换冗余链路,拓扑变更先通知到主桥由主桥进行抉择,网络收敛慢,不灵活。
缺乏保护,抗攻击能力差
思考
为什么桥优先级步长为4096,为什么接口优先级步长为16
桥优先级2B但只有前4b用于表优先级所以没次+1就相当于+4096(2^12)接口优先级同理,而这多的12b正好和VLAN ID一值的占位(你知道我要说什么)