浅谈STP生成树之BPDU及报文中各字段
一、BPDU概念和作用
1、概念
1、Bridge Protocol Data Unit,BPDU,即桥协议数据单元,是生成树协议STP中用于交换信息的协议报文。在STP中,交换机之间通过BPDU报文交换信息,以确定网络拓扑结构和根桥的位置。BPDU主要有两种类型:配置BPDU和拓扑变更通知BPDU。
2、BPDU报文中包含了一系列字段,用以承载生成树协议所需的信息。这些字段主要包括根ID(Root ID)、到根的路径开销(Path Cost)、桥ID(Bridge ID)、端口ID(Port ID)等。
3、BPDU通常以组播的形式发送,组播地址为01-80-C2-00-00-00。根桥定期发送配置BPDU,其他交换机则转发这些BPDU,并在必要时根据自己的状态产生并发送BPDU。
4、BPDU的交换和处理是STP收敛过程中的关键。STP的收敛时间受多个计时器的影响,包括hello计时器、转发计时器、最大老化时间等。这些计时器决定了BPDU的发送频率和其他交换机对BPDU的处理行为。
2、作用
1、选举根桥:通过比较BPDU中的根ID,STP协议选出网络中桥ID最小的交换机作为根桥。
2、端口角色选举:每个交换机端口根据接收到的BPDU信息决定自身的角色,包括根端口、指定端口等。
3、拓扑结构确定:BPDU帮助交换机确定网络的拓扑结构,从而避免环路的产生。
4、拓扑变更处理:当网络拓扑发生变化时,非根交换机会通过根端口发送TCN BPDU通知根桥,根桥会发送带有TC标志的BPDU,以通知整个网络拓扑结构发生变化。
二、BPDU报文中各字段
1、Protocol ID:Protocol ID用于标识STP协议的版本,常见的有802.1D(传统STP)、802.1w(快速STP,RSTP)和802.1s(多生成树协议,MSTP)。
2、Version:Version字段指示了STP的版本,不同的版本对应着不同的STP变体,如STP、RSTP和MSTP。
3、Message Type:Message Type指明了BPDU的类型,主要有两种类型:配置BPDU和拓扑变更通知BPDU。
4、Root ID:Root ID表示根桥的ID,由优先级和MAC地址组成,优先级越小,该桥成为根桥的概率越大。
5、Cost of Path:Cost of Path指的是路径开销,反映了从一个端口到根桥的总开销,通常与链路的带宽成反比。
6、Bridge ID 桥ID:Bridge ID是由桥优先级和MAC地址组成的,用于标识发送BPDU的交换机。
7、Port ID 端口ID:Port ID表示发出BPDU的端口,有助于识别网络中特定的端口,Port ID由两部分组成,高 4bit 为接口优先级,低 12bit 为接口编号,总共是16bit。
8、Message Age:Message Age记录了BPDU自发送以来的时间,用于计算BPDU的新鲜度。
9、Max Age:Max Age指定了BPDU在网络中被认为是有效的最长时间。
10、Hello Time:Hello Time指定了根桥发送BPDU的时间间隔,用于保持网络拓扑的稳定性。
11、Forward Delay:Forward Delay是指在拓扑改变后,交换机在发送数据包前维持在监听和学习状态的时间,这是为了避免环路的产生。