教培参考
教育培训行业知识型媒体
发布时间: 2024年12月23日 03:03
STP的BPDU报文类型一共有两种,分别是配置BPDU报文(BPDU报文中的BPDU类型值为0x00)和TCN BPDU报文(BPDU报文中的BPDU类型值为0x80),下面培训啦IT教育为大家详解介绍这两种类型BPDU报文的区别。
1 配置BPDU报文
在配置BPDU报文中,BPDU类型(BPDU Type)的值被设置为0x00,主要作用如下所述。
① 用于选举根桥及端口角色。
② 通过定期发送(每两秒发送一次)配置BPDU报文维护端口状态。
③ 用于确认接收到的TCN BPDU报文。
④ 用于选举根桥及端口角色。
配置BPDU报文转发过程如图1所示,从该图中可知,STP收敛后只有根桥才会定期发送配置BPDU报文,其他非根桥收到BPDU报文后会进行转发,通过这种方式维护端口状态。
图1 配置BPDU报文转发过程
由图1可知,STP收敛后,SWA为根桥,每隔2秒发送一次配置BPDU报文,配置BPDU报文会从所有的指定端口发送出去,其他非根桥从根端口接收到根桥发送的配置BPDU报文后,将配置BPDU报文缓存到接收端口,并将配置BPDU报文从所有的指定端口转发出去。但是非根桥在接收到配置BPDU报文后,是否转发也需要进行判断。
非根桥收到配置BPDU报文后,会先将配置BPDU报文中的Message Age和MaxAge进行比对,如果Message Age小于等于Max Age,则接收并转发配置BPDU报文;如果Message Age大于Max Age,则会丢弃配置BPDU报文,不接收也不转发。对于转发的配置BPDU报文会修改以下内容:
① 将网桥ID修改为转发者的网桥ID。
② 将端口ID修改为发送配置BPDU报文的端口ID(包括端口优先级和端口ID)。
③ 将Message Age加1(可以限制配置BPDU报文的传输范围)。
2 TCN BPDU报文
TCN BPDU报文中BPDU类型(BPDU Type)的值被设置为0x80,其作用是通告网络中拓扑发生了改变。首先需要说明通告TCN BPDU报文和STP的收敛没有任何的关系,那么通告拓扑改变的目的是什么呢?在如下场景中,网络拓扑改变带来的问题(一)如图2所示。
图2 网络拓扑改变带来的问题(一)
在图2中,STP收敛完后SWB的G0/0/2端口被选举为替代端口(AP)并被阻塞,主机A访问主机B的数据帧经过SWB转发给SWA,再由SWA转发给SWC。两台主机完成通信后,SWB的MAC地址表如图2中所示。那么如果现在SWA和SWC之间的链路发生故障,会出现什么问题呢?如图3展示了由于网络拓扑改变带来的问题(二)。
图3 网络拓扑改变带来的问题(二)
在图3中,由于SWA和SWC之间的链路发生故障,导致STP重新收敛,收敛后的各端口角色如图3所示,现在我们来分析主机A访问主机B的数据帧是如何转发的。SWB收到数据帧后通过查询MAC地址表将数据帧从G0/0/1端口转发出去,SWA收到数据帧后会直接丢弃掉,丢弃的原因是链路故障造成端口被关闭,数据帧无法被从G0/0/2端口发送出去,这样主机A和主机B也就无法通信了。
主机A和主机B就一直无法通信了吗?其实并不是,300秒以后会发现主机A和主机B可以正常通信了。这是为什么呢?原因是等待300秒以后,SWB上G0/0/1端口绑定的主机B老化的MAC地址已被删除掉,此时如果SWB再接收到访问主机B的数据帧,由于现在的MAC地址表中没有主机B的MAC地址,该数据帧将被从除接收端口以外的其他端口(G0/0/2)转发出去,这样SWC就能收到数据帧了,主机A和主机B自然就恢复了通信。
但是这种恢复正常通信的等待时间太长了,每一次拓扑变化都需要等待300秒后才能恢复通信。
也许有人会说,这种情况可以通过将MAC地址表的老化时间改短来解决。真的是这样吗?其实不然,这种解决方案根本就是治标不治本,并且会引发大量的未知单播帧泛洪,为什么?因为MAC地址表老化时间短,刚刚学习的MAC地址如果没有一个持续的访问流量,MAC地址很快会老化并被删除,再次收到同一单播帧就会导致新一轮的泛洪,产生网络不稳定问题。
有什么更好的方法能解决这个问题吗?答案是肯定的,这就是使用TCN BPDU报文的解决方案,如图4所示。
图4 使用TCN BPDU报文的解决方案
① SWC发现拓扑改变后会从根端口发送一个TCN BPDU报文,目的是要将发生拓扑改变的消息通知根桥。
② SWB从自己的指定端口收到了SWC发送的TCN BPDU报文,SWB会向SWC回复一个BPDU Flag被设置为TCA的配置BPDU报文,用于确认接收到了TCN BPDU报文。
③ SWB继续从自己的根端口转发TCN BPD报文。
④ SWA收到TCN BPDU报文后同样向SWB回复一个BPDU Flag被设置为TC的配置BPDU报文,并将自己的MAC地址表老化时间修改为15秒(一个转发延时),加速MAC地址老化。同时向所有的指定端口发送一个BPDU Flag被设置为TC的配置BPDU报文,目的是告诉其他的非根桥拓扑已经发生了变化。该配置BPDU报文会连续发送35秒(Max Age+Forward Delay的时间)。
⑤ 非根桥在收到TC置位的配置BPDU报文后会从所有的指定端口转发,同时将自己的MAC地址表老化时间修改为15秒,加速MAC地址老化。
注:STP中TC置位的配置BPDU报文只能由根桥发送,而其他非根桥如果发现拓扑改变就需要以发送TCN BPDU报文的方式来告知根桥,再由根桥向全网发送TC置位的配置BPDU报文,目的是将所有交换机MAC地址表的老化时间修改为15秒,加速MAC地址老化,尽快恢复数据转发。
STP在以下3种情况下会发送TCN BPDU报文:
●端口从转发状态过渡到阻塞状态(Blocking)或者禁用状态。
●非根桥从一个指定端口收到 TCN BPDU报文后会从自己的根端口向根交换机转发。
●端口进入到转发状态并且桥设备已经存在一个指定端口。
微信扫码关注公众号
获取更多考试热门资料