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

【版权声明:原创翻译文章,翻译水平有限,错误在所难免,翻译作者对文章中存在的错误或遗漏所造成后果不承担任何责任,请谨慎转载。转载请保留本声明及出处:blog.csdn.net/shallnet
下载该书英文版

在最基本的情景中,生成树协议(STP)是一个环路保护协议,它允许网桥之间通过相互通信去发现网络中的物理环,然后网桥通过指定的算法是网络形成一个逻辑上无环的拓扑,也就是说,STP创建一个由叶子和树干构成的无环树形结构网络。在后面的章节将讲述各个网桥之间如何通信以及STP算法如何工作。

在网络中存在环有很多原因,你经常会发现有人为地让网络连接成环,以试图对网络提供一个冗余备份,一旦某一条链路或交换机出问题了,另外一条链路或交换机还可以继续使得网络工作。不过环也有可能是因为使用错误而产生的(当然,这绝不会发生在你的身上)。图6-1
展示了一个典型的提供冗余备份的交换机网络。

图6-1. 使网络存在环可以提供一个备份网络

在一个桥网络中有环可能会导致广播环路和mac地址表异常,这对桥网络来说潜在的致命问题。

广播环路

广播数据和2层环路结合在一起是相当危险的,如下图6-2。

图6-2 未使用STP,广播数据包循环转发形成环路。

假定所有交换机都没有运行STP。

第一步:主机A向广播MAC地址发送一个帧;

第二步:帧通过以太网链路媒体传送到Cat-1和Cat-2;

第三步:当帧在Cat-1的端口port-1/1上收到,Cat-1执行“第三章 网桥技术”所讨论的转发表学习算法并将洪泛该帧,此时帧从端口Port1/2转发出去;

第四步:该帧继续传输以太网下面所有节点,Cat-2的端口Port1/2也将接收到该帧;

第五步:Cat-2也将把该广播帧从端口Port1/1洪泛出去,;

第六步:进而,该帧又继续传送到Cat-1 端口Port1/1上;

第七步:Cat-1作为一个交换机,按照交换机正常转发将会把该帧从端口Port1/2再一次地发送出去;

现在可以看到一个环路已经形成了。

并且,上面描述图6-2还忽略了第二步广播包还到达Cat-2,在Cat-2也会洪泛该帧并在下面的节点中传输,也会导致和上面广播包传输相反的一个环路,总之,要记住这种环回回路会在两个方向都会产生。

从图6-2可以得出一个重要的结论:网桥的回路比路由回路要危险得多。为了搞明白这点,我们回到第一章“Desktop Technologies.”讨论的以太网帧格式。比如,图6-3给出了DIX V2以太网帧的格式。

图6-3.DIX版本2以太网格式

要注意DIX版本2以太网给格式仅仅包含两个MAC地址、一个类型域和一个CRC(作为下层数据添加在后面)。不一样的是,IP头部包含一个生存时间(TTL)域,该值被发送IP包的主机设置并在每经过一个路由之后减一,当该值为0时,该包会被丢弃,这样路由器就防止了“来回打转”的数据报文。以太网帧不像IP数据包那样有一个TTL域,所以一旦有一个帧在网络上形成环路,该帧将永远在网络中持续转发,直到出现以下情况:

  • 某一个桥被关闭了或断掉一条链路。
  • 世界毁灭了<译者注原文:The sun novas>。

这似乎没有那么令人害怕,但是比图6-2示例复杂的网络在实际上会引起一个按指数倍数增长的环路,每一个帧从交换机每个端口发送出去,总的帧的数量增长相当快。我曾亲眼见证过一个ARP在两个OC-12 ATM 链路中跑了45分钟(for non-ATM wizards, each OC-12 sends 622 Mbps in each direction; this
is a total of 2.4 Gbps of traffic)<译者注:上一句为原文,目前还不能理解,未翻译>,对那些还没有认识到这个问题严重性的人来说,那是相当糟糕的事。

最后,想象一下广播风暴给像图6-2那样的简单用户带来的影响,他们不仅是不能玩Doom(一个校园网络上流行的小游戏),他们几乎不能做任何事(go home除外)!回想一下第二章“Segmenting LANs”,广播包是必须被CPU处理的,这样的话,所有PC也因为处理广播风暴而被卡死,就连连在该网络上的PC的鼠标指针都无法移动,直到你让PC不再连接到该局域网中,才可以PC恢复到正常的操作,一旦你再次连接上该局域网,广播包会再次占满CPU
。如果你还从来没亲身经历过此事,那么当你某天晚上遇到只有你最讨厌的那个人在使用网络,你可以随便把某个VLAN(比如VLAN 2)搞成物理环路,然后执行set spantree 2 disable, 试试看会不会出现这种情况。当然,如果最讨厌的那个人是你老板的话就别这么干啦!

网桥MAC地址表异常

许多 交换机/网桥 管理员对了解上面讨论的广播风暴基本问题,但是很少有人知道即使单播帧也会在包含环的网络中无限循环转发。图6-4举例说明这点。

图6-4.未使用STP情况下,即使单播包也会循环转发并使MAC地址表异常

比如,假设Host-A的ARP表拥有一个Host-B对应信息,打算发送一个单播ping包给Host-B,但此时Host-B临时从网络中移除了,并且交换机中相应的MAC地址表也更新了。如果此时交换机都没有运行STP,正如先前的示例,帧会传输到两个交换机的Port 1/1(第二步);现在只从Cat-1角度考虑问题,由于Host-C关闭了,Cat-1的Mac转发表中没有Host-C的地址CC-CC-CC-CC-CC-CC,因此该帧被交换机洪泛(第三步);第四步,Cat-2在Port
1/2接收到该帧,在该节点上发生两件事(都很糟糕):

  1. Cat-2洪泛该帧,因为该交换机并未学习到Mac 地址CC-CC-CC-CC-CC-CC(第五步),这使得环路形成并且使得网络挂掉。
  2. Cat-2注意到其仅仅在端口Port1/2上接收到源地址为AA-AA-AA-AA-AA-AA的帧,然后改变其上面MAC转发地址表条目到错误端口!

随着帧在相反的方向打转(回忆一下循环转发存在于两个方向上),你会看到Host-A的MAC地址会在Port 1/1和Port 1/2之间不停来回切换。

简而言之,不仅仅单播ping包会持续地占满整个网络,并且网桥MAC地址转发表也会异常,要记住不仅仅只有广播包才能干掉你的网络。

时间: 2024-10-09 04:17:23

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

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

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

[书籍翻译] 《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》第六章(五):Three Steps of Initial STP Convergence

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

翻译经典之《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》第六章(十):Topology Change Process

[版权声明:原创翻译文章,翻译水平有限,错误在所难免,翻译作者对文章中存在的错误或遗漏所造成后果不承担任何责任,请谨慎转载.转载请保留本声明及出处:blog.csdn.net/shallnet ,下载该书英文版] 既然TCN BPDU如此简单,那他怎么扮演如此重要的作用呢?在直接回答这个问题之前,先来看一个拓扑改变的微妙副作用.接下来的讨论引用了图6-17描述的情景. Figure 6-17. TCN BPDUs are Required to Update Bridge Tables More

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

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

翻译经典之《Cisco Lan Switching》第六章(十三):All of This Per VLAN!

[版权声明:原创翻译文章,翻译水平有限,错误在所难免,翻译作者对文章中存在的错误或遗漏所造成后果不承担任何责任,请谨慎转载.转载请保留本声明及出处:blog.csdn.net/shallnet ,下载该书英文版] 似乎生成树协议还是不够完善到让人满意,其实是因为我们在本章前面的所有讨论都仅仅使用一个VLAN.换言之,思科在每个VLAN中使用一个STP实例,这通常被称作PVST:每VLAN生成树. 也就是说,每个VLAN可以有不同的根网桥和活动拓扑.例如,图6-23 Part A部分为VLAN 2

翻译经典之《Cisco Lan Switching》第六章(六):Five STP States

[版权声明:原创翻译文章,翻译水平有限,错误在所难免,翻译作者对文章中存在的错误或遗漏所造成后果不承担任何责任,请谨慎转载.转载请保留本声明及出处:blog.csdn.net/shallnet ,下载该书英文版] 在网桥将其端口角色按根端口.指定端口.非指定端口分类之后,创建无环的拓扑就简单明了了:根端口和指定端口转发数据流量,非指定端口阻塞数据流量.虽然在一个稳定的网络中转发和阻塞是仅有的两种使用到的状态,但表6-3列出了STP实际上的五中状态. Table 6-3. STP States S