要使网络更加可靠,减少故障影响的一个重要方法就是“冗余”。当网络中出现单点故障时,冗余可以激活其他备份组件,以使网络链接不中断。
冗余在网络中是必需的,冗余的拓扑结构可以减少网络的中断时间。单条链路、单个端口或者单台网络设备都有可能发生故障和错误,进而影响整个网络的正常运行,此时,如果有备份的链路、端口或者设备就可以尽量减少丢失的连接,保障网络的不间断运行。生成树协议( SpanningTree Protocol, STP )能够有效解决冗余链路带来的环路问题,大大提高了网络的健壮性、稳定性、可靠性和容错性。
一、冗余性与STP
1.STP的由来
为了解决冗余链路引起的问题,IEEE通过了IEEE 802.1d协议,即STP。JEEE 802. 1d协议通过在交换机上运行一套复杂的算法,使冗余端口处于“阻塞状态”,使网络中的计算机在通信时只有一条链路生效,而当这条链路出现故障时,TEEE 802. 1d协议将会重新计算出网络的最优链路,将处于“阻塞状态” 的端口重新打开,从而确保网络连接稳定可靠。
在交换式网络中,使用STP可以将有环路的物理拓扑变成无环路的逻辑拓扑,为网络提供了安全机制,使冗余拓扑中不会产生交换环路问题。
2.STP中的术语
STP中定义了根桥( Root Bridge)、根端口(Root Port, RP )、指定端口( Designated Port,DP)和路径开销(Path Cost)等概念,通过构造一棵自然树的方法达到阻塞冗余环路的目的,同时实现链路备份和路径最优化。用于构造这棵树的算法称为生成树算法(Spanning Tree Algorithm, STA)。STP不断检测网络,以检测链路故障。当网络拓扑发生变化时,运行STP的交换机会自动重新配置其端口,以避免环路产生或者链路断开。
(1)桥
因为性能方面的限制等因素,早期的交换机一般只有两个转发端口,所以那时的交换机常常被称为“网桥”或简称为“桥( Bridge )”。在IEEE的术语中,“桥)一直沿用至今,但现在已不再只是指只有两个转发端口的交换机,而是泛指具有任意多个端口的交换机。
(2)桥的MAC地址
一个桥有多个转发端口,每个端口都有一个MAC地址。通常,交换机会把端口编号最小的端口的MAC地址作为整个桥的MAC地址( Bridge MAC Address )。
(3)桥ID
一个桥 (交换机)的桥ID ( Bridge Identifier, BID) 由两部分组成,前面2字节是这个桥的桥优先级值,后面6字节是这个桥的MAC地址。桥优先级的值可以手动设置,其默认值为0x8000(相当于十进制数32768 )。
(4)端口ID
一个桥(交换机)端口ID( Port Identifier, PID)的定义方法有很多种,常见的有两种。
第一种:端口ID由2字节组成,字节1是该端口的端口优先级值,字节2是该端口的端口编号。
第二种:端口ID由2字节(16位)组成,前4位是该端口的端口优先级值,后12位是该端口的端口编号。
端口优先级的值可以手动设定,也可以由设备自动生成。由设备自动生成端口ID时,不同设备厂商所采用的PID的定义方法可能不同。
3.树的基本理论
在一个具有物理环路的交换网络中,交换机通过运行STP,自动生成一个没有环路的逻辑拓扑。这个无环逻辑拓扑也称为STP树( STP Tree ),树节点为某些特定的交换机,树枝为某些特定的链路。一棵STP树中包含了一个唯一的根节点,任何一个节点到根节点的工作路径不仅是唯一的,还是最优的。当网络拓扑发生变化时,STP树也会自动地发生相应的改变。
简而言之,有环的物理拓扑提高了网络连接的可靠性,而无环的逻辑拓扑避免了广播风暴、MAC地址表翻摆、多帧复制等问题的发生,这就是STP的精髓。
二、STP的工作原理
生成树协议STP能够自动发现冗余网络拓扑中的环路,保留一条最佳链路作为转发链路,阻塞其他冗余链路,并且在网络拓扑发生变化的情况下重新计算,保证所有网段可达且无环路。
STP的基本工作原理为,通过桥接协议数据单元( Bridge Protocol Data Unit, BPDU)的交互来传递STP计算所需要的条件,随后根据特定的算法阻塞特定端口,从而得到无环的树形拓扑。
BPDU报文被封装在以太网数据帧中,目的MAC是组播MAC:01-80-C2-00-00-00,Length字段指后续数据的字节长度,但不包括CRC字节,后面是LLC头,LLC之后是BPDU报文头。以太网数据帧格式如图所示。
三、STP报文格式
参考文献
原文链接: https://blog.csdn.net/qq_57169403/article/details/125005416
STP报文参考链接: https://support.huawei.com/enterprise/zh/doc/EDOC1100066216/e99e1364
百度百科: https://baike.baidu.com/item/RSTP/2235256?fr=aladdin