李 勇, 相中启, 杨华芬, 王胜文
(1.曲靖师范学院 信息工程学院,云南 曲靖 655011;2.上饶师范学院 数学与计算机科学学院,江西 上饶 334001;3.六盘水师范学院 数学与信息工程学院, 贵州 六盘水 553004)
在实际网络组建过程中,为了减少网络故障,通常会在一些关键链路上增加备份冗余链路,然而备份冗余链路的存在却会产生网环路、引起广播风暴,极大地消耗了网络带宽资源[1-2]。生成树协议是解决网络中环路的有效技术手段,在实际网络组建过程中被广泛使用,需要学生很好地加以掌握。因此,近年来,生成树协议受到了广泛关注,成为实践教学中的研究重点。文献[3-6]中分析了生成树协议的工作原理、介绍了其实验设计与实现。文献[7-8]中介绍了使用生成树协议解决网络环路的技术方案。文献[9-10]中讨论了生成树协议在园区网络设计中的应用。
然而,在传统的实践教学过程中,由于实验室设备、环境等因素的限制,无法很好地开展生成树协议的实验教学。为了有效地辅助生成树协议的实验教学,加深学生对两种生成树协议工作原理的理解、掌握两种生成树协议的配置命令,使用思科分组跟踪器设计网络结构进行实验仿真,该模拟器不受设备、环境等因素的限制,学生随时随地可以进行实验仿真、观察和分析,可有效地锻炼学生的实践动手能力和分析问题解决问题的能力[11-12]。
根据IEEE 802.1d的定义,基本生成树协议(Spanning-Tree Protocol, STP)是一种网桥嵌套协议,主要用于解决冗余网络中的广播风暴问题。其工作原理是,定义一个用于通信的网桥协议数据单元(Bridge Protocol Data Unit, BPDU),并用BPDU的相关机制来动态选择根网桥和备份网桥,由于中心网桥到任何网段只有一个路径存在,达到了消除网络环路的目的。BPDU在生成树算法中扮演着重要角色,通过广播BPDU包,启用生成树协议的交换机或网桥可以确定各端口的工作状态、角色、转发数据帧的路径,有关端口的角色分类和状态转换详情可参考文献[13], BPDU数据包格式如图1所示。
图1 BPDU数据包格式
其中,DMA为目的MAC地址;SMA为源MAC地址;L/T为帧长;LLC Header为配置消息固定的链路头;Payload为BPDU数据,主要包括内容有根网桥RootID、从指定网桥到根网桥的最小路径开销RootPathCost、指定网桥ID、指定网桥指定端口ID等。
基本生成树协议为实现无环树网络的构建,网络中的桥接设备之间需要不断的相互转发BPDU,以便确定应该阻塞哪些接口,从逻辑上断开哪些冗余备份链路。BPDU携带有根桥ID、桥优先级、端口优先级、路径代价等用于生成树计算的所有数据信息[13-15]。其中,桥ID由网桥优先级+网桥MAC地址两部分组成,路径代价是由网络链路长度、带宽等因素累加因素决定的权值。基本生成树协议算法的具体实现过程主要包括选取根桥、选取根端口、选取指定端口3个阶段。下面以图2所示的带环路初始网络为例分析基本生成树协议的具体工作过程。
图2 带环路初始网络
(1) 选取根桥。根桥的选取办法是先比较网络中各网桥的优先级,然后再比较各网桥MAC地址,如果优先级相同,则选择MAC地址数最小的作为根网桥,图2中桥接器B1的优先级最小,因此,选取B1为根桥,根桥B1上的所有端口均为指定端口,B2、B3、B4、B5为非根桥,以根桥为起始点出发,构造通向网络中每一个网桥和局域网的无环树状网络。
(2) 选取根端口。计算以根桥B1为起点连接非根桥B2、B3、B4、B5中各端口的通路路径,选取连接到根桥通路路径最短的端口为非根桥的根端口,如果有多个端口连接的通路路径最短,则根据选择顺序产生根端口,最后,以根端口连接到根桥的通路路径为非根桥到根桥的最佳路径、路径值为非根桥到根桥的路径值。由此,计算出B2连接至B1的最佳路径为LAN1,路径值为4,根端口为端口2;B3连接至B1的最佳路径为LAN2,路径值为4,根端口为端口2;B4连接至B1的最佳路径为LAN3、LAN1,路径值为23,根端口为端口3;B5连接至B1的最佳路径为LAN4、LAN2,路径值为104,根端口为端口2。
(3) 选取指定端口。以选取根端口阶段计算的结果为LAN1、LAN2、LAN3、LAN4、LAN5各网段指定桥接器,选取到根桥路径值最小的桥接器为指定桥接器,如果有多个桥接器到根桥路径值最小,则选择优先级较小的桥接器为指定桥接器,如果指定桥接器有多个端口与指定网络相连,则进一步比较端口的优先级,选择优先级较小的端口为指定端口,其他端口为阻塞口。由此得出LAN1、LAN2为根桥的直连网络,指定桥接器即为根桥,指定端口分别为根桥的端口1、端口2;LAN3连接根桥的指定桥接器为B2、指定端口为端口1;LAN4连接根桥的桥接器B2、B3的路径值都为4,但B3的优先级小于B4的优先级,因此,LAN4连接根桥的指定桥接器为B3、指定端口为端口1,阻塞B2的端口3;LAN5连接根桥的指定桥接器为B4,B4中两端口选择端口2为指定端口,阻塞端口1,原因是端口2的优先级小端口1。
按上述生成树算法工作到收敛状态(所有网桥或交换机的端口都转变为转发状态或阻塞状态称为收敛)后,图2所示的带环路初始网络即可转变为图3所示的无环路树状网络,图3中虚拟线表示从逻辑上应该阻塞的链路。
图3 无环树状网络
快速生成树协议(Rapid Spanning Tree Protocol, RSTP)由STP发展而来,在IEEE 802.1w标准中对其规范进行了详细描述,实现的思想基本一致。RSTP相对于STP来讲,STP通常需要30~50 s的收敛时间,而RSTP为了减少收敛时间,多了一些减少收敛时间的措施,具体措施为:①口接入的是计算机或者其他不运行STP的设备时,使接口立即进入转发状;②当接入层交换机连接到主干交换机上的主链路出现故障时,立即切换到备份链路,而不需再要经过30~50 s时间;③当主干交换机之间的链路出现故障时,只需经过30 s后即切换至备份链路,比原有的50 s少20 s。因此,当网络结构改变时,RSTP可以快速恢复网络的连通性,具有收敛速度快、端口进行转发状态需要的时间短等优点,比STP使用更为广泛。
下面重点介绍RSTP协议实验的仿真实现过程,有关STP协议实验仿真的详细过程描述可见文献[6]。
RSTP协议实验的目的是:① 理解RSTP协议的工作原理;② 掌握RSTP协议的配置方法。在Cisco Packet Tracer模拟器中使用2台Cisco 2960交换机、2台PC主机、4根网线互相连接构成如图4所示的实验拓扑结构,其中PC1、PC2的IP地址分别配置为192.168.1.10/24、192.168.1.20/24。
图4 RSTP协议实验拓扑结构
实验步骤如下:
步骤1配置交换机SwitchA、SwitchB之间的Trunk链路,命令如下:
SwitchA(config)#int fa0/1
SwitchA(config-if)#switchport mode trunk
SwitchA(config)#int fa0/2
SwitchA(config-if)#switchport mode trunk
SwitchB(config)#int fa0/1
SwitchB(config-if)#switchport mode trunk
SwitchB(config)#int fa0/2
SwitchB(config-if)#switchport mode trunk
步骤2配置交换机SwitchA为根桥,命令如下:
SwitchA(config)#spanning-tree vlan 1 priority 4096
上述命令执行完后,分别在SwitchA、SwitchB上执行“show spanning-tree”命令检查STP信息,发现SwitchB中fa0/2端口处于阻塞状态,结果如图5所示,主要原因是,配置SwitchA为根桥,则SwitchB为非根桥,SwitchB中端口fa0/1、fa0/2分别从SwitchA中fa0/1、fa0/2端口接收BPDU,两条路径的Cost值都为19,但是SwitchB中端口fa0/1接收的BPDU中发送者端口为1,优先级更高,被选为根口,进行转发状态,而SwitchB中端口fa0/2接收的BPDU中发送者端口为2,优先级更低,因此被阻塞。
图5 SwitchB中STP信息
步骤3在SwitchB中关闭fa0/1,重复执行“show spanning-tree”命令检查重新生成的STP信息,发现fa0/2经过30 s后进入了转发状态。
步骤4配置RSTP,命令如下:
SwitchA(config)#spanning-tree mode rapid-pvst
SwitchB(config)#spanning-tree mode rapid-pvst
步骤5在SwitchB中关闭fa0/1,重复执行“show spanning-tree”命令检查重新生成的STP信息,发现fa0/2很快进入了转发状态,无需等待30 s,这说明RSTP的收敛时间比基本STP有很大改善。
为进一步验证RSTP协议的工作原理及其消除网络环路的作用,分别在打开SwitchB中Fa0/1端口和断开SwitchB中Fa0/1端口两种情况下进行测试验证,在PC1中输入命令ping 192.168.1.20测试到PC2的连通性,结果如图6所示。
图6 主机PC1 Ping 主机PC2的测试结果
上述实验步骤及测试结果表明,当网络存在环路时,RSTP可以自主的选择优先级较高的路径转发数据帧,而阻塞优先级低的路径,消除环路。当优先级较高的转发路径出现故障断开时,RSTP可以快速的选择优先级较低的备份链路转发数据帧。验证了RSTP协议的工作原理、作用,及其相比于基本STP的优势,达到了实验的目的。
本文详细分析了两种生成树协议的工作原理,并基于CPT模拟器设计了实验网络结构,对RSTP协议进行实验仿真,通过对仿真实验的研究与分析,进一步加深了学习者对两种生成树协议工作原理和算法执行过程的理解、使其更容易掌握两种生成树协议的配置命令。同时,实验仿真与分析过程表明,在CPT模拟器中进行仿真实验操作简单、方便,有效地克服了真实网络环境下实验可操作性差的问题。