1.生成树概述
生成树协议(Spanning Tree Protocol,STP)和快速生成树协议(Rapid Spanning TreeProtocol,RSTP)分别定义在IEEE 802.1d/w中,是一种桥到桥的链路管理协议,它在防止产生自循环的基础上提供路径冗余。为使以太网更好地工作,两个工作站之间只能有一条活动路径。网络环路的发生有多种原因,最常见的一种是有意生成的冗余链路,当一个链路或交换机故障,会有另一个链路或交换机来替代。
STP是一种桥到桥的通信技术,提供发现网络物理环路的服务。该协议规定了网桥创建无环回Loop-Free逻辑拓扑结构的算法。换句话说,STP提供了一个生成整个第二层网络的无环回树结构。
生成树协议操作对终端站是透明的,也就是说,终端站并不知道它们自己是否连接在某单个局域网或多交换局域网中。当两个网桥相互连接在相同的由两台计算机组成的网络中时,生成树协议支持两网桥之间相互交换信息,这样只需要其中一个网桥处理两台计算机之间交换的信息。
桥接设备之间通过使用网桥协议数据单元(Bridge Protocol Data Unit,BPDU)交换各自状态信息。生成树协议通过发送BPDU信息为交换网络拓扑根交换机和根端口,并为每个交换网络区段(switched segment)配置指定端口。
网桥中的生成树算法可以用来决定如何使用生成树协议,该算法的优点在于能够避免网桥环路,并确保在多路径情形下网桥能够选择一条最有效的路径。如果最佳路径选择失败,可以使用该算法重新计算网络路径并找出下一条最佳路径。
生成树的工作方式如下,它的所有的工作都是为了生成一棵倒装的树形,这棵“树”的根称为“bridge root”,每个交换机会定义一个优先级,称为“bridge priority”,它的数值越小代表它成为“树根”的可能性越大(如果优先级相同,选择最小的MAC地址的交换机作为根桥),而其他每个叶结点(网桥/交换机)通往“树根(根桥)”的路径称为“root path”,衡量这一路径的权值称为“path cost”(参考SCALANCE X-400组态手册),通常它由链路的带宽所决定,一个千兆端口的权值会小于一个百兆端口的权值。通过计算每个叶结点到树根的路径,选择代价最小的成为通信路径,连接叶结点到根桥的代价最小路径的端口为根端口,如果叶结点到根桥的代价一样,那么选择Port ID小的作为根端口。然后根据每个桥通过最小代价连接到每一个交换网段的端口设定为指定端口(连接相同网段的端口选择MAC地址小的桥端口)。在每个节点的生成树算法完毕以前,所有的设备端口都只发送和接收BPDU报文信息,端口的状态处于初始化的阶段(listening&learning),一旦完成初始化,那么成为通信的路径的根端口和指定端口转变为“Forwarding”的状态,用于数据的收发,而非指定的端口成为“Blocking”的状态,只侦听BPDU的数据。一旦通信的路径失效,根据BPDU的报文,非指定的端口将重新一轮计算的过程而成为“Forwarding”的状态。
SCALANCE X-300/400系列的交换机支持STP和RSTP。在使用STP和RSTP时,需要禁止High-Speed Redundancy Ring(HSR)。
2.生成树组态
本例生成树网络拓扑由3台交换机Switch A、Switch B和Switch C组成。彼此之间依次通过Port5.1和Port5.2相连成千兆环(非RM),另外Switch A和Switch B还通过Port9.1进行百兆相连。STP网络拓扑如图4-135所示(连接前需要使能和配置STP)。
注意,对于SCALANCE X-400使能STP协议,首先要禁止环网冗余(HSR)。
图4-135 STP网络拓扑
(1)Switch A组态(未连线)
通过IE浏览器打开交换机Switch A的Web页面,输入用户名和密码,均为“admin”。依次单击目录树“Switch”→“Spanning Tree”,注意看右侧的生成树信息为默认信息,如图4-136所示。
图4-136 生成树信息
单击目录树“Switch”,使能“STP”,如图4-137所示。
图4-137 使能“STP”
这时,再次单击目录树“Switch”→“Spanning Tree”,可以看到使能STP后的信息。如图4-138所示。这时,发现选举的根桥就是它自身,Root ID=08-00-06-9C-28-CB。
图4-138 使能STP后的信息
(2)Switch B组态(未连线)
通过IE浏览器打开交换机Switch B的Web页面,输入用户名和密码,均为“admin”。依次单击目录树“Switch”→“Spanning Tree”,注意看右侧的生成树信息为默认信息。如图4-139所示。
图4-139 生成树信息
单击目录树“Switch”,使能“STP”,如图4-140所示。
图4-140 使能“STP”
这时,依次单击目录树“Switch”→“Spanning Tree”,可以看到使能STP后的信息,如图4-141所示。这时,发现选举的根桥就是它自身,Root ID=08-00-06-9B-4B-52。因此可知Root ID(Switch B)﹤Root ID(Switch A)。
图4-141 使能STP后的信息
(3)Switch C组态(未连线)(www.xing528.com)
通过IE浏览器打开交换机Switch C的Web页面,输入用户名和密码,均为“admin”。再依次单击目录树“Switch”→“Spanning Tree”,注意看右侧的生成树信息为默认信息,如图4-142所示。
图4-142 生成树信息
单击目录树“Switch”,使能“STP”,如图4-143所示。
图4-143 使能“STP”
这时,依次单击目录树“Switch”→“Spanning Tree”,可以看到使能STP后的信息。如图4-144。这时,发现选举的根桥就是它自身,Root ID=00-0E-8C-8B-D4-E7,因此可知Root ID(Switch C)<Root ID(Switch B)<Root ID(Switch A)。
图4-144 使能STP后的信息
然后按照网络拓扑结构,连接网线。这时生成树算法生效,选举根桥,根端口,指定端口以及堵塞端口。查看Switch A,Switch B,Switch C的生成树的状态信息。
Switch A的交换机生成树信息如图4-145所示。
图4-145 交换机生成树信息Switch A
依次单击目录树“Switch”→“Spanning Tree”→“Ports”,查看端口信息,如图4-146所示。
图4-146 查看端口信息
Switch B的交换机生成树信息如图4-147所示。
图4-147 交换机生成树信息Switch B
依次单击目录树“Switch”→“Spanning Tree”→“Ports”,查看端口信息,如图4-148所示。
图4-148 查看端口信息
Switch C的交换机生成树信息如图4-149所示。
图4-149 交换机生成树信息Switch C
依次单击目录树“Switch”→“Spanning Tree”→“Ports”,查看端口信息,如图4-150所示。
图4-150 查看端口信息
由此,整个网络不再出现冗余链路,根据Switch A、Switch B、Switch C的生成树信息和端口状态可以得知:
(1)对于整个千兆链路,由于每一台网桥具有相同的优先级,STP会选择MAC地址小的作为根桥。这样会选择Root ID=00-0E-8C-8B-D4-E7即Switch C作为根桥。
(2)Switch A和Switch B有两条链路相连,分别是百兆和千兆链路,根据Path Cost,可知百兆链路的端口会被阻塞,并且是在Root ID大的一方被阻塞,所以Switch A的Port9.1端口为Blocking状态。
(3)根据生成树算法,可以知道在千兆链路上的堵塞端口,应该在Root ID大的一方被阻塞,这样会选择Switch A的Port5.1为阻塞端口,即Blocking状态。
(4)任意断开一个激活的连接线,可以发现大约有10~30s的恢复时间。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。