网络基础知识讲座之五:学习生成树协议

现在,我们的网络教程开始接触到让人期待的生成树协议,学好它,你就可以尽可能避免因某台交换机的问题造成整个局域网崩溃 。继续读下去吧 。生成树协议是由Sun微系统公司闻名工程师拉迪亚?珀尔曼博士(Radia Perlman)发明的 。网桥使用珀尔曼博士发明的这种方法能够达到2层路由的理想境界:冗余和无环路运行 。你可以把生成树协议设想为一个各网桥设备记在心里的用于进行优化和容错发送数据的过程的树型结构 。
我们要介绍的这个问题在图1中进行了描述 。
图 1.假如这些交换机不采用生成树协议并且以这种方式连接,每一台交换机将无限地复制它们收到的第一个数据包,直到内存耗尽和系统崩溃为止 。在2层,没有任何东西能够阻止这种环路的事情发生 。在图1中,治理员必须要手工关闭这个红色连接线路才能让这个以太网网络运行 。生成树协议在当前可用连接有效时关闭一个或者更多其它冗余连接,而在当前连接出现故障后,再启用这些被关闭的冗余连接 。生成树协议决定使用哪一个连接完全取决于网络的拓扑结构 。
生成树协议拓扑结构的思路是,网桥能够自动发现一个没有环路的拓扑结构的子网,也就是一个生成树 。生成树协议还能够确定有足够的连接通向这个网络的每一个部分 。它将建立整个局域网的生成树 。当首次连接网桥或者发生拓扑结构变化时,网桥都将进行生成树拓扑的重新计算 。
当一个网桥收到某种类型的“设置信息”(一种非凡类型的桥接协议数据单元,BPDU)时,网桥就开始从头实施生成树算法 。这种算法从根网桥的选择开始的 。根网桥(root bridge)是整个拓扑结构的核心,所有的数据实际上都要通过根网桥 。顺便提示一下,有手工设置根网桥时要非凡注重 。对于思科设备来言其根网桥的选择过程暴露出一些问题,就是过分简单化 。思科硬件通常使用最低的MAC地址,具备这些地址的设备通常是网络中最古老的设备,因而其交换速度常是最慢的,而从根网桥在网络中的位置看,它负荷却最重 。生成树构建的下一步是让每一个网桥决定通向根桥的最短路径,这样,各网桥就可以知道如何到达这个“中心” 。这一步会在每个局域网进行,它选择指定的网桥,或者与根桥最接近的网桥 。指定的网桥将把数据从局域网发送到根桥 。最后一步是每个网桥要选择一个根端口 。所谓根端口也即“用来向根桥发送数据的端口” 。注重,一个网桥上的每一个端口,甚至连接到终端系统(计算机)的端口,都将参加这个这个根端口选择,除非你将一个端口设置为“忽略” 。
上面就是生成树算法的过程 。但是,这还不能解释生成树在现实世界中实际上在做什么 。我们说,这种计算是破坏性的 。毫无疑问,它确实是如此 。要进行这种计算,网桥必须停止所有的通信 。网桥要经过一系列的测试和学习阶段,只有在拓扑结构建立起来之后才开始发送数据 。网桥只有在拓扑机构改变的时候或者网桥得到一个BPDP包时才会进行,想起来这种情况应该很少,可事实上,这种计算发生的频度要比你想象的多 。
生成树协议思路是,你答应有一个连接错误,因为你在一对网桥之间存在两条物理连接 。生成树协议在一个端口需要使用之前将封锁那个端口 。因此,我们应该可以拔掉冗余的连接,并且在不中断通信的情况下把它连接到其它的网桥 。很可惜,它不是这样工作的 。
当一个物理连接的网桥新网桥连线时,它将发送重新设置BPDU,其它连接的设备将遵照施行 。当生成树协议开始计算的时候,所有的通信都要停止大约50秒 。这些时间可以说是物有所值,因为你仅仅被限制在一个很短的停机时间内 。假如交换机被挤暴,或者你缺少多余的路径,将会出现永久的停机 。相比之下,停机50秒钟只是非常轻的损失 。另外,很多现代厂商已经实现了快速生成树协议,这是老的生成树协议的一个改进版本,更加注重了在重新计算拓扑时的开销,并且与老版本的协议兼容 。在大多数情况下,它可以把以前多达50秒的计算时间缩短到不足3秒,从这点看,任何人都应该使用新的快速生成树协议 。

推荐阅读