BPDU

字节 字段 描述
2 协议ID 此处总为0
1 版本 STP的版本。802.1为0
1 消息类型 BPDU的类型(配置BPDU=ox00 TCN=ox80)
1 标志 TC/TCA
8 Root Identifier根ID 根网桥的网桥ID
4 Path Path Cost路径开销 到达根网桥的STP开销
8 Bridge Identifier网桥ID 转发根网桥BPDU的网桥的ID
2 Port Identifier端口 转发根网桥BPDU的网桥的端口ID
2 消息寿命 从根桥发出BPDU之后的秒数,每经过一网桥就减一。即为跳数
2 最大寿命 网桥交根桥看作不可用前保留根桥ID的最大时间
2 hello 时间 根桥连续发出BPDU的间隔
2 转发延迟 网桥监听与学习状态所停留的时间。

BPDU有两种。一种为生成生成树时的配置BPDU,一种为网络拓扑发生变化时发出的TCN BPDU。

还有RSTP BPDU、MSTP BPDU和Cisco MST BPDU呢

STP我们先来看一下他的四条工作机制:①在一个网络中只有且必须有一个为根网桥
②每一个非根网桥有且只有一个根端口
③每一个网段有且只有一个指定端口
④所有非指定端口都因该阻塞掉
根据以上机制我们来模拟一下它的工作流程:
首先启动的时候每一台交换机都认为自己都是根桥,这样就进行选举(选举的原则是根据BPDU当中的Brideger Identifier来进行判断,当BID中的网桥的优先级相同时就根据MAC地址小的选为根桥Root Identifier); 当选定根桥时再在非根桥的交换机上选定根端口(根据到根桥的路径开销值Root Path Cost来判定,选择路径开销值小的作为根端口)(上行交换机Bridger Identifier和上行端口的Port Identifier); 为每一个网段选择一个指定端口(当一个网段出现俩个根端口时,根桥优先考虑.); 断掉非指定端口.这样就逻辑上解除了环路问题.
BPDU:中用到字段就是
1: 根桥的BID
2: 到根桥的开销
3: 自己的BID
4: 端口ID
就是用这些从上都下比如果已经匹配的话就选择完成如果不匹配的话就是按照数字向下走

本贴研究BPDU 的类型,如图所示 STP 工作正常 :



BPDU 分为两种:Configuration BPDU (配置的BPDU) 和 TCN BPDU(拓扑变化的BPDU)
图中 我们以 CF BPDU 代替 配置BPDU ,UP BPDU 代替 拓扑变化 BPDU

以图示讲一下两种BPDU 的作用和应用 :
< 1 > TCN BPDU ---拓扑变化的BPDU
非根桥始发。当一台非根桥交换机,拓扑发生变化的时候,就会产生一个TCN BPDU,这个BPDU是告诉根桥的,也就是说只有根端口才会发送这类的BPDU,上行 。

< 2 > Configuration BPDU ---配置BPDU
根桥始发。当根桥受到 TCN BPDU 后,会产生一个配置BPDU,告诉所有它知道的非根桥交换机,拓扑发生了变化。会发现这种的BPDU是通过指定端口始发和转发的,下行。

总结:
1、RP 接收 配置BPDU ,发送 拓扑变化BPDU。
2、DP 接收 拓扑变化BPDU ,发送 配置BPDU。


BPDU分为几种类型:
configuration BPDUtype:0x00注意类型号
TCN BPDUtype 0x80

这两种类型的BPDU是由BPDU协议字段中的TYPE决定的,具体字段内容如下:
BytesField
2Protocol ID
1Version
1Message Type
1Flags
8Root ID
4Cost of Path
8Bridge ID
2Port ID
2Message Age
2Maximum Time
2Hello time
2Forward Delay


STP在交换机之间运行,交换配置信息,就是靠BPDU实现的。
BPDU每隔2秒,以Multicast的方式发送,在designate port上被发送。
通过BPDU信息的交换,我们能够:
1、为整个STP网络找到一个root switch,也叫root bridge
2、为每个网段选举一个designate switch,或者说designate bridge
3、通过设置某些端口为backup状态,来打破环路

正常情况下,交换机只会从它的Root Port上接收configuration BPDU包,但是绝不会主动发送configuration BPDU包给root bridge。

这里就需要提到第二种类型的BPDU包了,也就是Topology Change Notification(TCN) BPDU。

这样,当一台交换机检测到拓扑变化后,它就可以发送TCN给root bridge,注意TCN是通过root port向root bridge方向发出的.

当交换机从它的designate port接收到TCN类BPDU时,它必须为其做转发,从它自已的root port上发送出去TCN类型的BPDU包,这样一级一级地传到root bridge后,TCN的任务才算完成.

在以上的过程中,无论是哪台交换机从它的designate port上收到了TCN类型的BPDU包,它都必须给一个回复,必须从designate port上发出TCA位被置1的normal configuration BPDU包,注意,这里是正常的configuration BPDU包.它的TCA位被置1,表明是要给TCN以回复的,但它跟TCN不是一类型的包.

那么当TCN传遍全网,直至到达ROOT BRIDGE后,root bridge也要做出一种回应,它会发出一个正常的configuration BPDU包,当然会有一些不同,就是包内的TC字段会被置1,TC即topology change,表示发现拓扑变化.这个包会被所有交换机转发,同样的TC位会置1,直至传遍全网,所有交换机都得知拓扑变化为止. 【BPDU】转载于:https://blog.51cto.com/chenyinong/955745

    推荐阅读