基于STP/RSTP协议的环路切断方法及装置与流程

文档序号:11693842阅读:660来源:国知局
基于STP/RSTP协议的环路切断方法及装置与流程
本发明涉及网络技术领域,特别是涉及一种基于STP/RSTP协议的环路切断方法及装置。

背景技术:
传统技术中的交换机等网桥设备不具备路由器的功能,因此在转发数据报文时不会参考报文的转发次数,使得在网络存在环路时,容易造成报文在环路内不断循环和增生,甚至造成恐怖的“广播风暴”,网络将变得不可用。传统技术中的STP(SpanningTreeProtocol,生成树协议)/RSTP(rapidspanningTreeProtocol,快速生成树协议)则用于解决上述环路问题,STP/RSTP协议会剪断构成环路的链路中的一个,使阻断的链路只可以流通BPDU(BridgeProtocolDataUnit,网桥协议数据单元)协议报文,丢弃掉其他一切报文,从而使得环路被切断,阻止了数据报文的循环转发。然而,对于分布式交换机而言,其对应的链路通常包含隧道链路(连接分布式交换机的各个物理节点/物理机的链路,通常链路质量较高)和普通链路(连接外部网络设备的链路),传统技术中的STP/RSTP协议在进行环路切断时,对上述两种链路并没有甄别能力,往往会将隧道链路切断,使其只能传输BPDU协议报文,这就使得分布式交换机的物理节点/物理机之间的隧道链路被切断,分布式交换机变成分离的多个子部分,失去了分布式交换机的功能。因此,传统技术中基于STP/RSTP协议的环路切断方法不支持分布式交换机设备。

技术实现要素:
基于此,有必要提供一种能在分布式交换机环境下使用的基于STP/RSTP协议的环路切断方法。一种基于STP/RSTP协议的环路切断方法,该方法基于分布式交换机,包括:所述分布式交换机的物理节点通过互发BPDU报文确定根桥节点;所述物理节点通过广播BPDU报文选取主桥节点,剩余的物理节点成为从桥节点;所述主桥节点将与所述根桥节点连接的链路对应的端口设置为该物理节点的根端口;所述从桥节点将其上与隧道链路对应的端口设置为该物理节点的根端口;所述从桥节点根据所述STP/RSTP协议选取不对应其根端口的链路进行环路切断。在其中一个实施例中,所述物理节点通过广播BPDU报文选取主桥节点的步骤为:所述物理节点计算其到所述根桥节点的路径开销,通过广播BPDU报文给其他物理节点,并接收其他物理节点广播的BPDU报文,从中提取出路径开销值,选取最小的路径开销值作为主桥开销值进行缓存,选取所述主桥开销值对应的物理节点作为主桥节点。在其中一个实施例中,所述方法还包括:所述主桥节点持续获取其与所述根桥节点的路径开销,并广播给其他物理节点;所述从桥节点接收所述主桥节点广播的BPDU报文,并更新所述主桥开销值;所述从桥节点持续广播和接收BPDU报文,若接收到的BPDU报文中的路径开销值小于所述主桥开销值,则将其设置为主桥开销值,并重新选取设置后的主桥开销值对应的物理节点为主桥节点。在其中一个实施例中,所述选取所述主桥开销值对应的物理节点作为主桥节点的步骤还包括:若所述主桥开销值对应多个物理节点,则根据接收到的BPDU报文选取桥ID最小的物理节点作为主桥节点。在其中一个实施例中,所述物理节点通过互发BPDU报文确定根桥节点的步骤包括:所述物理节点通过互发BPDU报文选取桥ID最小的网络节点确定为根桥节点,所述网络节点为物理节点或所述分布式交换机外的网络交换设备。此外,还有必要提供一种能在分布式交换机环境下使用的基于STP/RSTP协议的环路切断装置。一种基于STP/RSTP协议的环路切断装置,该装置基于分布式交换机,包括多个物理节点,且所述物理节点被划分为主桥节点和从桥节点,其中:所述物理节点用于通过互发BPDU报文确定根桥节点;所述物理节点还用于通过广播BPDU报文选取主桥节点,剩余的物理节点则成为从桥节点;所述主桥节点用于将与所述根桥节点连接的链路对应的端口设置为该物理节点的根端口;所述从桥节点用于将其上与隧道链路对应的端口设置为该物理节点的根端口;所述从桥节点还用于根据所述STP/RSTP协议选取不对应其根端口的链路进行环路切断。在其中一个实施例中,所述物理节点还用于计算其到所述根桥节点的路径开销,通过广播BPDU报文给其他物理节点,并接收其他物理节点广播的BPDU报文,从中提取出路径开销值,选取最小的路径开销值作为主桥开销值进行缓存,选取所述主桥开销值对应的物理节点作为主桥节点。在其中一个实施例中,所述主桥节点还用于持续获取其与所述根桥节点的路径开销,并广播给其他物理节点;所述从桥节点还用于接收所述主桥节点广播的BPDU报文,并更新所述主桥开销值;所述从桥节点还用于持续广播和接收BPDU报文,若接收到的BPDU报文中的路径开销值小于所述主桥开销值,则将其设置为主桥开销值,并重新选取设置后的主桥开销值对应的物理节点为主桥节点。在其中一个实施例中,所述物理节点还用于在所述主桥开销值对应多个物理节点时,根据接收到的BPDU报文选取桥ID最小的物理节点作为主桥节点。在其中一个实施例中,所述物理节点还用于通过互发BPDU报文选取桥ID最小的网络节点确定为根桥节点,所述网络节点为物理节点或所述分布式交换机外的网络交换设备。上述基于STP/RSTP协议的环路切断方法及装置,通过在分布式交换机中选取物理节点作为主桥节点,并设置其与所述根桥节点连接的链路对应的端口为根端口来保证与根桥节点的通信;通过将从桥节点上与隧道链路对应的端口设置为根端口来切断环路,使得在根据STP/RSTP协议进行环路切断时,分布式交换机的物理节点上与隧道链路对应的端口均具有较高的优先级不被阻塞,从而保证了分布式交换机在进行环路切断时各个物理节点的完整性。附图说明图1为一个实施例中分布式交换机的链路状态示意图;图2为传统技术中进行环路切断之后的分布式交换机的链路状态示意图;图3为一个实施例中基于STP/RSTP协议的环路切断方法的流程图;图4为一个实施例中进行环路切断之后的分布式交换机的链路状态示意图;图5为另一个实施例中进行环路切断之后的分布式交换机的链路状态示意图;图6为一个实施例中基于STP/RSTP协议的环路切断装置的结构示意图。具体实施方式在传统技术中,如图1所示,其中,DA、DB和DC是分布式交换机的三个支持STP/RSTP协议的物理节点,SW为连接三个物理节点的普通交换设备,DA、DB和DC与SW之间的链路均为隧道链路(如图1中的实线连接关系),也就是说,三个支持STP/RSTP协议的物理节点DA、DB和DC通过普通交换设备SW在三者之间建立了星型的隧道链路,使得DA、DB和DC两两之间均可通过隧道链路连接。DA、DB和DC上与隧道链路对应的端口分别为a1、b1和c1端口。DA、DB和DC之间也存在普通链路(如图1中的虚线连接关系),其对应的端口分别为:a2与b2和b4与c2。图1中,VS为分布式交换机外部支持STP/RSTP协议的网络交换设备,其与分布式交换机中的DA和DB均存在普通链路连接(如图1中的VS与DA、VS与DB之间的虚线连接关系)。相应的端口分别为v1与a3和v2与b3。在传统技术中,根据STP/RSTP协议,若设备VS的桥ID最优,分步式交换机中的物理节点的桥ID依次为DA优于DB优于DC(SW不支持STP/RSTP协议,可不考虑其桥ID),则VS会被选举为根桥节点。对于环路VS-DA-SW-DB-VS中的4个端口a1、a3、b1和b3来说,由于端口a3和b3与VS连接,且DA的桥ID优于DB的桥ID(排除掉剩下的端口a1),因此阻塞端口b1,b1对应的链路为隧道链路。需要说明的是,此处阻塞端口即表示切断该端口对应的链路,但该链路仍可传输BPDU报文,从而破除环路,以下不再赘述。对于环路DA-SW-DB-DA中的4个端口a1、a2、b1和b2来说,由于DA的桥ID优于DB的桥ID(排除掉端口a1和a2),且SW为不支持STP/RSTP协议的设备,排除掉端口b1),因此会阻塞端口b2,b2对应的链路为普通链路。同理,对于环路DB-SW-DC-DB而言,会阻塞c2端口。最终如图2所示,分步式交换机中的物理节点DB与DA、DC的隧道链路已被切断,使得其脱离了分布式交换机成为了独立的网络设备,因此,传统技术中的基于STP/RSTP协议的切断环路的方法会造成分布式交换机上的物理节点脱离。在一个实施例中,为解决前述提到的传统技术中的基于STP/RSTP协议的切断环路的方法会造成分布式交换机上的物理节点脱离的问题,特提出了一种基于STP/RSTP协议的环路切断方法,该方法的执行依赖于计算机程序,可运行于基于冯洛伊曼体系的分布式交换机或其他分布式网络交换设备上,该分布式交换机或分布式网络交换设备包括多个物理节点。如图3所示,该方法包括:步骤S102,分布式交换机的物理节点通过互发BPDU报文确定根桥节点。步骤S104,物理节点通过广播BPDU报文选取主桥节点,剩余的物理节点成为从桥节点。步骤S106,主桥节点将与根桥节点连接的链路对应的端口设置为该物理节点的根端口。步骤S108,从桥节点将其上与隧道链路对应的端口设置为该物理节点的根端口。步骤S110,从桥节点根据STP/RSTP协议选取不对应其根端口的链路进行环路切断。在本实施例中,物理节点通过广播BPDU报文选取主桥节点的步骤为:物理节点计算其到根桥节点的路径开销,通过广播BPDU报文广播给其他物理节点,并接收其他物理节点广播的BPDU报文,从中提取出路径开销值,选取最小的路径开销值作为主桥开销值进行缓存,选取所述主桥开销值对应的物理节点作为主桥节点。下面结合图1和图4详细陈述本实施例中切断环路的过程。对于图1中的物理节点DA、DB和DC,先各自计算其到根节点VS的路径开销,然后通过BPDU报文将其广播给对方,即DA广播给DB和DC,DB广播给DA和DC,DC广播给DA和DB。DA接收到DB和DC的广播后,若发现DB广播的路径开销最小,则将其作为主桥开销值存储,同理,DB和DC也会将DB广播的路径开销作为主桥开销值存储,此时,DB即被选定为主桥节点,相应的,DA和DC即为从桥节点。选定DB为主桥节点后,DB则将其与VS的链路对应的端口b3设置为根端口,根端口为STP/RSTP协议中的概念,用于表示链路状况最好的端口。在STP/RSTP协议中根端口为根据接收到的相互之间发送的BPDU报文提取节点之间的路径开销,从而选取的网络设备上对外链路环境最好的链路对应的端口。而在本实施例中,主桥节点可直接设置其与根桥节点的链路对应的端口为根端口。在上例中,即为主桥节点DB将b3端口设置为根端口。相应的,从桥节点DA和DC则分别将隧道链路对应的a1端口和c1端口设置为其自身的根端口。设置根端口后,分布式交换机中的物理节点DA、DB和DC即可根据STP/RSTP协议选取不对应其根端口的链路进行环路切断,例如:对于环路VS-DA-SW-DB-VS中的4个端口a1、a3、b1和b3来说,由于b3为主桥节点DB的根端口,a1为从桥节点DA的根端口,且DB为主桥节点,因此,阻塞a3端口。对于环路DA-SW-DB-DA中的4个端口a1、a2、b1和b2来说,由于DB为主桥节点(排除b1和b2),且a1为从桥节点DA的根端口,因此,阻塞a2端口。同理,对于环路DB-SW-DC-DB而言,则会阻塞c2端口。至此,如图4所示,所有环路均被破坏,但分布式交换机的物理节点DA、DB和DC相互之间仍通过隧道接口(如图4中实线连接部分所示)连接,从而保证了分布式交换机的完整性。再例如,如图5所示,分布式交换机S1包括物理节点S1A和S1B,分布式交换机S2包括物理节点S2A和S2B。S1A和S1B之间为隧道链路(如图5中的实线标记所示),对应端口1a2和1b1;S1A和S2A之间为普通链路(如图5中的虚线标记所示),对应的端口为1a1和2a1;S2A和S2B之间为隧道链路(如图5中的实线标记所示),对应端口2a2和2b1;S2B和S1B之间为普通链路(如图5中的虚线标记所示),对应的端口为2b2和1b2。若物理节点S1A被选定位根桥节点,则S1A在分布式交换机S1中同样为主桥节点,因此,S1B的端口1b2被阻塞。而在分布式交换机S2中,若选取了S2A为主桥节点,则S2B的2b2端口被阻塞。相应的即S2B和S1B之间普通链路被阻塞,而分布式交换机S1和分布式交换机S2中的隧道链路均未被破坏,仍然保持了完整性。且分布式交换机S1和S2通过路径开销较小的链路(端口1a1-端口2a1之间的链路)连接。进一步的,主桥节点还可持续获取其与根桥节点的路径开销,并广播给其他物理节点。从桥节点接收主桥节点广播的BPDU报文,并更新主桥开销值。从桥节点持续广播和接收BPDU报文,若接收到的BPDU报文中的路径开销值小于主桥开销值,则将其设置为主桥开销值,并重新选取设置后的主桥开销值对应的物理节点为主桥节点。如上例中,DB在被选定为主桥节点后仍定时广播其与根桥节点VS的路径开销给DA和DC,若DA接收到相应的BPDU报文后,发现DB的路径开销大于其自身与根桥节点的路径开销时,则将其与根桥节点的路径开销广播给DB和DC,DB和DC则将其设置为主桥开销值,此时,DA即被选取为主桥节点。也就是说,分布式交换机中的物理节点可根据与根桥节点的路径开销的实时变化情况随时调整主桥节点的归属,从而使得总是与根桥节点的链路状况最优的物理节点作为主桥节点,使得分布式交换机与外部的网络交换设备的路径开销为最优状态。进一步的,在本实施例中,选取主桥开销值对应的物理节点作为主桥节点的步骤还包括:若主桥开销值对应多个物理节点,则根据接收到的BPDU报文选取桥ID最小的物理节点作为主桥节点。如上例中,若DA和DB到根桥节点VS的路径开销相同,而DA的桥ID小于DB的桥ID,则将DA设置为主桥节点。在一个实施例中,物理节点通过互发BPDU报文确定根桥节点的步骤包括:物理节点通过互发BPDU报文选取桥ID最小的网络节点确定为根桥节点,网络节点为物理节点或分布式交换机外的网络交换设备。如上例中,VS、DA、DB和DC先广播各自的桥ID,然后选择桥ID最小的VS作为根桥节点,该VS设备即为分布式交换机外的支持STP/RSTP协议的网络交换设备。在一个实施例中,如图6所示,一种基于STP/RSTP协议的环路切断装置,基于分布式交换机,包括多个物理节点,且物理节点被划分为主桥节点10和从桥节点20,其中:物理节点用于通过互发BPDU报文确定根桥节点30;物理节点还用于通过广播BPDU报文选取主桥节点10,剩余的物理节点则成为从桥节点20;主桥节点10用于将与根桥节点连接的链路对应的端口设置为该物理节点的根端口;从桥节点20用于将其上与隧道链路对应的端口设置为该物理节点的根端口;从桥节点20还用于根据STP/RSTP协议选取不对应其根端口的链路进行环路切断。在一个实施例中,物理节点还用于计算其到根桥节点的路径开销,通过广播BPDU报文给其他物理节点,并接收其他物理节点广播的BPDU报文,从中提取出路径开销值,选取最小的路径开销值作为主桥开销值进行缓存,选取主桥开销值对应的物理节点作为主桥节点。在其中一个实施例中,主桥节点10还用于持续获取其与根桥节点的路径开销,并广播给其他物理节点。从桥节点20还用于接收主桥节点广播的BPDU报文,并更新主桥开销值。从桥节点20还用于持续广播和接收BPDU报文,若接收到的BPDU报文中的路径开销值小于主桥开销值,则将其设置为主桥开销值,并重新选取设置后的主桥开销值对应的物理节点为主桥节点。在一个实施例中,物理节点还用于在主桥开销值对应多个物理节点时,根据接收到的BPDU报文选取桥ID最小的物理节点作为主桥节点。在一个实施例中,物理节点还用于通过互发BPDU报文选取桥ID最小的网络节点确定为根桥节点30,网络节点为物理节点或分布式交换机外的网络交换设备。上述基于STP/RSTP协议的环路切断方法及装置,通过在分布式交换机中选取物理节点作为主桥节点,并设置其与所述根桥节点连接的链路对应的端口为根端口来保证与根桥节点的通信;通过将从桥节点上与隧道链路对应的端口设置为根端口来切断环路,使得在根据STP/RSTP协议进行环路切断时,分布式交换机的物理节点上与隧道链路对应的端口均具有较高的优先级不被阻塞,从而保证了分布式交换机在进行环路切断时各个物理节点的完整性。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1