【版权声明:原创翻译文章,翻译水平有限,错误在所难免,翻译作者对文章中存在的错误或遗漏所造成后果不承担任何责任,请谨慎转载。转载请保留本声明及出处:blog.csdn.net/shallnet
,下载该书英文版】
既然TCN BPDU如此简单,那他怎么扮演如此重要的作用呢?在直接回答这个问题之前,先来看一个拓扑改变的微妙副作用。接下来的讨论引用了图6-17描述的情景。
Figure 6-17. TCN BPDUs are Required to Update Bridge Tables More Quickly
设想Host-D正在和Host-E玩Doom游戏,正如早些在图6-12讨论的,那么数据流量就从Host-D直接经过Cat-B到达Host-E(第一步)。假设在Cat-B:Port-1/2上的以太网收发器出现故障,如之前所说,Cat-C:Port-1/2在50秒内接管指定端口的角色。但是,如果没有TCN BPDU,游戏会在另外250秒(4分10秒)持续中断。为什么会是这样呢?在出现故障之前,所有三个交换机的网桥地址表中MAC地址EE-EE-EE-EE-EE-EE的条目如下表6-7:
Table 6-7. Bridge Table Values Before Topology Change
Bridge Table
|
Port Associated
with EE-EE-EE-EE-EE-EE
|
Cat-A
|
Port 1/1
|
Cat-B
|
Port 1/2
|
Cat-C
|
Port 1/1
|
也就是说,在故障发生前,由于Cat-C:Port-1/2阻塞了,所有到Host-E的帧都必须以逆时钟方向传输。当Cat-B:Port-1/2出现故障时,Cat-C:Port-1/2成为指定端口,这就允许数据流量以顺时针方向传输到达Host-E。但是,三个交换机的网桥地址表仍然指向错误方向,事实上如果Host-E在网络中位置变了,网桥地址表仍然需要更新。一个方法是等待网桥地址表自然老化,但由于地址表默认老化时间是300秒,这就是前面计算的中断5分钟的不幸结果。
TCN BPDU是一个公平简单的来改善收敛时间(允许我们继续玩Doom)的方法。TCN BPDU和配置BPDU紧密配合如下:
- 网桥在两种情况下开始发送TCN BPDU:
- 端口状态变为Forwarding状态并且至少有一个指定端口。
- 端口从Forwarding状态或learning状态转变到Blocking状态。
这些都是活动拓扑出现了变化需要通知根网桥的情景。假设当前的网桥不是根网桥,网桥就会通过从根端口发送TCN BPDU来开始通告处理,并且会持续每Hello Time发送TCN BPDU,直到TCN 消息被确认了(注:该Hello Time是本地配置的Hello time,而不是根网桥从配置BPDU分发下来的Hello Time)。
2. 上游的网桥接收TCN BPDU。虽然一些网桥会接收到TCN BPDU(那些是直接连接到根端口链路上的),但仅仅指定端口接受并处理TCN BPDU。
3. 上游的网桥在向下游发送(从指定端口发出)的下一个配置BPDU中设置拓扑改变确认标志。在上一步接收到TCN BPDU的确认将导致始发网桥终止发送TCN
BPDU。
4. 上游网桥从根端口传播TCN BPDU(TCN BPDU距离根网桥又更进一步了)。
5. 重复第2步到第4步,直到根网桥接受到TCN BPDU。
6. 根网桥在下一个发出去的配置BPDU中设置拓扑改变确认标志(为了向先前发送TCN BPDU的网桥进行确认 )和拓扑改变标志。
7. 根网桥在所有发送的配置BPDU(转发时延 + Max Age秒(默认35秒))中继续设置拓扑改变标志。这个标志命令所有网桥缩短其地址表老化过程,使其从默认的300秒缩短到当前当前Forward Delay值(默认=15秒)。
图6-18总结了上面7步TCN过程对应bits的使用(步骤的序号是循环的):
Figure 6-18. Sequence of Flows in Topology Change Processes
应用这些步骤到图6-17的拓扑图(为了简单起见图中并未展示这些步骤)中,Cat-B和Cat-C从其Port-1/1发送TCN BPDU(第一步),由于上游网桥是根网桥,第2步和第5步同时发生(允许跳过第3步和第4步)。在下一个发送的配置BPDU中,根网桥设置TCN ACK标志确认收到了从两个下游Catalyst交换机发来的TCN。Cat-A也会设置拓扑改变标志35秒的时间(假设使用默认Forwarding
Delay和Max Age),以使网桥地址表更快更新(第6、7步)。所有三个交换机接受拓扑改变标志并在15秒内老化其地址表。
注意缩短老化时间到15秒并非刷新所有地址表,仅仅加速老化过程。设备在15秒的老化时间内不会离开地址表而继续“保持通话”。但是,如果Host-D试图在20秒内发送一个帧到Host-E(假设Host-E已经不发数据包了),该帧将洪泛到交换机所有链路,因为EE-EE-EE-EE-EE-EE的MAC地址已经不在地址表中了。
表6-8显示三个交换机在新的拓扑收敛并且数据流量也恢复之后MAC地址表中地址EE-EE-EE-EE-EE-EE的条目。
Table
6-8. Bridge Table Value after Topology Change
Bridge
Table
|
Port
Associated with EE-EE-EE-EE-EE-EE
|
Cat-A
|
Port 1/2
|
Cat-B
|
Port 1/1
|
Cat-C
|
Port 1/2
|
这时候,Host-D和Host-E重新建立连接,Doom Deathmaatch游戏可以恢复了。注意到TCN BPDU把故障时间从5分钟到50秒。
正如在之前“配置 BPDU”一节所述,两个Flag域都存入配置BPDU中同样的八位字节。这八位字节排列布局如图6-19所示。
Figure 6-19. Layout of Configuration BPDU Flag Fields
如前面章节所述,TCA标志是由上游网桥设置以告知下游网桥停止发送TCN BPDU。TC 标志是由根网桥设置以将地址表老化时间周期从300秒缩短到Forward Delay秒。