发明内容
为了克服现有技术中的缺陷和不足,本发明提出一种多链接透明互联网络中的路径选择方法,解决了现有技术中由于邻居选择方法错误可能导致选择最优路径的效率较低及RB设备使用存在局限性的问题。
本发明公开一种多链接透明互联网络中的路径选择方法,包括如下步骤:
S1:路由交换机(RB)学习建立链路状态数据库(LSDB),并将所述数据库中的链路状态信息传递到所有预先配置为多链接透明互联(TRILL)模式的路由交换机端口;所述链路状态信息(LSP)记录有从产生到传递到当前路由交换机经过的端口预先配置的路径代价值;
S2:根据待传递的链路状态信息(LSP),当前路由交换机判断产生所述链路状态信息的源路由交换机是否是其本身,如是,则执行步骤S3;否则,执行步骤S4;
S3:根据所述待传递的链路状态信息类型,执行所述链路状态信息的路径代价值是否累加当前路由交换机出端口的路径代价值的操作,当前路由交换机根据自身维护的链路状态数据库,将所述链路状态信息按照正确的TRILL最优数据转发表进行传递;
S4:所述链路状态信息的路径代价值保持不变,查询当前路由交换机所维护的链路状态数据库中是否存在除邻居信息外与所述待传递链路状态信息相同的链路状态信息,根据查询的结果执行是否更新当前路由交换机的邻居信息的操作,当前路由交换机将所述链路状态信息按照正确的TRILL最优数据转发表进行传递。
进一步地,步骤S1中所述链路状态信息在传统ISIS协议中链路状态信息(LSP)的通用报头的尾部增加一个路径代价值字段,所述路径代价值字段用于记录LSP从产生到传递到当前路由交换机经过的各接收端口配置的路径代价值。
进一步地,所述步骤S3进一步包括,判断所述链路状态信息是否为伪节点类型,如所述待传递的链路状态信息不是伪节点类型,则所述链路状态信息的路径代价值保持不变;如所述待传递的链路状态信息是伪节点类型,进一步判断传递所述链路状态信息的出端口和伪节点是否在同一链路上,如否,则链路状态信息的路径代价值累加出端口的路径代价值;如是,则链路状态信息的路径代价值保持不变。
进一步地,所述步骤S4进一步包括,如当前路由交换机所维护的链路状态数据库中不存在与所述待传递链路状态信息相同的链路状态信息,则当前路由交换机将所述待传递链路状态信息保存到数据库中且其邻居信息保持不变;如当前路由交换机所维护的数据库中存在除邻居信息外与所述待传递链路状态信息相同的链路状态信息,通过比较两个链路状态信息通用报头中路径代价值字段的路径代价值大小,更新当前路由交换机的邻居信息。
进一步地,当前路由交换机设置链路状态信息的路径代价值最小的邻居为LSP的邻居,并更新其维护的链路状态数据库,根据所述数据库信息计算出正确的TRILL最优数据转发表。
进一步地,所述TRILL最优数据转发表通过对当前路由交换机到目的路由交换机的出端口的路径代价值进行累加,计算出最优路径。
进一步地,如果存在到达某个路由交换机(RB)的LSP的路径代价值相等的情况,路由交换机(RB)按照先收到该LSP的邻居来计算最优路径。
本发明的技术方案在传统ISIS协议的LSP的通用报头部分增加了适用于TRILL网络的LSP传递时的路径代价值字段,LSP在传递时携带经过各端口配置的路径的代价值,使TRILL网络中每个RB在从不同的路径收到相同的LSP时,根据路径代价值判断出从哪个邻居接收该LSP时路径代价值最小,从而更新RB的邻居信息,RB根据维护的LSP数据库,按照正确的TRILL最优数据转发表进行数据传递,此外,所述方法能够正确的计算出到达某个RB的等价多路径拓扑信息,可以高效、准确、安全的进行流量的负载分担,提高了TRILL网络的转发性能。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以详细说明。
图1为本发明实施例的多链接透明互联网络中的路径选择方法的原理图。如图1所示,在广播网络中,以太网接入设备交换机RB1、RB2、RB3、RB4为多端口的网络设备,所述交换机RB1、RB2、RB3、RB4组成了一个环状拓扑,本实施例基于所述网络结构在TRILL模式下选择最优路径,实现终端系统之间的数据流交换。
配置交换机RB1、RB2、RB3、RB4的以太网端口Ethernet1/1、以太网端口Ethernet1/2进入TRILL模式,所述以太网端口Ethernet1/1、Ethernet1/2为TRILL网络中的上行口;配置交换机RB1、RB4的以太网端口Ethernet1/3同样进入TRILL模式,所述以太网端口Ethernet1/3为TRILL网络中的下行口,RB1的以太网端口Ethernet1/3下连接用户A、RB4的以太网端口Ethernet1/3下连接用户B。用户A和用户B通过TRILL网络进行数据的交换。在TRILL模式下,所述交换机RB1、RB2、RB3、RB4称为路由交换机(RB)。
配置交换机RB1、RB2、RB3、RB4的各端口进入TRILL模式并分别配置启动TRILLIS-IS协议,TRILL网络中各路由交换机(RB)通过LSP交换各自的拓扑信息,进行远端Nickname的学习、分发树的计算和转发表的计算。在IS-IS协议中,每个RB都传递收到的LSP,各个RB维护了整个拓扑中所有RB的LSP信息。按照图2所示的拓扑结构,路由交换机RB1在其以太网端口Ethernet1/1、Ethernet1/2都能收到路由交换机RB2的LSP信息,选择的RB2的LSP的邻居不同,根据所述邻居信息产生的下一跳信息有可能也不同。在传统的IS-IS协议中,这个邻居是根据收到RB2的LSP的顺序来认定的,因此,RB1有可能认为这个LSP的邻居为RB3,如果将RB3认定为这个LSP的邻居,根据图2所示的网络结构,则会导致拓扑的最优转发表出现错误。
为了解决上述存在的问题,本实施例按照如下方法进行实施:首先,配置路由交换机各端口的路径代价值,通过修改LSP通用报头部分,在通用报头的尾部增加一个路径代价值字段,用所述路径代价值字段记录LSP从产生到当前路由交换机经过的各端口配置的路径代价值,所述路径代价值字段长度可根据实际需求进行设置,如设置为4字节、5字节等。由图2可知,设配置路由交换机RB1的以太网端口Ethernet 1/1的路径代价值为25,以太网端口Ethernet 1/2的路径代价值为10;路由交换机RB2的以太网端口Ethernet1/1的路径代价值为5,以太网端口Ethernet1/2的路径代价值为5;路由交换机RB3的以太网端口Ethernet1/1的路径代价值为20,以太网端口Ethernet1/2的路径代价值为10;路由交换机RB4的以太网端口Ethernet1/1的路径代价值为15,以太网端口Ethernet1/2的路径代价值为20。此处路由交换机的连接关系及端口的路径代价值可根据实际情况进行设置。路由交换机RB2在发送它自己产生的LSP时,在LSP的通用报头的路径代价值字段中携带路径代价值,每经过一个RB,该LSP头部的路径代价值字段的值都会累加该RB接收端口预先配置的路径代价值。按照上述方法,RB2的LSP经过RB4、RB3到达RB1时,它的LSP的路径代价值字段的值为50,而RB2的LSP从另一条途径直接到达RB1时,RB2的LSP的路径代价值字段的路径代价值为25,这种情况下,路由交换机RB1通过对两次到达的RB2的LSP的路径代价值字段的路径代价值进行比较,选择路径代价值小的邻居,因此,路由交换机RB1会选择第二条路径,认定RB2的LSP是从RB2这个邻居收到的。路由交换机RB1在根据自身维护的链路状态数据库信息计算转发表时,就会按照RB2的LSP的邻居为RB2计算TRILL最优路径。
如果存在到达某个路由交换机RB的LSP的路径代价值相等的情况,路由交换机RB则会按照先收到该LSP的邻居来计算最优路径,由于LSP的邻居只能设置为一个,如路径代价值相同,无论选择哪个LSP的邻居都可以。根据图2所示的拓扑结构,路由交换机RB4产生的LSP传递到路由交换机RB1,传递时在所经过路由交换机的接收端口累加路径代价值,路由交换机RB1接收到RB4的LSP路径代价值相同,都为30,因此,路由交换机RB1根据其自身维护的链路状态数据库信息计算出的转发表RB1到RB4有两个下一跳,RB2和RB3,可以进行流量的负载分担。所述转发表的计算根据当前路由交换机出端口的路径代价值及经过的路由交换机的路径代价值进行累加,计算出最优路径。
另外,还有一种情况是伪节点的LSP。在广播网络中,IS-IS需要在所有的路由器中选举一个路由器作为DIS(Designated Intermediate System),DIS用来代表整个伪节点。伪节点是用来模拟广播网络的一个虚拟节点,并非真实的路由器。
如图2所示的拓扑中,路由交换机RB2和RB4直接根据DIS((DesignatedIntermediate System)生成伪节点的LSP,这个LSP的传送也需要携带路径代价值,如设路由交换机RB4为路由交换机RB2和路由交换机RB4链路的DIS,路由交换机RB4将产生一个伪节点类型的LSP,这个伪节点类型的LSP在经过路由交换机RB4进行传递时,可以分别通过路由交换机以太网端口Ethernet1/1和以太网端口Ethernet1/2进行传递。如果所述伪节点类型的LSP从RB4的以太网端口Ethernet1/1传递出去,虽然该伪节点类型的LSP是自己产生的,由于该伪节点类型的LSP与伪节点不在同一链路上,因此,传递时要加上出端口Ethernet1/1的路径代价值15;如果所述伪节点类型的LSP从RB4的Ethernet1/2端口传递出去,由于该伪节点类型的LSP与伪节点在同一链路上,因此,传递时不需要加出以太网端口Ethernet1/2的路径代价值。根据上述方法,路由交换机RB1在接收到该伪节点的LSP时,能够根据LSP的路径代价值认定该伪节点类型的LSP邻居为RB2,因为从RB2这条路径得到的该伪节点的LSP的路径代价值为30,而从RB3这条路径得到的该伪节点的LSP的路径代价值为45,通过比较选择路径代价值小的邻居,因此选择RB2为该伪节点LSP的邻居。
图2为本发明实施例的多链接透明互联网络中的路径选择方法流程图;该方法具体包括如下步骤:
S1:路由交换机(RB)学习建立链路状态数据库(LSDB),并将所述数据库中的链路状态信息传递到所有预先配置为多链接透明互联(TRILL)模式的路由交换机端口;所述链路状态信息(LSP)记录有LSP从产生到传递到当前路由交换机经过的端口预先配置的路径代价值;
配置RB的各端口进入TRILL模式,并配置各端口的路径代价值,RB在TRILL网络中传递LSP信息并构建LSP数据库;并将所述数据库中的链路状态信息传递到所有预先配置为多链接透明互联(TRILL)模式的路由交换机端口。所述链路状态信息在传统ISIS协议中链路状态信息(LSP)的通用报头的尾部增加一个路径代价值字段,所述路径代价值字段用于记录LSP从产生到传递到当前路由交换机经过的各接收端口配置的路径代价值。所述路径代价值字段的长度可根据需求进行设置,如设置为4字节、5字节等。
S2:根据待传递的链路状态信息(LSP),当前路由交换机判断产生所述链路状态信息的源路由交换机是否是其本身,如是,则执行步骤S3;否则,执行步骤S4;
如所述链路状态信息是由当前路由交换机产生的,则执行步骤S3;如所述链路状态信息不是由当前路由交换机产生的,则执行步骤S4;
S3:根据所述待传递的链路状态信息类型,执行所述链路状态信息的路径代价值是否累加当前路由交换机出端口的路径代价值的操作,当前路由交换机根据自身维护的链路状态数据库,将所述链路状态信息按照正确的TRILL最优数据转发表进行传递;
当前路由交换机传递其本身产生的LSP,步骤具体包括:
S301:判断所述LSP的类型是否为伪节点类型,如是,执行步骤S302;如否,执行步骤S303;
S302:判断所述伪节点类型的LSP与伪节点是否在同一链路上,如是,执行步骤S303;如否,执行步骤S304;
S303:LSP的路径代价值保持不变,当前路由交换机根据自身维护的链路状态数据库,按照正确的TRILL最优数据转发表,将所述链路状态信息从交换机的相应端口进行传递;
S304:LSP的路径代价值累加当前路由交换机出端口配置的路径代价值,当前路由交换机并根据自身维护的链路状态数据库,按照正确的TRILL最优数据转发表,将所述链路状态信息从交换机的相应端口进行传递。
S4:所述链路状态信息的路径代价值保持不变,查询当前路由交换机其所维护的链路状态数据库中是否存在除邻居信息外与所述待传递链路状态信息相同的链路状态信息,根据查询的结果执行是否更新当前路由交换机的邻居信息的操作,当前路由交换机将所述链路状态信息按照正确的TRILL最优数据转发表进行传递。
所述TRILL最优数据转发表通过对当前路由交换机到目的路由交换机的出端口的路径代价值进行累加,计算出最优路径。
当前路由交换机传递不是其本身产生的LSP,步骤具体包括
S401:根据所述待传递的LSP,当前路由交换机查询数据库中是否存在出邻居信息外与所述LSP相同的LSP,如是,执行步骤S403;如否,执行步骤S402;
S402:当前路由交换机将所述待传递链路状态信息保存到数据库中且其邻居信息保持不变,当前路由交换机根据其所维护的更新后的链路状态数据库,按照正确的TRILL最优数据转发表,将所述链路状态信息从交换机的相应端口进行传递;
S403:通过比较两个链路状态信息通用报头中路径代价值字段的路径代价值,路由交换机设置路径代价最小的邻居为LSP的邻居,当前路由交换机根据其所维护的更新后的链路状态数据库,按照正确的TRILL最优数据转发表,将所述链路状态信息从交换机的相应端口进行传递。
所述TRILL最优数据转发表通过对当前路由交换机到目的路由交换机的出端口的路径代价值进行累加,计算出最优路径。
此外,本发明实施例中,如果存在到达某个路由交换机RB的LSP的路径代价值相等的情况,路由交换机RB则会按照先收到该LSP的邻居来计算最优路径,由于LSP的邻居只能设置为一个,如LSP的路径代价值相同,无论选择哪个LSP的邻居都可以。
图5为本发明实施例的修改后的链路状态信息通用报头的示意图。本实施例中,在原有的LSP报文通用报头的尾部增加一个4字节的路径代价值字段,所述路径代价值字段表示该LSP在网络中从产生到当前路由交换机经过的路径代价值。修改后的通用报头的主要字段解释如下:
501)PDU Length:PDU的总长度,以字节为单位;
502)Remaining Lifetime:LSP的存活时间,以秒为单位;
503)LSP ID:由三部分组成,System ID、伪节点ID(一字节)和LSP的分片号(一字节);
504)Sequence Numer:LSP的序列号;
505)Checksum:LSP的校验和;
506)P(Partition Repair):仅与L2LSP有关,表示路由器是否支持自动修复区域分割;
507)ATT(Attachment):由L1/L2路由器产生,但仅与L1 LSP有关,表示产生此LSP的路由器(L1/L2路由器)与多个区域相连接;
508)OL(LSDB Overload):表示本路由器因内存不足而导致LSDB不完整。其他路由器在得知这一信息后,就不会把需要此路由器转发的报文发给它,但到此路由器直连地址的报文仍然可以被转发;
509)IS Type:生成LSP的路由器的类型;
510)LSP Metric:是路由算法用以确定到达目的地的最佳路径的计量标准,如路径长度。路径长度是最常用的路由metric。一些路由协议允许网管给每个网络链接人工赋以代价值,这种情况下,路由长度是所经过各个链接的代价总和。
本发明的技术方案,在传统ISIS协议的LSP的通用报头部分增加了适用于TRILL网络的LSP传递时的路径代价值字段,LSP在传递时携带经过各端口配置的路径的代价值,使TRILL网络中每个RB在从不同的路径收到相同的LSP时,根据路径代价值判断出从哪个邻居接收该LSP时路径代价值最小,从而更新RB的邻居信息,RB根据维护的LSP数据库,按照正确的TRILL最优数据转发表进行数据传递,此外,所述方法能够正确的计算出到达某个RB的等价多路径拓扑信息,可以高效、准确、安全的进行流量的负载分担,提高了TRILL网络的转发性能。
上述仅为本发明的较佳实施例及所运用技术原理,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围内。