翻译经典之《Cisco Lan Switching》第六章(十):Topology Change Process

【版权声明:原创翻译文章,翻译水平有限,错误在所难免,翻译作者对文章中存在的错误或遗漏所造成后果不承担任何责任,请谨慎转载。转载请保留本声明及出处: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紧密配合如下:

  1. 网桥在两种情况下开始发送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秒。

时间: 2024-12-28 01:16:06

翻译经典之《Cisco Lan Switching》第六章(十):Topology Change Process的相关文章

翻译经典之《Cisco Lan Switching》第六章(五):Three Steps of Initial STP Convergence

[版权声明:原创翻译文章,翻译水平有限,错误在所难免,翻译作者对文章中存在的错误或遗漏所造成后果不承担任何责任,请谨慎转载.转载请保留本声明及出处:blog.csdn.net/shallnet ,下载该书英文版] 这一节讲述生成树协议在一个逻辑无环拓扑上的初始化收敛,虽然生成树协议初始化收敛涉及很多方面,不过也可以分解为下面简单三步: 选择根网桥 选择根端口 选择指定端口 当网络首次启动,所有网桥都发出无组织的BPDU信息,网桥会立即开始执行上一节讲述的四步比较原则,这样最终在整个网络上最终形成

翻译经典之《Cisco Lan Switching》(零):前言

[版权声明:原创翻译文章,翻译水平有限,错误在所难免,翻译作者对文章中存在的错误或遗漏所造成后果不承担任何责任,请谨慎转载.转载请保留本声明及出处:blog.csdn.net/shallnet ,下载该书英文版] 一直不知为何<Cisco Lan Switching>如此经典的一本讲交换技术的书没有中文版,甚至此书在各大网店上连英文原版书籍都没有现货.此书也是我在做交换机开发过程中发现,并对其中一些内容仔细阅读,发现该书讲解甚是详细,对做交换机开发的工程师非常有益,我也只能说对其是相见恨晚.

翻译经典之《Cisco Lan Switching》第六章(七):Three STP timers

[版权声明:原创翻译文章,翻译水平有限,错误在所难免,翻译作者对文章中存在的错误或遗漏所造成后果不承担任何责任,请谨慎转载.转载请保留本声明及出处:blog.csdn.net/shallnet ,下载该书英文版] 前面章节曾说到了网桥每次处于listening状态时默认需要监听15秒的时间,其实总的来说,STP是受3个time在控制,如表6-5. Table 6-5. STP Timers Timer Primary Purpose Default Hello Time Time between

翻译经典之《Cisco Lan Switching》第六章(九):Two Types of BPDUs

[版权声明:原创翻译文章,翻译水平有限,错误在所难免,翻译作者对文章中存在的错误或遗漏所造成后果不承担任何责任,请谨慎转载.转载请保留本声明及出处:blog.csdn.net/shallnet ,下载该书英文版] 在此之前,本章都认为所有BPDU为同一种BPDU,事实上,BPDU有两种类型: 配置BPDU 拓扑改变通知(TCN)BPDU 配置BPDU是由根网桥发出,通过活动路径向下转发,最后再回到根网桥.拓扑改变通知BPDU向上(朝根网桥方向)转发,以向根网桥报告活动拓扑发生改变.在后面的部分中

[书籍翻译] 《JavaScript并发编程》第六章 实用的并发

本文是我翻译<JavaScript Concurrency>书籍的第六章 实用的并发,该书主要以Promises.Generator.Web workers等技术来讲解JavaScript并发编程方面的实践. 完整书籍翻译地址:https://github.com/yzsunlei/javascript_concurrency_translation .由于能力有限,肯定存在翻译不清楚甚至翻译错误的地方,欢迎朋友们提issue指出,感谢. 在上一章中,我们大致学习了Web workers的基本

翻译经典之《Cisco Lan Switching》第六章(十一):Using Spanning Tree in Real-World Networks

[版权声明:原创翻译文章,翻译水平有限,错误在所难免,翻译作者对文章中存在的错误或遗漏所造成后果不承担任何责任,请谨慎转载.转载请保留本声明及出处:blog.csdn.net/shallnet ,下载该书英文版] 来看一下图6-20更复杂的拓扑,看看STP在实际中是如何应用的. Figure 6-20. A Complex Network with All Links Shown 图6-20为一个由7个交换机连接而成的有高度冗余(也就是环)配置的网络.除了最左端直立的那条10Based链路(开销

翻译经典之《Cisco Lan Switching》第六章(八):Mastering the show spantree Command

[版权声明:原创翻译文章,翻译水平有限,错误在所难免,翻译作者对文章中存在的错误或遗漏所造成后果不承担任何责任,请谨慎转载.转载请保留本声明及出处:blog.csdn.net/shallnet ,下载该书英文版] Catalyst平台交换机上STP最重要的命令是show spantree.虽然该命令提供很多有用的参数,但这一节只讨论其基本的语法(完整详细语法见第七章).示例6-1为图6-6示例中交换机Cat-B使用show spantree命令输出的例子. Example 6-1. show s

翻译经典之《Cisco Lan Switching》第六章(二): What Is Spanning Tree and Why Use Spanning Tree?

[版权声明:原创翻译文章,翻译水平有限,错误在所难免,翻译作者对文章中存在的错误或遗漏所造成后果不承担任何责任,请谨慎转载.转载请保留本声明及出处:blog.csdn.net/shallnet ,下载该书英文版] 在最基本的情景中,生成树协议(STP)是一个环路保护协议,它允许网桥之间通过相互通信去发现网络中的物理环,然后网桥通过指定的算法是网络形成一个逻辑上无环的拓扑,也就是说,STP创建一个由叶子和树干构成的无环树形结构网络.在后面的章节将讲述各个网桥之间如何通信以及STP算法如何工作. 在

翻译经典之《Cisco Lan Switching》第六章(十二):Deterministic Root Bridge Placement

[版权声明:原创翻译文章,翻译水平有限,错误在所难免,翻译作者对文章中存在的错误或遗漏所造成后果不承担任何责任,请谨慎转载.转载请保留本声明及出处:blog.csdn.net/shallnet ,下载该书英文版] 基于之前的讨论,你应当赞成确定地去设置你的根网桥是必须的.事实上,你应当始终设置不止一个根网桥.一个为主要的,另外是在主要的故障是作为备份用的.如果你的网桥网络真的很大,你可能需要设置第三个根网桥,以防万一第一个和第二个都出现故障. 这一节来考虑一下如何确定根网桥在网络中的位置,关于放