本发明涉及数据网络通信技术领域,尤其涉及一种隧道路径的计算方法及装置。
背景技术:
RSVP-TE(Resource Reservation Protocol-Traffic Engineer基于流量工程的资源预留协议)是一种基于MPLS的流量工程技术。通过信息发布、路径计算、信令交互(RSVP-TE)、流量的转发四个部件实现业务流量在TE隧道中的转发。
在网络运行的过程中,随着用户需求的增加,不可避免的需要做系统升级,在升级的过程中,为了避免对业务造成影响,提出了一种优雅关闭机制。协议中基本的过程如下,如果优雅关闭的是某个接口,那么在该优雅关闭节点上,需要向经过该接口的所有隧道头结点通告(25,7)类型的Path-Err消息(路径错误码消息),同时在消息中携带被关闭的接口地址信息;如果优雅关闭的是某个网络节点,那么在优雅关闭的节点上,需要向经过该节点的所有隧道头节点通告(25,8)类型的Path-Err消息,同时在消息中携带被关闭的节点ID信息。两种类型的优雅关闭,均向隧道头结点做的Path-Err通告,为的是隧道头结点进行新的路径选择,避免走将要关闭的接口或者节点。
其中,具体地,如图1所示,为任一网络节点的任一接口优雅关闭的拓扑图,在该拓扑图中,Tunnel1从R1建立到R3,经过的路径为R1-R2-R3,同时经过R2的接口b;Tunnel2从R4建立到R3,经过路径为R4-R2-R3,也经过R2的接口b。接口b优雅关闭之前,需要向Tunnel1的头结点R1和Tunnel2的头结点R4通告(25,7)类型的Path-Err消息,同时携带b的接口地址。告知R1和R4需要为Tunnel1和Tunnel2重新选路,避免经过接口b。重新算出的Tunnel1路径可能为R1-R4-R3或者R1-R2-R4-R3;Tunnel2的路径可能为 R4-R3。这样接口b优雅关闭就不会影响到原本经过这个接口的隧道业务流量。
如图2所示,为任一网络节点优雅关闭的拓扑图,在该拓扑图中,如果整个节点R2优雅关闭,在关闭之前,需要向Tunnel1的头结点R1和Tunnel2的头结点R4通告(25,8)类型的Path-Err消息,同时携带节点R2的ID信息。告知R1和R4需要为Tunnel1和Tunnel2重新选路,避免经过节点R2。重新算出的Tunnel1路径可能为R1-R4-R3;Tunnel2的路径可能为R4-R3。这样节点R2优雅关闭就不会影响到原本经过这个节点的隧道业务流量。
然而,目前的Path-Err报文机制将这些地址带到隧道头结点之后,仅用于算路排除这些节点,什么时候可以恢复这些节点信息用于算路,协议中并没有明确的规定。这样可能导致设备即使升级好了,隧道永远回不到优雅关闭前的最优路径之上。
技术实现要素:
为了克服上述存在的技术问题,本发明提供了一种隧道路径的计算方法及装置,通过在优雅关闭的任一网络节点或者任一网络节点的任一接口发送的Path-Err消息中携带老化时间,在到达老化时间后,优雅关闭的任一网络节点或者任一网络节点的任一接口能够重新用于计算路径,使得隧道可以重新回到最优路径。
为了解决上述技术问题,本发明采用如下技术方案:
依据本发明的一个方面,提供了一种隧道路径的计算方法,包括:
隧道头结点获取任一网络节点或者任一网络节点任一接口发送的优雅关闭的消息通告,所述消息通告包括:任一网络节点ID或者任一网络节点的任一接口地址以及任一网络节点或者任一网络节点的任一接口优雅关闭的老化时间,其中,所述老化时间为所述任一网络节点或者任一网络节点的任一接口从优雅关闭到重新可用的时间;
所述隧道头结点对所述消息通告进行解析,确定优雅关闭的任一网络节点或者任一网络节点的任一接口及所述任一网络节点或者任一网络节点的任一接口优雅关闭的老化时间;
所述隧道头结点根据所述老化时间进行计时,并排除所述优雅关闭的任一 网络节点或者任一网络节点的任一接口计算出第一路径。
可选地,该隧道路径的计算方法还包括:
达到所述老化时间后,所述隧道头结点向所述优雅关闭的任一网络节点或者任一网络节点的任一接口发送唤醒指令,并计算第二路径。
可选地,所述隧道头结点对所述消息通告进行解析,确定优雅关闭的任一网络节点或者任一网络节点的任一接口及所述任一网络节点或者任一网络节点的任一接口优雅关闭的老化时间,具体包括:
所述隧道头结点对所述消息通告进行解析,并获取所述消息通告中携带的任一网络节点ID或者任一网络节点任一接口地址以及任一网络节点或者任一网络节点任一接口优雅关闭的老化时间;
根据所述任一网络节点ID或者任一网络节点任一接口地址以及任一网络节点或者任一网络节点任一接口优雅关闭的老化时间确定优雅关闭的任一网络节点或者任一网络节点的任一接口及所述任一网络节点或者任一网络节点的任一接口优雅关闭的老化时间。
可选地,所述消息通告为路径错误码消息Path-Err通告。
可选地,所述老化时间的设置采用TLV形式,其中T为Type类型,L为Length长度,V为Value值。
依据本发明的另一个方面,提供了一种隧道路径的计算方法,包括:
任一网络节点或者任一网络节点的任一接口获取网络端口发送的优雅关闭指令;
所述任一网络节点或者任一网络节点的任一接口根据所述优雅关闭指令设置优雅关闭的老化时间,并向隧道头结点发送优雅关闭的消息通告,所述消息通告包括:任一网络节点ID或者任一网络节点任一接口地址以及任一网络节点或者任一网络节点任一接口优雅关闭的老化时间,其中,所述老化时间为所述任一网络节点或者任一网络节点的任一接口从优雅关闭到重新可用的时间;
到达所述老化时间后,所述任一网络节点或者任一网络节点的任一接口接收所述隧道头结点发送的唤醒指令,并用于计算第二路径。
可选地,所述消息通告为路径错误码消息Path-Err通告。
可选地,所述老化时间的设置采用TLV形式,其中T为Type类型,L为Length长度,V为Value值。
依据本发明的另一个方面,还提供了一种隧道路径的计算装置,用于隧道头结点,包括:
第一获取模块,用于获取任一网络节点或者任一网络节点任一接口发送的优雅关闭的消息通告,所述消息通告包括:任一网络节点ID或者任一网络节点的任一接口地址以及任一网络节点或者任一网络节点的任一接口优雅关闭的老化时间,其中,所述老化时间为所述任一网络节点或者任一网络节点的任一接口从优雅关闭到重新可用的时间;
解析模块,用于对所述消息通告进行解析,确定优雅关闭的任一网络节点或者任一网络节点的任一接口及所述任一网络节点或者任一网络节点的任一接口优雅关闭的老化时间;
第一计算模块,用于根据所述老化时间进行计时,并排除所述优雅关闭的任一网络节点或者任一网络节点的任一接口计算出第一路径。
可选地,该隧道路径的计算装置还包括:
第二计算模块,用于达到所述老化时间后,向所述优雅关闭的任一网络节点或者任一网络节点的任一接口发送唤醒指令,并计算第二路径。
可选地,所述解析模块具体包括:
解析单元,用于对所述消息通告进行解析,并获取所述消息通告中携带的任一网络节点ID或者任一网络节点任一接口地址以及任一网络节点或者任一网络节点任一接口优雅关闭的老化时间;
确定单元,用于根据所述任一网络节点ID或者任一网络节点任一接口地址以及任一网络节点或者任一网络节点任一接口优雅关闭的老化时间确定优雅关闭的任一网络节点或者任一网络节点的任一接口及所述任一网络节点或者任一网络节点的任一接口优雅关闭的老化时间。
可选地,所述消息通告为路径错误码消息Path-Err通告。
可选地,所述老化时间的设置采用TLV形式,其中T为Type类型,L为Length长度,V为Value值。
依据本发明的另一个方面,还提供了一种隧道路径的计算装置,用于网络 头结点,包括:
第二获取模块,用于获取网络端口发送的优雅关闭指令;
设置模块,用于根据所述优雅关闭指令设置优雅关闭的老化时间,并向隧道头结点发送优雅关闭的消息通告,所述消息通告包括:任一网络节点ID或者任一网络节点任一接口地址以及任一网络节点或者任一网络节点任一接口优雅关闭的老化时间,其中,所述老化时间为所述任一网络节点或者任一网络节点的任一接口从优雅关闭到重新可用的时间;
接收模块,用于到达所述老化时间后,接收所述隧道头结点发送的唤醒指令,并用于计算第二路径。
可选地,所述消息通告为路径错误码消息Path-Err通告。
可选地,所述老化时间的设置采用TLV形式,其中T为Type类型,L为Length长度,V为Value值。
本发明的有益效果是:
本发明中方案中的隧道路径的计算方法,首先通过隧道头结点获取任一网络节点或者任一网络节点任一接口发送的优雅关闭的消息通告,并对该消息通告进行解析,确定优雅关闭的任一网络节点或者任一网络节点任一接口及其优雅关闭的老化时间,然后根据该老化时间进行计时,并排除优雅关闭的任一网络节点或者任一网络节点的任一接口计算出第一路径。当到达老化时间后,向优雅关闭的任一网络节点或者任一网络节点的任一接口发送唤醒指令,并计算第二路径。本发明方案中的隧道路径的计算方法实现了在优雅关闭的老化时间到达后能够自动重新计算新的隧道路径,使得最终能够计算出最优路径。
附图说明
图1表示任一网络节点的任一接口优雅关闭的拓扑图;
图2表示任一网络节点优雅关闭的拓扑图;
图3表示本发明实施例中隧道路径计算方法的流程图之一;
图4表示本发明实施例中老化时间TLV格式设置图;
图5表示本发明实施例中解析消息通告的流程图;
图6表示本发明实施例中隧道路径计算方法的流程图之二;
图7表示本发明实施例中隧道计算装置的结构框图之一;
图8表示本发明实施例中解析模块的结构框图;以及
图9表示本发明实施例中隧道路径计算装置的结构框图之二。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明进行详细描述。
实施例一
依据本发明的一个方面,提供了一种隧道路径的计算方法,如图3所示,该隧道路径的计算方法300包括:
步骤S301、隧道头结点获取任一网络节点或者任一网络节点任一接口发送的优雅关闭的消息通告;
其中,上述消息通告信息包括:任一网络节点ID或者任一网络节点的任一接口地址以及任一网络节点或者任一网络节点的任一接口优雅关闭的老化时间。
具体地,在本发明实施例中,上述消息通告为路径错误码消息Path-Err通告。另外,上述老化时间为一网络节点或者任一网络节点的任一接口从优雅关闭到重新可用的时间,且上述老化时间采用TLV的形式进行设置,其设置格式图如图4所示,其中,T为Type类型,L为Length长度,V为Value值,当然可以理解的是,在本发明实施例中,在设置时对Type和Length的字节数并不进行具体限定,由于Value的长度由Length指定,因此,对Value的长度也不进行具体限定。
步骤S303、隧道头结点对消息通告进行解析,确定优雅关闭的任一网络节点或者任一网络节点的任一接口及任一网络节点或者任一网络节点的任一接口优雅关闭的老化时间;
具体地,如图5所示,在本发明实施例中,隧道头结点对消息通告进行解析,确定优雅关闭的任一网络节点或者任一网络节点的任一接口及任一网络节点或者任一网络节点的任一接口优雅关闭的老化时间(步骤S303)具体包括:
步骤S3031、隧道头结点对消息通告进行解析,并获取消息通告中携带的 任一网络节点ID或者任一网络节点任一接口地址以及任一网络节点或者任一网络节点任一接口优雅关闭的老化时间;
步骤S3033、根据任一网络节点ID或者任一网络节点任一接口地址以及任一网络节点或者任一网络节点任一接口优雅关闭的老化时间确定优雅关闭的任一网络节点或者任一网络节点的任一接口及任一网络节点或者任一网络节点的任一接口优雅关闭的老化时间。
步骤S305、隧道头结点根据老化时间进行计时,并排除优雅关闭的任一网络节点或者任一网络节点的任一接口计算出第一路径。
另外,如图3所示,该隧道路径的计算方法300还包括:
步骤S307、达到老化时间后,隧道头结点向优雅关闭的任一网络节点或者任一网络节点的任一接口发送唤醒指令,并计算第二路径。
实施例二
依据本发明的另一个方面,还提供了一种隧道路径的计算方法,如图6所示,该隧道路径的计算方法600包括:
步骤S601、任一网络节点或者任一网络节点的任一接口获取网络端口发送的优雅关闭指令;
步骤S603、任一网络节点或者任一网络节点的任一接口根据优雅关闭指令设置优雅关闭的老化时间,并向隧道头结点发送优雅关闭的消息通告;
其中,上述消息通告包括:任一网络节点ID或者任一网络节点任一接口地址以及任一网络节点或者任一网络节点任一接口优雅关闭的老化时间,上述老化时间为任一网络节点或者任一网络节点的任一接口从优雅关闭到重新可用的时间。
具体地,在本发明实施例中,上述消息通告为路径错误码消息Path-Err通告。且老化时间采用TLV的形式进行设置,其设置格式图如图4所示,其中,T为Type类型,L为Length长度,V为Value值,当然可以理解的是,在本发明实施例中,在设置时对Type和Length的字节数并不进行具体限定,由于Value的长度由Length指定,因此,对Value的长度也不进行具体限定。
步骤S605、到达老化时间后,任一网络节点或者任一网络节点的任一接口接收隧道头结点发送的唤醒指令,并用于计算第二路径。
具体地,计算隧道路径时,具体方式如下:
在如图1所示的任一网络节点的任一接口优雅关闭的拓扑图中,当出现线卡升级的需要时,节点R2的接口b获取网络端口发送优雅关闭指令,并设置好接口b优雅关闭的时间参数T(ms)。因在节点R2上存在两条隧道经过接口b:一条为隧道头结点为R1的Tunnel1;另一条为隧道头结点为R4的Tunnel2。因此,执行优雅关闭时,节点R2向R1和R4均发送Path-Err消息,并携带接口地址b和时间参数T。
作为头结点的R1和R4接收到上述Path-Err消息,解析出隧道信息、接口信息b以及时间参数T之后。头结点R1的Tunnel1重新进行路径计算,排除接口b地址,这个时候算出来路径可能为R1-R4-R3或者R1-R2-R4-R3。头结点R4的Tunnel2也重新进行路径计算,排除接口b地址,这个时候算路的路径为R4-R3。同时,头结点R1与R4还对接口b地址进行老化处理,在时间T内,节点R1和R4的所有路径计算都需要排除接口b。
当老化时间T到期之后,接口b地址可以参与路径计算。头结点R1和R4重新唤醒Tunnel1和Tunnel2进行路径计算,Tunnel1重新回到最优路径R1-R2-R3上,Tunnel2重新回到最优路径R4-R2-R3上。
另外,在如图2所示的任一网络节点优雅关闭的拓扑图中,当出现线卡需要升级的需要时,节点R2获取网络端口发送优雅关闭指令,并设置好该节点优雅关闭的时间参数T(ms)。因在节点R2上存在两条隧道经过该节点:一条为隧道头结点为R1的Tunnel1;另一条为隧道头结点为R4的Tunnel2。因此,执行优雅关闭时,节点R2向R1和R4均发送Path-Err消息,并携带节点R2的ID信息和时间参数T。
作为头结点的R1和R4接收到上述Path-Err消息,解析出隧道信息、节点R2的ID信息以及时间参数T之后。节点R1的Tunnel1重新进行路径计算,排除节点R2的标识ID,这个时候算出来路径为R1-R4-R3(不可能是R1-R2-R4-R3)。节点R4的Tunnel2也重新进行路径计算,排除节点R2的标识ID,这个时候算路的路径为R4-R3。同时,头结点R1与R4还对节点R2的标识ID进行老化处理,在时间T内,头结点R1和R4的所有路径计算都需 要排除节点R2。
当老化时间T到期之后,节点R2的标示ID可以参与路径计算。头结点R1和R4重新唤醒Tunnel1和Tunnel2进行路径计算,Tunnel1重新回到最优路径R1-R2-R3上,Tunnel2重新回到最优路径R4-R2-R3上。
由上可知,网络接口将优雅关闭指令发送给即将优雅关闭的任一网络节点或者任一网络节点的任一接口,任一网络节点或者任一网络节点的任一接口根据上述优雅关闭指令设置优雅关闭的老化时间,并将携带任一网络节点ID或者任一网络节点的任一接口地址及其优雅关闭老化时间的Path-Err消息发送给隧道头结点。在未到达老化时间时,隧道头结点排除上述优雅关闭的任一网络节点或者任一网络节点的任一接口计算出第一路径;到达老化时间后,隧道头结点不排除上述优雅关闭的任一网络节点或者任一网络节点的任一接口计算出第二路径。因此,本发明方案中的隧道路径的计算方法实现了在优雅关闭的老化时间到达后能够自动重新计算新的隧道路径,使得最终能够计算出最优路径。
实施例三
依据本发明的另一个方面,提供了一种隧道路径的计算装置,用于隧道头结点,如图7所示,该装置700包括:
第一获取模块701,用于获取任一网络节点或者任一网络节点任一接口发送的优雅关闭的消息通告,消息通告包括:任一网络节点ID或者任一网络节点的任一接口地址以及任一网络节点或者任一网络节点的任一接口优雅关闭的老化时间,其中,老化时间为任一网络节点或者任一网络节点的任一接口从优雅关闭到重新可用的时间;
其中,上述消息通告包括:任一网络节点ID或者任一网络节点任一接口地址以及任一网络节点或者任一网络节点任一接口优雅关闭的老化时间,具体地,老化时间为任一网络节点或者任一网络节点的任一接口从优雅关闭到重新可用的时间。
进一步地,在本发明实施例中,上述消息通告为路径错误码消息Path-Err通告。且老化时间采用TLV的形式进行设置,其设置格式图如图4所示,其中,T为Type类型,L为Length长度,V为Value值,当然可以理解的是, 在本发明实施例中,在设置时对Type和Length的字节数并不进行具体限定,由于Value的长度由Length指定,因此,对Value的长度也不进行具体限定。
解析模块703,用于对消息通告进行解析,确定优雅关闭的任一网络节点或者任一网络节点的任一接口及任一网络节点或者任一网络节点的任一接口优雅关闭的老化时间;
具体地,如图8所示,解析模块703具体包括:
解析单元7031,用于对消息通告进行解析,并获取消息通告中携带的任一网络节点ID或者任一网络节点任一接口地址以及任一网络节点或者任一网络节点任一接口优雅关闭的老化时间;
确定单元7033,用于根据任一网络节点ID或者任一网络节点任一接口地址以及任一网络节点或者任一网络节点任一接口优雅关闭的老化时间确定优雅关闭的任一网络节点或者任一网络节点的任一接口及任一网络节点或者任一网络节点的任一接口优雅关闭的老化时间。
第一计算模块705,用于根据老化时间进行计时,并排除优雅关闭的任一网络节点或者任一网络节点的任一接口计算出第一路径。
进一步地,在本发明实施例中,如图7所示,该装置700还包括:
第二计算模块707,用于达到老化时间后,向优雅关闭的任一网络节点或者任一网络节点的任一接口发送唤醒指令,并计算第二路径。
实施例四
依据本发明实施例的另一个方面,还提供了一种隧道路径的计算装置,用于网络节点,如图9所示,该装置900包括:
第二获取模块901,用于获取网络端口发送的优雅关闭指令;
设置模块903,用于根据优雅关闭指令设置优雅关闭的老化时间,并向隧道头结点发送优雅关闭的消息通告;
其中,消息通告包括:任一网络节点ID或者任一网络节点任一接口地址以及任一网络节点或者任一网络节点任一接口优雅关闭的老化时间,具体地,老化时间为任一网络节点或者任一网络节点的任一接口从优雅关闭到重新可用的时间。
进一步地,在本发明实施例中,上述消息通告为路径错误码消息Path-Err 通告。且老化时间采用TLV的形式进行设置,其设置格式图如图4所示,其中,T为Type类型,L为Length长度,V为Value值,当然可以理解的是,在本发明实施例中,在设置时对Type和Length的字节数并不进行具体限定,由于Value的长度由Length指定,因此,对Value的长度也不进行具体限定。
接收模块905,用于到达老化时间后,接收隧道头结点发送的唤醒指令,并用于计算第二路径。
以上所述的是本发明的优选实施方式,应当指出对于本技术领域的普通人员来说,在不脱离本发明所述的原理前提下还可以作出若干改进和润饰,这些改进和润饰也在本发明的保护范围内。