发明内容
本发明提供一种TRILL网络中的路由计算方法和设备,以节省传输路径,并提高报文的转发效率。
为了达到上述目的,本发明提供一种多链接透明互联TRILL网络中的路由计算方法,所述TRILL网络中的每个链路对应有多个路由桥RB设备,所述多个RB设备中包含一个指定路由桥DRB设备,且所述DRB设备虚拟所述多个RB设备所对应的伪节点;该方法包括以下步骤:
所述DRB设备生成所述伪节点的链路状态协议LSP报文,且所述LSP报文中携带所述多个RB设备中端口类型为trunk口或hybrid口的RB设备对应的拓扑信息;
所述DRB设备将所述伪节点的LSP报文发送给所述TRILL网络中的各RB设备,由收到所述LSP报文的各RB设备利用所述LSP报文中携带的拓扑信息计算路由。
所述DRB设备生成所述伪节点的链路状态协议LSP报文,具体包括:
所述DRB设备获得所述多个RB设备中各RB设备对应端口的端口类型;
所述DRB设备将端口类型为trunk口或hybrid口的RB设备对应的拓扑信息添加到所述伪节点的LSP报文中。
所述DRB设备生成所述伪节点的链路状态协议LSP报文,进一步包括:
所述DRB设备在获知自身对应端口的端口类型为access口时,获得所述多个RB设备中各RB设备对应端口的端口类型,并将端口类型为trunk口或hybrid口的RB设备对应的拓扑信息添加到所述伪节点的LSP报文中。
在所述LSP报文的Extended IS reachability TLV中,携带端口类型为trunk口或hybrid口的RB设备对应的拓扑信息。
本发明提供一种多链接透明互联TRILL网络中的路由计算设备,所述TRILL网络中的每个链路对应有多个路由桥RB设备,所述多个RB设备中包含一个指定路由桥DRB设备,且所述DRB设备虚拟所述多个RB设备所对应的伪节点;所述路由计算设备为所述DRB设备,且该DRB设备包括:
生成模块,用于生成所述伪节点的链路状态协议LSP报文,且所述LSP报文中携带所述多个RB设备中端口类型为trunk口或hybrid口的RB设备对应的拓扑信息;
发送模块,用于将所述伪节点的LSP报文发送给所述TRILL网络中的各RB设备,由收到所述LSP报文的各RB设备利用所述LSP报文中携带的拓扑信息计算路由。
所述生成模块,具体用于获得所述多个RB设备中各RB设备对应端口的端口类型;并将端口类型为trunk口或hybrid口的RB设备对应的拓扑信息添加到所述伪节点的LSP报文中。
所述生成模块,进一步用于在获知自身对应端口的端口类型为access口时,获得所述多个RB设备中各RB设备对应端口的端口类型,并将端口类型为trunk口或hybrid口的RB设备对应的拓扑信息添加到所述伪节点的LSP报文中。
在所述LSP报文的Extended IS reachability TLV中,携带端口类型为trunk口或hybrid口的RB设备对应的拓扑信息。
与现有技术相比,本发明至少具有以下优点:本发明中,无论DRB设备对应端口的端口类型是否为access口,均不会浪费传输路径,从而提高TRILL网络的报文转发效率。
具体实施方式
本发明提出了一种TRILL网络中的路由计算方法,该TRILL网络包括多个链路,且TRILL网络中的每个链路对应有多个RB设备,且该多个RB设备中包含一个DRB设备(可以通过指定方式直接确定DRB设备;或者,由同一链路上的各RB设备按照现有流程选举DRB设备),在TRILL网络的某一链路上,RB设备的一个端口下可能存在多个直连邻居,且在这种情况下需要使用伪节点来简化网络拓扑结构。
针对TRILL网络的某一链路,本发明的一种应用场景下,如图2所示,为伪节点与各RB设备之间的拓扑关系示意图,RBa的端口A与RBb、RBc、RBd、RBe分别连接,RBb的端口B与RBa、RBc、RBd、RBe分别连接,RBc的端口C与RBa、RBb、RBd、RBe分别连接,RBd的端口D与RBa、RBb、RBc、RBe分别连接,RBe的端口E与RBa、RBb、RBc、RBd分别连接。
基于上述应用场景,假设RBa为DRB设备,则RBa需要虚拟该多个RB设备(RBa、RBb、RBc、RBd、RBe)所对应的伪节点RBa’;且伪节点RBa’是TRILL网络的虚拟节点(并非真实设备),通过使用伪节点RBa’可以简化网络拓扑,减少路由计算的复杂度及资源消耗。
基于上述应用场景,如图3所示,该方法包括以下步骤:
步骤301,DRB设备生成伪节点的LSP报文,且该LSP报文中携带端口类型为trunk(汇聚)口或hybrid(混合)口的RB设备(该伪节点所在链路的RB设备)对应的拓扑信息。
本发明中,DRB设备生成伪节点的LSP报文具体包括:DRB设备获得多个RB设备中各RB设备对应端口的端口类型,并将端口类型为trunk口或hybrid口的RB设备对应的拓扑信息添加到伪节点的LSP报文中。
需要注意的是,在TRILL网络的每个链路所对应的各RB设备上,端口类型可以为access口、trunk口、或hybrid口;access口不能用于TRILL封装后的数据报文的传输,trunk口能够用于TRILL封装后的数据报文的传输,hybrid口可用于TRILL封装后的数据报文的传输,也可不用于TRILL封装后的数据报文的传输。
以图2为例,端口A为access口,端口B为trunk口,端口C为hybrid口,端口D为access口,端口E为hybrid口;在该应用场景下,DRB设备(RBa)获得RBa对应端口(端口A)的端口类型为access口,RBb对应端口(端口B)的端口类型为trunk口,RBc对应端口(端口C)的端口类型为hybrid口,RBd对应端口(端口D)的端口类型为access口,RBe对应端口(端口E)的端口类型为hybrid口;因此DRB设备(RBa)需要将RBb对应的拓扑信息、RBc对应的拓扑信息、以及RBe对应的拓扑信息添加到伪节点的LSP报文中。
本发明中,可以在LSP报文的Extended(扩展)IS reachability(可达性)TLV(Type Length Value,标签长度值)字段中,携带端口类型为trunk口或hybrid口的RB设备对应的拓扑信息。
需要说明的是,由于RB设备对应的拓扑信息即为邻居关系信息,且LSP报文中只携带端口类型为trunk口或hybrid口的RB设备对应的拓扑信息,因此伪节点RBa’对应的LSP报文的Extended IS reachability TLV中,将存在RBa’到RBb的邻居关系、RBa’到RBc的邻居关系、RBa’到RBe的邻居关系,但不存在RBa’到RBa的邻居关系以及RBa’到RBd的邻居关系。
本发明中,无论DRB设备对应端口的端口类型是否为access口,由DRB设备产生的伪节点对应的LSP报文都正常发送,且不再根据自身的端口类型设置overload标记;但是,在由DRB设备产生的伪节点对应的LSP报文中,Extended IS reachability TLV中只携带端口类型为trunk口或hybrid口的RB设备对应的拓扑信息;因此,DRB设备在获知自身对应端口的端口类型为access口时,将获得多个RB设备中各RB设备对应端口的端口类型,并将端口类型为trunk口或hybrid口的RB设备对应的拓扑信息添加到伪节点的LSP报文中。
步骤302,DRB设备将伪节点的LSP报文发送给TRILL网络中的各RB设备(即TRILL网络的各个链路所分别对应的RB设备),由收到LSP报文的各RB设备利用LSP报文中携带的拓扑信息计算路由。
以图2为例,DRB设备(RBa)需要将伪节点RBa’的LSP报文发送给TRILL网络中的所有RB设备,如将伪节点RBa’的LSP报文分别发送给RBa、RBb、RBc、RBd、RBe,对于TRILL网络中的其他RB设备,相应的处理本应用场景下不再详加阐述。
需要注意的是,在分别发送给RBa、RBb、RBc、RBd、RBe的LSP报文中,携带RBa’到RBb的邻居关系、RBa’到RBc的邻居关系、RBa’到RBe的邻居关系,但不存在RBa’到RBa的邻居关系、以及RBa’到RBd的邻居关系。
此外,在各RB设备发送的LSP报文中,Extended IS reachability TLV中只存在与伪节点的邻居关系;例如,RBa发送的LSP报文中,只存在RBa到RBa’的邻居关系;RBb发送的LSP报文中,只存在RBb到RBa’的邻居关系;RBc发送的LSP报文中,只存在RBc到RBa’的邻居关系;RBd发送的LSP报文中,只存在RBd到RBa’的邻居关系;RBe发送的LSP报文中,只存在RBe到RBa’的邻居关系。
基于在TRILL网络中传输的LSP报文,则收到LSP报文的各RB设备可以利用LSP报文中携带的拓扑信息计算路由;例如,
RBa在路由计算时,由于存在RBa到RBa’的邻居关系,但收到的RBa’的LSP报文中不存在RBa’到RBa的邻居关系,因此RBa和RBa’之间并不是双向可达的RB设备节点,即RBa和RBa’之间不能用于TRILL封装的数据报文的转发;
RBb在路由计算时,由于存在RBb到RBa’的邻居关系,且收到的RBa’的LSP报文中存在RBa’到RBb的邻居关系,因此RBa’和RBb之间是双向可达的RB设备节点,即RBa’和RBb之间能够用于TRILL封装的数据报文的转发;
RBc在路由计算时,由于存在RBc到RBa’的邻居关系,且收到的RBa’的LSP报文中存在RBa’到RBc的邻居关系,因此RBa’和RBc之间是双向可达的RB设备节点,即RBa’和RBc之间能够用于TRILL封装的数据报文的转发;
RBd在路由计算时,由于存在RBd到RBa’的邻居关系,但收到的RBa’的LSP报文中不存在RBa’到RBd的邻居关系,因此RBd和RBa’之间并不是双向可达的RB设备节点,即RBd和RBa’之间不能用于TRILL封装的数据报文的转发;
RBe在路由计算时,由于存在RBe到RBa’的邻居关系,且收到的RBa’的LSP报文中存在RBa’到RBe的邻居关系,因此RBa’和RBe之间是双向可达的RB设备节点,即RBa’和RBe之间能够用于TRILL封装的数据报文的转发。
综上所述,与现有技术相比,本发明中至少具有以下优点:
现有技术中,当DRB设备对应端口的端口类型为access口时,将浪费传输路径,造成TRILL网络报文转发效率的降低;例如,在图2的应用场景下,则RBb至RBa’至RBe之间的传输路径被浪费,且RBb至RBa’至RBc之间的传输路径被浪费,且RBc至RBa’至RBe之间的传输路径被浪费。
本发明中,通过在建立拓扑关系时充分考虑链路上各RB设备的端口类型,使得无论DRB设备对应端口的端口类型是否为access口,该链路上trunk口或hybrid口的RB设备之间仍然能用于TRILL封装后的数据报文的传输,提高TRILL网络的报文转发效率;例如,在图2的应用场景下,则RBb至RBa’至RBe之间的传输路径不会被浪费,且RBb至RBa’至RBc之间的传输路径不会被浪费,且RBc至RBa’至RBe之间的传输路径不会被浪费。
基于与上述方法同样的发明构思,本发明还提出了一种多链接透明互联TRILL网络中的路由计算设备,所述TRILL网络中的每个链路对应有多个路由桥RB设备,所述多个RB设备中包含一个指定路由桥DRB设备,且所述DRB设备虚拟所述多个RB设备所对应的伪节点;所述路由计算设备为所述DRB设备,如图4所示,该DRB设备包括:
生成模块11,用于生成所述伪节点的链路状态协议LSP报文,且所述LSP报文中携带所述多个RB设备中端口类型为trunk口或hybrid口的RB设备对应的拓扑信息;
发送模块12,用于将所述伪节点的LSP报文发送给所述TRILL网络中的各RB设备,由收到所述LSP报文的各RB设备利用所述LSP报文中携带的拓扑信息计算路由。
所述生成模块11,具体用于获得所述多个RB设备中各RB设备对应端口的端口类型;并将端口类型为trunk口或hybrid口的RB设备对应的拓扑信息添加到所述伪节点的LSP报文中。
所述生成模块11,进一步用于在获知自身对应端口的端口类型为access口时,获得所述多个RB设备中各RB设备对应端口的端口类型,并将端口类型为trunk口或hybrid口的RB设备对应的拓扑信息添加到所述伪节点的LSP报文中。
本发明中,在所述LSP报文的Extended IS reachability TLV中,携带端口类型为trunk口或hybrid口的RB设备对应的拓扑信息。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。