专利名称:一种实现跨域约束路由的选路方法
技术领域:
本发明涉及在多协议标记交换流量工程(MPLS TE)中进行约束路由的选路技术,特别涉及一种在MPLS TE中实现跨域约束路由的选路方法。
背景技术:
随着网络的爆炸性发展,英特(Internet)网上的流量成几何级数地爆炸性增长,造成网络拥塞时常发生。传统的节点选择最短的路径作为路由,不考虑带宽等因素的方案,会造成即使某条路径发生拥塞,也不会将流量切换到其他路径上的问题。在网络流量比较小的情况下,这种问题不是很严重,但是随着Internet走出实验室,走出少数研究人员的范围,应用越来越广泛,采用最短路径优先选择路由的方法暴露的网络拥塞问题也越来越严重。
MPLS作为一种叠加模型,可以方便地在物理的网络拓扑上建立一个虚拟的拓扑,并将流量映射到这个虚拟的拓扑上。因此,MPLS与流量工程相结合的技术一MPLS TE应运而生。
MPLS TE由四大组件构成,该四大组件为报文转发组件、信息发布组件、信令组件和路径选择组件。
其中,MPLS TE的报文转发组件通过标签沿着某条预先建立好的标签交换路径(LSP)进行报文转发。由于LSP是预先根据网络拥塞情况预先建立的,所以可以避免采用最短路径选择路由的弊端。
MPLS TE的信息发布组件对现有的内部网关协议(IGP)进行扩展,来发布链路状态信息,链路状态信息包括最大链路带宽、最大可预留带宽、当前预留带宽和链路颜色等。每个节点通过所接收发布的链路信息,维护网络的链路属性和拓扑属性,形成流量工程数据库(TEDB)。节点利用TEDB,可以计算出满足各种约束的路由。
MPLS TE的信令组件用来预留资源,建立LSP。LSP的建立可以通过约束路由标签分配协议(CR-LDP)或者资源预留协议流量工程扩展(RSVP-TE)协议来完成,这两种协议都只持LSP的建立、显示路由、资源信息携带等功能。以资源预留协议流量工程扩展协议(RSVP-TE)为例为了能够建立LSP,对RSVP协议进行了扩展,在PSVP PATH消息中引入标签请求(Label Request)对象,支持发起标签请求;在PSVP RESV消息中引入标签(Label)对象支持标签分配,这样就可以建立LSP了。为了建立约束的LSP,在PSVP RESV消息中还引入了显示路由对象(ERO,ExplicitRoute Object)。
MPLS TE的路径选择组件用来通过约束路由计算(CSPF)算法,根据存储在节点中的TEDB数据来计算满足指定约束的路由。路由的约束条件可以通过设置在起始节点中的用来标识路由的ERO来指示,ERO包括多个ERO子对象,每个ERO子对象表示该路由要经过的节点。当在路由的ERO子对象中设定的节点的属性为松散的,则该路由可以经过或不经过该节点;当在路由的ERO中设定的节点的属性为严格的,则该路由必须经过该节点。
目前,用MPLS TE实现域内约束路由的选路技术十分成熟,但是怎样用MPLS TE实现跨域约束路由的选路却是一个有待解决的难题。
现在有两种方法可以实现用MPLS TE跨域约束路由的选路。
第一种方法,在实现跨域约束路由的选路时,将设置在路由ERO中的具有松散属性的ERO子对象作为边缘节点进行跨域约束路由选路。其具体过程为MPLS TE首先根据起始节点设置的ERO确定路由要经过的第一个具有松散属性的节点,计算从起始节点到第一个具有松散属性的节点之间的路径,计算成功后触发信令发路径消息;第一个具有松散属性的节点前的各个节点处理路径消息,不需要计算路径;第一个具有松散属性的节点收到路径消息,MPLS TE根据该ERO确定路由要经过的下一个具有松散属性的节点,计算从第一个具有松散属性的节点到下一个具有松散属性的节点之间的路径,计算成功后触发信令发路径消息;下一个具有松散属性的节点前的各个节点处理路径消息,不需要计算路径;下一个具有松散属性的节点收到路径消息,MPLS TE根据该ERO确定路由要经过的再下一个具有松散属性的节点,计算从下一个具有松散属性的节点到再下一个具有松散属性的节点之间的路径,计算成功后触发信令发路径消息;重复上面的过程,直到路径消息到达跨域的目的节点为止。
第二种方法,在实现跨域约束路由选路时,不区分哪个节点是边缘节点,MPLS TE利用TEDB计算出约束路由上的所有路径,直到失败为止,从而最终实现跨域约束路由的选路。
图1为现有技术进行跨域约束路由选路的示意图,如图1所示,该网络有AS1和AS2两个域构成,其中AS1域中包括标签交换路径(LSR)A、LSRB、LSRC、LSRD和LSRE,AS2域中包括LSRA1、LSRB1、LSRC1、LSRD1和LSRE1,这些LSR都具有基于IPv4的IP地址以及其入口和出口的IP地址。
假设要建立一条从LSRA到LSRA1的跨域路由,需要经过LSRB、LSRD、LSRC、LSRB1,并且都是松散属性。按照第一种方法,要逐一计算从LSRA到LSRB的路径、从LSRB到LSRD的路径、从LSRD到LSRC的路径、从LSRC到LSRB1的路径以及从LSRB1到LSRA1的路径,才能完成整个从LSRA到LSRA1路由的建立。因此,该方法必须在LSRA、LSRB、LSRD、LSRC和LSRB1上分别计算各段的路径,而实际上只需要在LSRA、LSRC和LSRB1上计算路径是必须的。
按照第二种方法,LSRA尽可能计算每一段路径,即计算从LSRA经LSRB到LSRD的路径,以及从LSRA经LSRB到LSRC的路径等,如果LSRA计算的某段LSP失败,例如LSRA计算LSRB到LSRD失败,则LSRA发送PATH消息给LSRB,由LSRB再计算后,才能确定要建立的路由不存在从LSRB到LSRD的该段路径。
目前提出的这两个方案,虽然用MPLS TE实现了跨域约束路由的选路,但是存在着缺点在第一种方法中,由于该方法或者必须以严格属性定义该路由要经过的节点,或者必须将具有松散属性的节点作为边缘节点,进行初始节点到边缘节点之间以及边缘节点之间的逐段路径计算,所以在用MPLSTE实现跨域约束路由的选路过程中,造成了要进行繁琐的定义路由要经过节点的属性或者要进行不必要的某段路径计算;在第二种方法中,由于初始节点尽可能计算每一段路径,所以在用MPLS TE实现跨域约束路由的选路过程中,造成了不必要的计算和信令动作。
发明内容
有鉴于此,本发明的主要目的在于提供一种实现跨域约束路由的选路方法,该方法不仅实现在MPLS TE下跨域根据约束条件选择路由,而且可以使初始节点或者该路由经过的节点不进行不必要的路径计算。
根据上述目的,本发明的具体实施方案是这样实现的一种实现跨域约束路由的选路方法,该方法应用在多协议标记交换流量工程中,给与跨域路由经过的边缘节点相对应的显示路由子对象设置边缘节点标识,该显示路由子对象存储在初始节点的跨域路由显示路由对象中,该方法还包括A、初始节点根据显示路由子对象设置的边缘节点标识确定跨域路由经过的第一个边缘节点,计算出到第一个边缘节点的路径,然后发送携带显示路由对象的路径消息;B、第一个边缘节点接收路径消息,根据显示路由对象中显示路由子对象的边缘节点标识确定跨域路由经过的下一个边缘节点,计算从第一个边缘节点到下一个边缘节点的路径后,然后发送携带显示路由对象的路径消息;C、下一个边缘节点接收路径消息,根据显示路由对象中显示路由子对象的边缘节点标识确定跨域路由经过的再下一个边缘节点,计算从下一个边缘节点到再下一个边缘节点的路径后,然后发送携带显示路由对象的路径消息;D、按照步骤C的过程继续执行,直到路径消息到达跨域路由的目的节点。
所述显示路由子对象设置边缘节点标识的过程为将边缘节点标识设置在显示路由子对象的Resvd域中。
所述的在显示路由子对象的Resvd域中设置边缘节点标识的过程为如果该显示路由子对象和跨域路由经过的边缘节点对应,则设置该显示路由子对象的Resvd域为0x01;如果该显示路由子对象和跨域路由经过的非边缘节点对应,则设置该显示路由子对象的Resvd域为0x02。
所述的确定跨域路由经过的边缘节点过程为初始节点判断其存储跨域路由显示路由对象中的显示路由子对象是否具有边缘节点标识,如果是,则该显示路由子对象对应的节点为边缘节点,否则,该显示路由子对象对应的节点为非边缘节点。
该方法进一步包括在步骤A和步骤B之间,当初始节点和第一个边缘节点之间的节点收到路径消息时,不需要计算路径,直到传送到第一个边缘节点;在步骤B和步骤C之间,当第一个边缘节点和下一个边缘节点之间的节点收到路径消息时,不需要计算路径,直到传送到下一个边缘节点;在步骤C和步骤D之间,当下一个边缘节点和再下一个边缘节点之间的节点收到路径消息时,不需要计算路径,直到传送到再下一个边缘节点。
从上述方案可以看出,本发明用在ERO中存储的对应路由经过节点的ERO子对象增加设置边缘节点标识的方法,实现跨域路由的分布式计算。当进行跨域约束路由的路径计算时,初始节点根据设置的ERO中ERO子对象具有的边缘节点标识确定该路由要经过的第一个边缘节点,并计算到第一个边缘节点之间的路径,然后发送PATH消息;第一个边缘节点根据收到PATH消息ERO中ERO子对象中下一个具有的边缘节点标识,来确定该路由要经过的下一个边缘节点,计算到下二个边缘之间的路径,然后发送PATH消息;......重复这样的过程,直到PATH消息到达目的节点。由于本发明不将具有松散属性的节点作为边缘节点,进行初始节点到边缘节点之间以及边缘节点之间的逐段路径计算,也不使初始节点尽可能计算该路由可能经过的每一段LSP,所以该方法不仅实现在MPLS TE下跨域根据约束条件选择路由,而且可以使初始节点或者该路由经过的节点不进行不必要的计算和信令动作。
图1为现有技术进行跨域约束路由选路的示意图。
图2为本发明基于网际协议(IP)v4的ERO子对象编码示意图。
图3为本发明基于网际协议(IP)v6的ERO子对象编码示意图。
图4为本发明跨域进行约束路由选路的过程流程图。
具体实施例方式
为了使本发明的目的、技术方案和优点更加清楚明白,以下举实施例并参照附图,对本发明进行进一步详细说明。
从目前的MPLS TE协议来看,虽然可以利用ERO来提供在一个域内的约束路由的选路,但是对于跨域的约束路由选路,则十分困难。所以本发明给在初始节点设置的路由ERO中增加边缘节点标识,即给对应于路由经过的边缘节点的ERO子对象设置边缘节点标识,用来表明该ERO子对象对应的节点是标签交换边缘节点(ASBR)。当初始节点利用CSPF计算路由时,必须计算到该路由ERO记录的下一个ASBR结束,而不是到ERO中记录的下一个具有松散属性的节点结束,或者计算到路由失败为止结束,从而避免了不必要的计算。
本发明在初始节点配置约束路由经过的节点时,必须明确指明该路由经过的节点是否为边缘节点,比如图1所示的例子中,本发明可以在初始节点给路由经过的节点作如下的配置
nexthop 192.168.1.2 loosenexthop 192.168.1.3 loose bordernexthop 192.168.2.2 loose bordernexthop 192.168.2.1 loose根据本发明的配置,LSRC和LSRB1为边缘节点,当初始节点计算从LSPA到LSRA1的路由时,必须由初始节点先计算从LSPA到LSRC的路径,再由LSRC计算从LSRC到LSRB1的路径,最后由LSRB1计算从LSRB1到LSRA1的路径,最终完成整个路由的计算。
本发明将上述给路由经过的每个节点的配置情况在初始节点以ERO子对象的方式进行保存,如图2所示,图2为本发明基于IPv4的ERO子对象编码示意图,其中L表示ERO子对象对应的节点是具有松散属性,还是具有严格属性,当L为1时,表示所对应的节点具有松散属性,当L为0时,表示所对应的节点具有严格属性;Type为类型值,表示所对应节点的地址是基于IPv4、IPv6或者私有地址;IPv4 address(4 bytes)以及IPv4 address(continued)用来表示所对应节点的IP地址,该IP地址为4个字节;Resvd具有1个字节,本发明用来表明所对应的节点是否为边缘节点,如果是,该Resvd的值为0x01,否则,该Resvd的值为0x02。L、Type、Length、IPv4address(4 bytes)、IPv4 address(continued)和Prefix Length都与现有技术中ERO子对象的编码定义相同,本发明将现有技术中无定义的Resvd作为该ERO子对象的边缘节点标识,用以表明所对应的节点是否为边缘节点。
图3为本发明基于IPv6的ERO子对象编码示意图,同样的,其中L表示ERO子对象对应的节点是具有松散属性,还是具有严格属性,当L为1时,表示所对应的节点具有松散属性,当L为0时,表示所对应的节点具有严格属性;Type为类型值,表示所对应节点的地址是基于IPv4、IPv6或者私有地址;IPv4 address(16 bytes)以及IPv4 address(continued)用来表示所对应节点的IP地址,该IP地址为16个字节;Resvd具有1个字节,本发明用来表明所对应的节点是否为边缘节点,如果是,该Resvd的值为0x01,否则,该Resvd的值为0x02。L、Type、Length、IPv4 address(4 bytes)、IPv4 address(continued)和Prefix Length都与现有技术中ERO子对象的编码定义相同,本发明将现有技术中无定义的Resvd作为该ERO子对象的边缘节点标识,用以表明所对应的节点是否为边缘节点。
本发明也可以将边缘节点标识设置在ERO子对象的其他域中,并不限于Resvd域。
如图4所示,图4为本发明跨域进行约束路由选路的过程流程图,其具体步骤为步骤401、初始节点根据在初始节点预先配置的跨域路由ERO确定该跨域路由要经过的第一个边缘节点,按照现有技术计算出从初始节点到第一个边缘节点之间的路径;由于本发明预先在初始节点配置的跨域路由ERO包括多个ERO子对象,多个ERO子对象分别与该跨域路由要经过的所有节点一一对应,并且可以根据ERO子对象具有边缘节点标识标志其对应节点是否为边缘节点,所以初始节点根据该ERO子对象就可以确定出该路由经过的边缘节点;在现有技术中,可以根据ERO中ERO子对象的IP地址确定该跨域路由依次经过的节点,从而按跨域路由依次经过节点的顺序依次判定对应的ERO子对象是否具有边缘节点标识,从而确定该跨域路由要经过的第一个边缘节点;所述的现有技术可以采用背景技术中所述的方法二;步骤402、初始节点触发RSVP-TE,发送PATH消息,该消息中携带该跨域路由的ERO;第一个边缘节点之前的节点在收到PATH消息时,不需要进行路径计算;步骤403、第一个边缘节点接收PATH消息,根据ERO中ERO子对象的边缘节点标识确定该跨域路由经过的下一个边缘节点,按照现有技术计算出到下一个边缘节点之间的路径,发送PATH消息;第一个边缘节点与下一个边缘节点之间的节点在收到PATH消息时,不需要进行路径计算;同样的,按照现有技术可以按跨域路由依次经过节点的顺序依次判定对应的ERO子对象是否具有边缘节点标识,从而确定该跨域路由要经过的下一个边缘节点;步骤404、下一个边缘节点接收到PATH消息时,根据ERO中ERO子对象的边缘节点标识确定该跨域路由经过的再下一个边缘节点,按照现有技术计算出到再下一个边缘节点之间的路径,发送PATH消息,该消息中携带ERO;下一个边缘节点与再下一个边缘节点之间的节点在收到PATH消息时,不需要进行路径计算;步骤405、按照步骤403的过程继续执行,直到建立到该跨域路由的目的节点之间的路径为止,即计算出从初始节点到跨域的目的节点的路由后,转入步骤406;步骤406、结束本流程。
假设在图1所示的示意图中建立一条从LSRA到LSRA1的路由,需要经过LSRB、LSRD、LSRC、LSRB1,并且都是松散属性,其中LSRC、LSR1为边缘节点,则LSRA根据该路由的ERO子对象确定第一个边缘节点为LSRC,LSRA计算到LSRC之间的路径后,发送PATH消息;中间节点按照现有技术将PATH消息的ERO中相对应的路由子对象的内容删除,继续发送PATH消息,不需要计算路径;LSRC根据该PATH消息中携带的ERO确定下一个边缘节点为LSRB1,LSRC计算到LSRB1之间的路径后,发送携带了该路由ERO的PATH消息给LSRB1,LSRB1根据该PATH消息中携带的ERO确定该路由的目的节点LSRA1,LSRB1计算到LSRA1之间的路径,发送PATH消息,之后由于没有边缘节点,无需再次计算,PATH消息到达目的节点,从而完成整个从LSRA到LSRA1的跨域路由计算。
从LSRA到LSRA1的跨域路由经过的出入接口的IP地址依次为10.10.1.2 strict、10.10.3.2 strict、10.10.4.2 strict、10.10.5.1 strict、192.168.1.3 strict border、192.168.2.2 loose border、192.168.2.1。
当本发明的初始节点不支持ERO子对象的边缘节点标识时,即所有的ERO子对象的Resvd都置为0,则按照背景技术中的方法一和方法二完成跨域约束路由的选路。当跨域路由经过的某个节点如果不支持ERO子对象的边缘节点标识时,可能在该节点向下游节点发送PATH消息时,将所有ERO子对象Resvd域原来的信息丢失了,都填为0,则下游支持本发明ERO子对象的边缘节点标识的节点需要能够正确处理ERO子对象Resvd域为0的情况。对于尾节点,支持不支持ERO子对象的边缘节点标识,没有任何影响。
如果其他厂商亦应用了ERO子对象中的Resvd域,并造成冲突,最坏的结果是造成信令的不必要的动作,不会导致更严重的结果。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种实现跨域约束路由的选路方法,该方法应用在多协议标记交换流量工程中,其特征在于,给与跨域路由经过的边缘节点相对应的显示路由子对象设置边缘节点标识,该显示路由子对象存储在初始节点的跨域路由显示路由对象中,该方法还包括A、初始节点根据显示路由子对象设置的边缘节点标识确定跨域路由经过的第一个边缘节点,计算出到第一个边缘节点的路径,然后发送携带显示路由对象的路径消息;B、第一个边缘节点接收路径消息,根据显示路由对象中显示路由子对象的边缘节点标识确定跨域路由经过的下一个边缘节点,计算从第一个边缘节点到下一个边缘节点的路径,然后发送携带显示路由对象的路径消息;C、下一个边缘节点接收路径消息,根据显示路由对象中显示路由子对象的边缘节点标识确定跨域路由经过的再下一个边缘节点,计算从下一个边缘节点到再下一个边缘节点的路径,然后发送携带显示路由对象的路径消息;D、按照步骤C的过程继续执行,直到路径消息到达跨域路由的目的节点。
2.如权利要求1所述的方法,其特征在于,所述显示路由子对象设置边缘节点标识的过程为将边缘节点标识设置在显示路由子对象的Resvd域中。
3.如权利要求2所述的方法,其特征在于,所述的在显示路由子对象的Resvd域中设置边缘节点标识的过程为如果该显示路由子对象和跨域路由经过的边缘节点对应,则设置该显示路由子对象的Resvd域为0x01;如果该显示路由子对象和跨域路由经过的非边缘节点对应,则设置该显示路由子对象的Resvd域为0x02。
4.如权利要求1所述的方法,其特征在于,所述的确定跨域路由经过的边缘节点过程为初始节点判断其存储跨域路由显示路由对象中的显示路由子对象是否具有边缘节点标识,如果是,则该显示路由子对象对应的节点为边缘节点,否则,该显示路由子对象对应的节点为非边缘节点。
5.如权利要求1所述的方法,其特征在于,该方法进一步包括在步骤A和步骤B之间,当初始节点和第一个边缘节点之间的节点收到路径消息时,不需要计算路径,直到传送到第一个边缘节点;在步骤B和步骤C之间,当第一个边缘节点和下一个边缘节点之间的节点收到路径消息时,不需要计算路径,直到传送到下一个边缘节点;在步骤C和步骤D之间,当下一个边缘节点和再下一个边缘节点之间的节点收到路径消息时,不需要计算路径,直到传送到再下一个边缘节点。
全文摘要
本发明公开了一种实现跨域约束路由的选路方法,当进行跨域约束路由的路径计算时,初始节点根据设置的ERO中ERO子对象具有的边缘节点标识确定该路由要经过的第一个边缘节点,计算到第一个边缘节点之间的路径,然后发送PATH消息,第一个边缘节点之前的节点在收到PATH消息时,按照协议处理,不需要计路径;第一个边缘节点根据收到PATH消息ERO中ERO子对象中下一个具有的边缘节点标识,来确定该路由要经过的下一个边缘节点,计算到再下一个边缘之间的路径,然后发送PATH消息,再下一个边缘节点之前的节点在收到PATH消息时,按照协议处理,不需要计算路径;……重复这样的过程,直到PATH消息到达目的节点。
文档编号H04L12/54GK1705292SQ20041004269
公开日2005年12月7日 申请日期2004年5月31日 优先权日2004年5月31日
发明者李丰林 申请人:华为技术有限公司