发明内容
本发明实施例提供了一种MPLS网络中LSP的建立方法和设备,以减少LSP所消耗的软硬件资源。
为了达到上述目的,本发明实施例提供一种多协议标签交换MPLS网络中标签交换路径LSP的建立方法,应用于MPLS网络中,该方法包括:
入节点设备在计算路由时,获得所述路由对应的出节点设备的环回口路由;
如果所述路由与所述环回口路由相匹配,则所述入节点设备建立所述出节点设备的环回口路由对应的LSP;
如果所述路由与所述环回口路由不匹配,则所述入节点设备检查本地是否记录有所述出节点设备对应的公网通用标签;
如果记录有所述出节点设备对应的公网通用标签,则当所述入节点设备上建立有所述出节点设备的环回口路由对应的LSP时,所述入节点设备利用所述出节点设备的环回口路由对应的LSP建立所述路由对应的LSP,使所述路由对应的LSP的出标签为所述出节点设备对应的公网通用标签,所述路由对应的LSP的下一跳为所述出节点设备的环回口路由对应的LSP。
所述MPLS网络的路由协议为开放最短路径优先OSPF,对于1类、2类、3类和7类路由,所述出节点设备的环回口路由为所述路由对应链路状态广播LSA的发布设备的环回口路由;对于5类路由,当自治系统边界路由器ASBR在本区域内时,所述出节点设备的环回口路由为所述路由对应LSA的发布设备的环回口路由,当ASBR在其他区域内时,所述出节点设备的环回口路由为所述路由所在最短路径优先SPF路径上最后设备的环回口路由。
所述入节点设备检查本地是否记录有所述出节点设备对应的公网通用标签,具体包括:
当在各设备上配置公网通用标签时,所述入节点设备根据自身的配置信息检查本地是否记录有所述出节点设备对应的公网通用标签。
所述入节点设备检查本地是否记录有所述出节点设备对应的公网通用标签,具体包括:
当各设备通过标签映射消息将自身对应的公网通用标签通知给其他设备时,所述入节点设备根据自身收到的标签映射消息维护各设备的公网通用标签,利用维护信息检查本地是否记录有所述出节点设备对应的公网通用标签。
所述入节点设备根据自身收到的标签映射消息维护各设备的公网通用标签,进一步包括:
所述入节点设备在收到标签映射消息时,如果获知所述标签映射消息的U比特位置为指定标识,且第一个转发等价类FEC元素的前缀为特定地址,则从第二个FEC元素中获得所述标签映射消息对应的环回口路由;
如果当前未存储有所述环回口路由对应的公网通用标签,则所述入节点设备记录所述标签映射消息中携带的公网通用标签、所述环回口路由、所述标签映射消息中第三个FEC元素中实例号之间的对应关系;
如果当前存储有所述环回口路由对应的公网通用标签,则所述入节点设备比较所述标签映射消息中第三个FEC元素中实例号与当前存储的公网通用标签对应的实例号之间的大小关系;如果前者大于后者,则所述入节点设备通过所述标签映射消息中携带的公网通用标签更新当前存储的公网通用标签,并通过所述标签映射消息中第三个FEC元素中实例号更新当前存储的实例号;如果前者小于后者,则所述入节点设备丢弃所述标签映射消息。
在所述入节点设备上建立有所述出节点设备的环回口路由对应的LSP,所述入节点设备利用所述出节点设备的环回口路由对应的LSP建立所述路由对应的LSP,之前进一步包括:
所述入节点设备检查所述路由与所述出节点设备的环回口路由是否具有相同的下一跳;如果有相同的下一跳,则进一步执行在所述入节点设备上建立有所述出节点设备的环回口路由对应的LSP,所述入节点设备利用所述出节点设备的环回口路由对应的LSP建立所述路由对应的LSP的过程。
所述方法进一步包括:当所述入节点设备上没有建立所述出节点设备的环回口路由对应的LSP时,所述入节点设备根据SPF树查找自身到所述出节点设备的路径上的最远完整标签交换路由器LSR,并利用所述最远完整LSR的环回口路由对应的LSP建立所述路由对应的LSP,使所述路由对应的LSP的出标签为所述最远完整LSR对应的公网通用标签,所述路由对应的LSP的下一跳为所述最远完整LSR的环回口路由对应的LSP。
所述入节点设备根据SPF树查找自身到所述出节点设备的路径上的最远完整LSR,具体包括:
在所述入节点设备到所述出节点设备的路径上,所述入节点设备从直连下一跳开始向后查找,得到出节点设备的方向SPF树路径上第一个没有设备的环回口路由对应的LSP的设备R1,并从所述设备R1的前一跳逆着SPF树路径向所述入节点设备方向查找,得到第一个对应有公网通用标签的LSR,并确定该LSR为所述最远完整LSR。
一种路由设备,用于多协议标签交换MPLS网络中的入节点设备,所述路由设备包括:
获得模块,用于在计算路由时,获得所述路由对应的出节点设备的环回口路由;
第一建立模块,用于在所述路由与所述环回口路由相匹配时,建立所述出节点设备的环回口路由对应的标签交换路径LSP;
查询模块,用于当所述路由与所述环回口路由不匹配时,检查本设备是否记录有所述出节点设备对应的公网通用标签;
第二建立模块,用于当记录有所述出节点设备对应的公网通用标签,且当本设备上建立有所述出节点设备的环回口路由对应的LSP时,利用所述出节点设备的环回口路由对应的LSP建立所述路由对应的LSP,使所述路由对应的LSP的出标签为所述出节点设备对应的公网通用标签,所述路由对应的LSP的下一跳为所述出节点设备的环回口路由对应的LSP。
所述MPLS网络的路由协议为开放最短路径优先OSPF,对于1类、2类、3类和7类路由,所述出节点设备的环回口路由为所述路由对应链路状态广播LSA的发布设备的环回口路由;对于5类路由,当自治系统边界路由器ASBR在本区域内时,所述出节点设备的环回口路由为所述路由对应LSA的发布设备的环回口路由,当ASBR在其他区域内时,所述出节点设备的环回口路由为所述路由所在最短路径优先SPF路径上最后设备的环回口路由。
所述查询模块,具体用于当在MPLS网络中的各设备上配置公网通用标签时,根据本设备的配置信息检查本设备上是否记录有所述出节点设备对应的公网通用标签。
所述查询模块,具体用于当MPLS网络中的各设备通过标签映射消息将自身对应的公网通用标签通知给其他设备时,根据本设备收到的标签映射消息维护各设备的公网通用标签,以及利用本设备的维护信息检查本设备上是否记录有所述出节点设备对应的公网通用标签。
所述查询模块,进一步用于在收到标签映射消息时,如果获知所述标签映射消息的U比特位置为指定标识,且第一个转发等价类FEC元素的前缀为特定地址,则从第二个FEC元素中获得所述标签映射消息对应的环回口路由;
如果当前未存储有所述环回口路由对应的公网通用标签,则记录所述标签映射消息中携带的公网通用标签、所述环回口路由、所述标签映射消息中第三个FEC元素中实例号之间的对应关系;
如果当前存储有所述环回口路由对应的公网通用标签,则比较所述标签映射消息中第三个FEC元素中实例号与当前存储的公网通用标签对应的实例号之间的大小关系;如果前者大于后者,则通过所述标签映射消息中携带的公网通用标签更新当前存储的公网通用标签,并通过所述标签映射消息中第三个FEC元素中实例号更新当前存储的实例号;如果前者小于后者,则丢弃所述标签映射消息。
所述第二建立模块,具体用于在检查所述路由与所述出节点设备的环回口路由是否具有相同的下一跳之后,如果有相同的下一跳,则进一步执行在本设备上建立有所述出节点设备的环回口路由对应的LSP,利用所述出节点设备的环回口路由对应的LSP建立所述路由对应的LSP的过程。
还包括:第三建立模块,用于当本设备上没有建立所述出节点设备的环回口路由对应的LSP时,根据SPF树查找本设备到所述出节点设备的路径上的最远完整标签交换路由器LSR,并利用所述最远完整LSR的环回口路由对应的LSP建立所述路由对应的LSP,使所述路由对应的LSP的出标签为所述最远完整LSR对应的公网通用标签,所述路由对应的LSP的下一跳为所述最远完整LSR的环回口路由对应的LSP。
所述第三建立模块,进一步用于在本设备到所述出节点设备的路径上,从本设备直连下一跳开始向后查找,得到出节点设备的方向SPF树路径上第一个没有设备的环回口路由对应的LSP的设备R1,并从所述设备R1的前一跳逆着SPF树路径向本设备方向查找,得到第一个对应有公网通用标签的LSR,并确定该LSR为所述最远完整LSR。
与现有技术相比,本发明实施例至少具有以下优点:本发明实施例中,在存在大量路由的情况下,可以将MPLS域内走相同路径的路由承载在同一个LSP上,既实现了MPLS标签转发,又能减少LSP所消耗的软硬件资源。
具体实施方式
针对MPLS网络的组网情况,在MPLS域中通常使用OSPF(Open ShortestPath First,开放最短路径优先)路由协议来学习和发布路由,如图2所示的MPLS网络的组网示意图,在利用OSPF进行路由计算(如利用SPF(ShortestPath First最短路径优先)算法进行计算)之后,网络拓扑如图3所示。
针对图3所示的网络拓扑,IP network 2和IP network 1挂在Egress LSR下,因此从Ingress LSR到IP network 2与IP network 1的路径分别为:IngressLSR->T1->T2->Egress LSR->IP network 2和Ingress LSR->T1->T2->EgressLSR->IP network 1;即从Ingress LSR到IP network 2与IP network 1的路径在MPLS域内是相同的,从而可以在MPLS域内通过相同的LSP进行转发。
基于上述发现,本发明实施例提供一种MPLS网络中LSP的建立方法和设备,在存在大量路由的情况下,可以将MPLS域内走相同路径的路由承载在同一个LSP(即出节点设备的环回口路由对应的LSP)上,既实现了MPLS标签转发,又能够减少LSP所消耗的软硬件资源。
下面结合附图对本发明实施例进行详细描述。
本发明实施例提出了一种MPLS网络中LSP的建立方法,该方法可以应用于至少包括入节点设备(即图3中的Ingress LSR)和出节点设备(即图3中的Egress LSR)的MPLS网络中,该MPLS网络的路由协议包括但不限于:开放最短路径优先OSPF,如图4所示,该方法包括以下步骤:
步骤401,入节点设备在计算路由(即出节点设备所发布的路由)时,获得该路由对应的出节点设备的环回口路由(即环回口的IP地址)。
本发明实施例中,入节点设备在通过OSPF进行路由计算时,可以通过SPF算法计算出网络拓扑,并通过拓扑计算得知每条路由的来源LSR;因此针对出节点设备所发布的路由,在通过OSPF计算时,除了得到路由的前缀以及下一跳信息之外,还需要在计算路由时获得该路由对应的出节点设备的环回口路由(即路由的来源LSR信息,其为出节点设备的ID)。
需要注意的是,对于1类、2类、3类和7类路由,出节点设备的环回口路由为路由对应的LSA(Link State Advertisement,链路状态广播)的发布设备(即来源LSR)的环回口路由;对于5类路由,当ASBR(Autonomous SystemBorder Router,自治系统边界路由器)在本区域内时,出节点设备的环回口路由为路由对应的LSA的发布设备的环回口路由,当ASBR在其他区域内时,出节点设备的环回口路由为路由所在SPF路径上最后路由器的环回口路由。
步骤402,入节点设备判断计算的路由与获得的环回口路由是否相匹配,如果路由与环回口路由相匹配(即获得的路由为环回口路由),则执行步骤403,如果路由与环回口路由不匹配,则执行步骤404。
其中,当路由前缀与环回口路由的IP地址相同时,说明路由与环回口路由相匹配;反之则说明路由与环回口路由不匹配。
步骤403,入节点设备建立出节点设备的环回口路由对应的LSP;其中,在获得出节点设备的环回口路由之后,入节点设备可以建立出节点设备的环回口路由对应的LSP,具体的建立过程本发明实施例中不再赘述。
步骤404,入节点设备检查本地是否记录有出节点设备对应的公网通用标签;如果记录有出节点设备对应的公网通用标签,则执行步骤405;否则,根据用户策略决定按照现有实现处理或者停止处理,对此过程不再详加赘述。
本发明实施例中,公网通用标签的获得方式包括但不限于以下之一或者任意组合:
方式一、手工配置方式,在该方式下,由用户手工在各设备上配置公网通用标签,该方式需要支持本方式的所有LSR都有相同的公网通用标签;针对该方式一,入节点设备检查本地是否记录有出节点设备对应的公网通用标签,具体包括:当在各设备上配置公网通用标签时,则入节点设备可以根据自身的配置信息检查本地是否记录有出节点设备对应的公网通用标签。
方式二、网络同步方式,在该方式下,各LSR(对应LSP的Egress,即出节点设备)自动选择本地使用的公网通用标签,并通过直连LDP邻居将自身的公网通用标签同步到网络中的各设备,以最终将公网通用标签发送到入节点设备,该方式可以适用于网络中的各设备都支持本方式的情况。
方式三、远程邻居方式,在该方式下,各LSR(对应LSP的Egress,即出节点设备)自动选择本地使用的公网通用标签,并通过远程邻居将该公网通用标签直接发送给对端设备(即入节点设备),该方式可以适用于网络中的部分设备支持本方式的情况。
需要注意的是,对于上述方式二和方式三,是通过标签映射消息将公网通用标签通知给其他设备的;二者的不同之处在于:在收到邻居发来的公网通用标签之后,使用网络同步方式的设备需要向其他直连邻居转发标签映射消息,而使用远程邻居方式的设备不需要向其他直连邻居转发标签映射消息。
针对上述方式二和方式三,入节点设备检查本地是否记录有出节点设备对应的公网通用标签具体包括:当各设备通过标签映射消息将自身对应的公网通用标签通知给其他设备,使入节点设备可最终接收到各设备发出的标签映射消息时,入节点设备根据自身收到的标签映射消息维护各设备的公网通用标签,利用维护信息检查本地是否记录有出节点设备对应的公网通用标签。
本发明实施例中,在LDP中传递的公网通用标签可以使用标签映射消息,该标签映射消息的U比特位置为指定标识(如为标识1等),FEC TLV(TypeLength Value,类型长度值)中第一个FEC元素中前缀为特定地址(这些特定地址不会被作为单播路由信息在路由传递中出现,如可以是127.0.0.1,或255.255.255.255等),且第二个FEC元素为来源LSR(即出节点设备)的环回口路由,第三个FEC元素中前缀的位置填写实例号。
基于上述标签映射消息的设计方式,入节点设备根据自身收到的标签映射消息维护各设备的公网通用标签,进一步包括:
入节点设备在收到标签映射消息时,如果获知标签映射消息的U比特位置为指定标识(如标识1),且第一个FEC元素的前缀为特定地址(如127.0.0.1,或255.255.255.255等),则入节点设备从第二个FEC元素中获得标签映射消息对应的环回口路由(即标签映射消息的发布设备的环回口路由);
如果当前未存储有环回口路由对应的公网通用标签,则入节点设备记录标签映射消息中携带的公网通用标签、环回口路由(其为出节点设备的标识)、标签映射消息中第三个FEC元素中实例号之间的对应关系;
如果当前存储有环回口路由对应的公网通用标签,则入节点设备比较标签映射消息中第三个FEC元素中实例号与当前存储的公网通用标签对应的实例号之间的大小关系;如果前者大于后者,则入节点设备通过标签映射消息中携带的公网通用标签更新当前存储的公网通用标签,并通过标签映射消息中第三个FEC元素中实例号更新当前存储的实例号;如果前者小于后者,则入节点设备丢弃标签映射消息。
步骤405,当入节点设备上建立有出节点设备的环回口路由对应的LSP时,入节点设备利用出节点设备的环回口路由对应的LSP建立路由(其为出节点设备所发布的路由,即为步骤401中计算的路由)对应的LSP,使该路由对应的LSP的出标签为出节点设备对应的公网通用标签,该路由对应的LSP的下一跳为出节点设备的环回口路由对应的LSP。
本发明实施例的一种优选实施方式中,在执行步骤405之前,入节点设备还可以检查该路由与出节点设备的环回口路由是否具有相同的下一跳;如果有相同的下一跳,则执行步骤405;如果没有相同的下一跳,则根据用户策略决定按照现有实现处理或者停止处理,对此过程不再详加赘述。
本发明实施例的一种优选实施方式中,当入节点设备上没有建立出节点设备的环回口路由对应的LSP时,入节点设备根据SPF树查找自身到出节点设备的路径上的最远完整LSR,利用最远完整LSR的环回口路由对应的LSP建立路由对应的LSP,使路由对应的LSP的出标签为最远完整LSR对应的公网通用标签,路由对应的LSP的下一跳为最远完整LSR的环回口路由对应的LSP;此外,如果入节点设备根据SPF树没有查找到自身到出节点设备的路径上的最远完整LSR,则入节点设备根据用户策略决定按照现有实现处理或者停止处理,对此过程不再详加赘述。
进一步的,入节点设备根据SPF树查找自身到出节点设备的路径上的最远完整LSR,具体包括:在入节点设备到出节点设备的路径上,入节点设备从直连下一跳开始向后查找,得到向出节点设备的SPF树路径上第一个没有设备的环回口路由对应的LSP的设备R1(此时不再向后查找),并从设备R1的前一跳逆着SPF树路径向入节点设备方向查找,得到第一个对应有公网通用标签的LSR,并确定该LSR为最远完整LSR。
综上所述,经过上述处理后,出节点设备的所有非环回口路由均将使用公网通用标签生成LSP;即如果路由器R(如入节点设备)从源路由器a(如出节点设备)学习到1条环回口路由和N条其他路由(非环回口路由)时,路由器R只需要产生两种LSP:1条环回口路由对应的LSP;N条其他路由对应的LSP,由于这些LSP具有相同的下一跳和标签,对MPLS资源的消耗很少,资源上只占用一条LSP资源,从而减少LSP所消耗的软硬件资源。
此外,当报文匹配到非环回口路由时,基于上述建立的LSP,可以根据路由对应的公网通用标签,将该报文打上一层MPLS内层标签(即公网通用标签),之后发现下一跳为LSP(即路由对应出接口设备的环回口路由对应的LSP),则按照该LSP增加一层外层标签(即环回口路由对应的LSP的标签),然后转发出去;在中间转发设备上,报文将根据外层标签进行转发;在报文到达源路由器(即出节点设备)后,弹出外层标签,发现内层标签为公网通用标签,此时出节点设备将查找路由表,根据路由进行转发处理。
基于与上述方法同样的发明构思,本发明提出了一种路由设备,用于多协议标签交换MPLS网络中的入节点设备,如图5所示,所述路由设备包括:
获得模块11,用于在计算路由时,获得所述路由对应的出节点设备的环回口路由;
第一建立模块12,用于在所述路由与所述环回口路由相匹配时,建立所述出节点设备的环回口路由对应的标签交换路径LSP;
查询模块13,用于当所述路由与所述环回口路由不匹配时,检查本设备是否记录有所述出节点设备对应的公网通用标签;
第二建立模块14,用于当记录有所述出节点设备对应的公网通用标签,且当本设备上建立有所述出节点设备的环回口路由对应的LSP时,利用所述出节点设备的环回口路由对应的LSP建立所述路由对应的LSP,使所述路由对应的LSP的出标签为所述出节点设备对应的公网通用标签,所述路由对应的LSP的下一跳为所述出节点设备的环回口路由对应的LSP。
本发明实施例中,所述MPLS网络的路由协议为开放最短路径优先OSPF,对于1类、2类、3类和7类路由,所述出节点设备的环回口路由为所述路由对应链路状态广播LSA的发布设备的环回口路由;对于5类路由,当自治系统边界路由器ASBR在本区域内时,所述出节点设备的环回口路由为所述路由对应LSA的发布设备的环回口路由,当ASBR在其他区域内时,所述出节点设备的环回口路由为所述路由所在最短路径优先SPF路径上最后设备的环回口路由。
所述查询模块13可以通过以下两种方式检查本设备是否记录有所述出节点设备对应的公网通用标签:
所述查询模块13,具体用于当在MPLS网络中的各设备上配置公网通用标签时,根据本设备的配置信息检查本设备上是否记录有所述出节点设备对应的公网通用标签。
或者,
所述查询模块13,具体用于当MPLS网络中的各设备通过标签映射消息将自身对应的公网通用标签通知给其他设备时,根据本设备收到的标签映射消息维护各设备的公网通用标签,以及利用本设备的维护信息检查本设备上是否记录有所述出节点设备对应的公网通用标签。
所述查询模块13,进一步用于在收到标签映射消息时,如果获知所述标签映射消息的U比特位置为指定标识,且第一个转发等价类FEC元素的前缀为特定地址,从第二个FEC元素中获得所述标签映射消息对应的环回口路由;
如果当前未存储有所述环回口路由对应的公网通用标签,则记录所述标签映射消息中携带的公网通用标签、所述环回口路由、所述标签映射消息中第三个FEC元素中实例号之间的对应关系;
如果当前存储有所述环回口路由对应的公网通用标签,则比较所述标签映射消息中第三个FEC元素中实例号与当前存储的公网通用标签对应的实例号之间的大小关系;如果前者大于后者,则通过所述标签映射消息中携带的公网通用标签更新当前存储的公网通用标签,并通过所述标签映射消息中第三个FEC元素中实例号更新当前存储的实例号;如果前者小于后者,则丢弃所述标签映射消息。
所述第二建立模块14,具体用于在检查所述路由与所述出节点设备的环回口路由是否具有相同的下一跳之后,如果有相同的下一跳,则进一步执行在本设备上建立有所述出节点设备的环回口路由对应的LSP,利用所述出节点设备的环回口路由对应的LSP建立所述路由对应的LSP的过程。
该路由设备还包括:第三建立模块15,用于当本设备上没有建立所述出节点设备的环回口路由对应的LSP时,根据SPF树查找本设备到所述出节点设备的路径上的最远完整标签交换路由器LSR,并利用所述最远完整LSR的环回口路由对应的LSP建立所述路由对应的LSP,使所述路由对应的LSP的出标签为所述最远完整LSR对应的公网通用标签,所述路由对应的LSP的下一跳为所述最远完整LSR的环回口路由对应的LSP。
所述第三建立模块15,进一步用于在本设备到所述出节点设备的路径上,从本设备直连下一跳开始向后查找,得到出节点设备的方向SPF树路径上第一个没有设备的环回口路由对应的LSP的设备R1,并从所述设备R1的前一跳逆着SPF树路径向本设备方向查找,得到第一个对应有公网通用标签的LSR,并确定该LSR为所述最远完整LSR。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。