目录
BPDU报文
BPDU主要进行根桥、端口角色的选举和通知拓扑结构发生变化
STP每隔2s会发送一次BPDU报文,非根桥连续三次没有收到BPDU,表示发生故障
STP/RSTP报文
版本补充:VBST是华为私有协议,主要用于和思科交换机做兼容
根桥BID: 等于桥ID,则认为自己是根桥
根桥ID : 不等于桥ID,则认为交换机不是根桥
MSTP报文
MST配置标识
MST配置标识为MSTP专有字段(判断是否为同一MST域)
Config ID format Selector:固定为0
Config name:域名(32字节)
Config Revision:修订等级
Config digest:利用HMAC-MD5算法将域中VLAN和实例的映射关系加密成16字节的摘要
MSTI配置信息
MSTI配置信息为MSTP专有字段,携带关于MST域的一些设备信息(根交换机、开销等)
MSTI Flags:MSTI标志
第一位到第七位同RSTP,第8位为Master标志位,取代了RSTP的TCA标志位
MSTI Regional Root Identifier:MSTI域根交换机ID。
Internal root path cost:MSTI内部路径开销(从本端口到MSTI域根交换机的累计路径开销)
Bridge Identifier Priority:发送此BPDU网桥的优先级
Port Priority:发送此BPDU的端口的优先级
Remaining hops:BPDU报文在MSI中的剩余跳数
BPDU标记域
STP和RSTP有些不同
MSTP 标记域
第Bit0到第Bit6同RSTP,第Bit7为Master标志位,取代了RSTP的TCA标志位
BPDU介绍
BPDU相关计时器
关于STP计时器的配置,只需要在根桥配置即可
Message age :BPDU存活时间,根桥发送是为0,每经过一台交换机会增加
Max age:BPDU老化时间,默认是20s,最大40s
如果Max age小于24s,每经过一台交换机Message age+1
如果Max age为24~39s,Message age+2
如果Max age为40s,Mssage age+3
当Message age等于Max age,则认为该BPDU失效
Hello timer:BPDU发送间隔,默认是2s
Forwarding delay:等待延迟,默认是15s
BPDU类型-4种
BPDU可以分为两大类
配置BPDU 和 TCN BPDU
其中配置BPDU可以分为三种(可以通过TCA和TC字段区分)
分别是普通的配置BPDU、TC BPDU、TCA BPDU
主要根据BPDU标记域的TCA和TC字段标识
配置 BPDU
周期发送 BPDU报文的标记域为 TCA=0 TC=0
STP和RSTP类型字段有些不同
STP----0X00 RSTP----0X02-RST BPDU MSTP----0X02-MST BPDU
配置BPDU的作用
选举根桥、端口角色
配置BPDU的目的MAC为组播:0180-c200-0000
STP的配置BPDU发送方式
没有选举根桥前,所有设备都会发送配置BPDU,选举根桥后只有根桥会发送配置BPDU
其它非根桥设备在RP端口收到根桥发送过来的配置BPDU后,才会触发向所有指定端口复制一份此配置BPDU,然后发送出去,不会主动发
非根网桥指定端口只有在接收到次优配置BPDU时,才会主动发送最优BPDU
RSTP的配置BPDU发送方式
没有选举根桥前,所有设备都会发送配置BPDU
在选举出根桥后即拓扑稳定后,无论非根桥是否从RP端口收到根桥发来的配置BPDU,都会按照Hello Timer规定的时间在所有指定端口发送关于根的配置BPDU
(除非根端口的BPDU老化或者收到更优的BPDU报文)
STP的TCA BPDU
拓扑改变确认BPDU,是一种配置BPDU BPDU报文的标记域为TCA=1,TC=0
在STP场景中用来确认TCN BPDU
RSTP、MSTP也存在此报文,是为了向下兼容STP
STP的TCN BPDU
设备发现链路故障后发送
RSTP、MSTP也存在此报文,是为了向下兼容STP
类型字段固定为0X80
STP中传递拓扑变更信息---结合BPDU标记域的TC和TCA位来实现
STP为什么需要TCN BPDU报文
在交换网络种,交换机依赖MAC地址表转发数据,缺省情况下MAC表项的老化时间是300s,如果生成树拓扑发生改变,交换机的转发路径也会改变,当MAC地址表未及时老化将导致数据转发发生错误,因此需要及时更新MAC地址表项
此时就可以通过发送TCN BPDU报文来将MAC地址表项的老化时间缩短为15s,达到及时更新MAC地址表项的目的
STP发送TCN BPDU的条件
最早认为任何端口进入到Forwarding状态或者进入到Disable状态时,认为拓扑发生变化,后来STP对拓扑变化的定义做了优化
- 当DP端口进入到Forwarading状态(建议将连接终端设备的DP端口设置为边缘端口进行优化)
- RP失效或者RP进入Forwarding状态
- 根桥的DP失效直接发送TC BPDU(非根桥DP端口失效不认为拓扑发生变化)
STP的TCN BPDU工作原理--怎样达到更新拓扑的目的(通过TCN、TC、TCA报文)
TC拓扑变更消息--清空从此接口学到的MAC地址表----具体做法不是直接清空,而是将MAC
地址表的300s老化时间更改位15s
- SWC感知到网络拓扑发生变化后,就会不间断的发送TCN BPDU报文
- SWB收到TCN报文后,会将BPDU Flags的TCA位置1,然后发送给SWC,告知SWC停止发送TCN BPDU报文
- 然后SWB向根桥转发SWC发来的TCN BPDU报文
- SWA把BPDU报文中的Flags的TC位设置为1后发送(持续35s),通知下游设备把MAC地址表项的老化时间更改为Forward Delay时间(15s)
注意:根桥不需要回复TCA确认消息
TC BPDU
拓扑改变配置BPDU,是一种配置BPDU 标记域的TCA=1,TC=1或者TCA=0,TC=1
STP、RSTP、MSTP都存在此TC BPDU报文
RSTP/MSTP中对拓扑变更机制做了优化——只使用TC报文
判断拓扑变化的标准改变
只要当非边缘端口迁移到Forwarding状态时,就会认为拓扑发生变化
工作原理发生变化
网络拓扑发生变化时,直接由变更点交换机向全网发送TC置位的BPDU报文,而不是先通知根桥,再由根桥向全网发送TC报文
#
变更点交换机为本交换机设备的所有非边缘指定端口启动一个TC While Timer(2倍的Hello Time)在这个时间内,清空所有端口上学习到的MAC地址
#
同时,由非边缘端口向外发送RST BPDU,其中TC置位,一旦端口的TC while Timer超时,则停止发送RST BPDU
#
其它交换设备收到 TC置位的RST BPDU后,清空所有端口学习到的MAC地址(除了收到此RST BPDU的端口),然后也为自己所有的非边缘指定端口和根端口启动TC While Timer,重复上述过程