一种隧道路径计算方法、装置及设备与流程

文档序号:17535927发布日期:2019-04-29 13:59阅读:192来源:国知局
一种隧道路径计算方法、装置及设备与流程

本发明涉及数据网络通信领域,尤其涉及一种隧道路径计算方法、装置及设备。



背景技术:

在通信网络中,通信业务流量是通过te隧道转发的。而在一个te隧道中,为降低网络故障对通信业务的影响,因此可以配置多条隧道路径(即主备路径)以提高通信网络的生存性。在配置主备路径时,一个重要的参数是srlg(sharedrisklinkgroups,共享风险链路组)。srlg是用于标识链路的风险属性,存在相同数值的风险值表示有同时中断的风险,因此配置的主备路径应当尽可能的不在一个共享风险链路组中。例如参见图1所示,设备r1和r2之间存在两条链路l12和l21,在实际工程布线的时候,l12和l21往往用的是一个管道,此时l12和l21具有相同的风险链路属性,如果出现人为损坏线路,两条链路可能都会被损坏。因此如果主路径配置为l12,备份路径就不能配置为l21,而应当配置为l13和l23组成的路径。

当前,在建立te隧道时,对于如何收集隧道路径的srlg信息,在rfc8001中进行了明确的说明和协议规范。具体可以分为以下两种收集策略:

策略一:建议收集。建议收集是指对于沿途的各个节点(本文将隧道路径所经过的各个通信设备定义为节点)srlg信息的收集不是强制的。

在建议收集策略下,如果某一节点本地策略是不允许收集srlg信息,那么对于该节点的srlg信息就不做收集。因此通过这种方式收集路径的srlg信息可能不全。

策略二:强制收集。强制收集是指对于沿途的各个节点srlg信息进行强制收集。

在强制收集策略下,如果某一节点的本地策略是不允许收集,那么对于该节点进行srlg信息收集时,该节点会触发path-err消息,从而通知隧道路径的头节点,头节点需要重新计算路径,以避开path-err消息中的错误地址(即该不允许收集srlg信息的节点)。

但是对于策略一,由于隧道中可能存在有完全由本地策略允许收集srlg信息的节点构成的最优路径,但实际计算出来的路径可能并没有选择这条最优路径,从而导致srlg信息收集不全。

而对于策略二、如果路径中存在多个节点本地策略不允许收集srlg信息,那么可能需要经过多次的路径计算,信令,错误通告机制。从而延缓了隧道的建立过程。



技术实现要素:

本发明实施例提供的一种隧道路径计算方法、装置、设备及计算机可读存储介质,主要解决的技术问题是:当前在建立te隧道时,计算出的隧道路径可能并非最优路径,或可能需要多次路径计算的问题。

为解决上述技术问题,本发明实施例提供了一种隧道路径计算方法,包括:若所述隧道路径为域内路径,则按照如下目标隧道路径计算方式进行计算:

获取域内各个节点的共享风险链路组信息的收集能力信息,所述收集能力信息包括允许收集共享风险链路组信息的能力表征信息或不允许收集共享风险链路组信息的能力表征信息;以及获取目标隧道路径的共享风险链路组收集策略,所述共享风险链路组收集策略包括第一策略或第二策略;

获取到的所述共享风险链路组收集策略为第一策略,则根据获取的各个节点的所述收集能力信息,排除不允许收集共享风险链路组信息的各个节点,根据允许收集共享风险链路组信息的各个节点来计算得到第一路径,作为所述目标隧道路径。

本发明实施例还提供一种隧道路径计算装置,包括:信息获取模块和路径计算模块;

所述信息获取模块用于获取域内各个节点的共享风险链路组信息的收集能力信息,所述收集能力信息包括允许收集共享风险链路组信息的能力表征信息或不允许收集共享风险链路组信息的能力表征信息;以及获取目标隧道路径的共享风险链路组收集策略,所述共享风险链路组收集策略包括第一策略或第二策略;

所述路径计算模块用于在所述隧道路径为域内路径,且获取到的所述共享风险链路组收集策略为第一策略时,根据获取的各个节点的所述收集能力信息,排除不允许收集共享风险链路组信息的各个节点,根据允许收集共享风险链路组信息的各个节点来计算得到第一路径,作为所述目标隧道路径。

本发明实施例还提供一种隧道路径计算设备,所述隧道路径计算设备包括:处理器、存储器和通信总线;

所述通信总线用于实现所述处理器和所述存储器之间的连接通信;

所述处理器用于执行所述存储器中存储的一个或者多个程序,以实现上述的隧道路径计算方法的步骤。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述的隧道路径计算方法的步骤。

本发明的有益效果是:

根据本发明实施例提供的隧道路径计算方法、装置、设备及计算机可读存储介质,通过获取域内各个节点的srlg信息的收集能力信息(即获取到各个节点是否允许收集srlg信息),并获取目标隧道路径的srlg收集策略,进而在srlg收集策略为第一策略(即强制收集)时,排除不允许收集srlg信息的各个节点,仅根据允许收集srlg信息的各个节点来计算得到目标隧道路径;在srlg收集策略为第二策略(即建议收集)时,先仅根据允许收集srlg信息的各个节点来计算得到第一路径来作为目标隧道路径;如果第一路径不存在,再加入不允许收集srlg信息的各个节点,重新计算得到第二路径来作为目标隧道路径。这样,通过本发明所提供的方案计算得到的目标隧道路径可以最大限度保证获取到完整的路径srlg信息,计算得到的目标隧道路径是最优路径,避免了现有技术中计算的隧道路径非最优的问题。同时,通过本发明所提供的方案计算目标隧道路径时,只需一次或两次路径计算,可以快速得到最优的隧道路径,避免了现有技术中可能存在的多次路径计算的问题,提升了te隧道的建立效率及可靠性。

附图说明

图1为本发明背景技术提供的一种风险链路组示意图;

图2为本发明实施例一提供的一种目标隧道路径计算流程示意图;

图3为本发明实施例一提供的一种节点路径示意图;

图4为本发明实施例一提供的又一种节点路径示意图;

图5为本发明实施例一提供的建立跨域隧道时的隧道路径计算过程示意图;

图6为本发明实施例一提供的一种多域间节点路径示意图;

图7为本发明实施例一提供的一种隧道路径计算设备的结构示意图;

图8为本发明实施例二提供的一种在单域域内建立域内隧道的场景示意图;

图9为本发明实施例二提供的一种在多域间建立跨域隧道的场景示意图;

图10为本发明实施例三提供的一种隧道路径计算装置的结构示意图;

图11为本发明实施例三提供的一种隧道路径计算系统的结构示意图。

具体实施方式

下面通过具体实施方式结合附图对本发明实施例作进一步详细说明。

实施例一:

为解决现有技术中,在建立te隧道时,计算出的隧道路径可能并非最优路径,或可能需要多次路径计算的问题,本实施例中提供了一种隧道路径计算方法。

首先需要知晓的是,在实际通信应用中,需要建立的te隧道存在两种情况。其一是在单域域内建立的域内隧道,此时隧道的首节点和终节点处于同一域内,计算的隧道路径处于该域内。其二是在多域间建立的跨域隧道,此时隧道的首节点和终节点处于不同域内,计算的隧道路径会跨越多个域。

应当理解的是,本实施例中“域(domain)”是指:由一组主机和使用相同路由选择协议的路由器集合。本实施例中,将域中的各个通信设备称为节点。

还应当理解的是,在建立一个隧道时,隧道的首节点和终节点是已经被确定好的。因此在计算隧道路径时,隧道路径的首节点和终节点是已知的。

在本实施例中,若所需建立的隧道为域内隧道,则可以参见图2所示的目标隧道路径计算方式进行目标隧道路径的计算。图2为本实施例提供的一种目标隧道路径计算流程示意图,包括:

s201:获取域内各个节点的srlg信息的收集能力信息;

需要说明的是,在本实施例中,对于域内各个节点的srlg信息的收集能力信息的获取、以及之后的目标隧道路径的srlg收集策略的获取和目标隧道路径的计算都可以由该域中目标隧道路的头节点来实现。应当理解的是,对于隧道路径为域内路径的情况而言,头节点即为隧道路径的首节点。

在本实施例中,收集能力信息包括允许收集srlg信息的能力表征信息或不允许收集srlg信息的能力表征信息。应当理解的是,对于该能力表征信息,本实施例中可以预先在内部网关协议(interiorgatewayprotocol,igp)中扩展洪泛字段,通过该扩展的字段来写入该能力表征信息。在本实施例中,能力表征信息可以通过任意设定的写入值来表示,例如可以用0来表示不允许收集srlg信息,用1来表示允许收集srlg信息。

还应当理解的是,在igp中扩展洪泛字段后,在获取域内各个节点的srlg信息的收集能力信息之前,域内的各个节点可以将自身的srlg信息的收集能力信息通过洪泛的方式告知给域内的所有节点。

在进行洪泛之后,当前域内各个节点均能知晓到域内所有节点的srlg信息的收集能力。这样,在头节点获取当前域内各节点的srlg信息的收集能力信息时,头节点只需从本地数据库中获取保存的域内各节点的srlg信息的收集能力信息即可。

值得注意的是,本实施例中预先在内部网关协议中扩展的洪泛字段可以是:预先在ospf(openshortestpathfirst,开放式最短路径优先)和/或isis(intermediatesystemtointermediatesystem,中间系统到中间系统)中扩展的协议字段。应当知晓的是,ospf和isis均是一种具体的内部网关协议。

本实施例中也可以不采用预先在igp中扩展洪泛字段,进而不通过洪泛方式进行域内各节点的srlg信息的收集能力信息的通告。而是在头节点需要获取当前域内各节点的srlg信息的收集能力信息时,由头节点向当前域内各节点发送srlg信息收集能力的获取请求,再由各节点在收到srlg信息收集能力的获取请求之后通过该节点与头节点之间的点对点信令告知给头节点。

应当理解的是,在头节点通过这种方式获取域内各节点的srlg收集能力时,不需要在内部网关协议中扩展洪泛字段,即不需要改变现有的内部网关协议内容。但是由于在进行不同通信业务流量转发时,建立的隧道路径不同则可能导致头节点不同,因此在头节点发生改变后,新的头节点就需要重新发送srlg收集能力的获取请求,过程较为繁琐。而采用预先在igp中扩展洪泛字段,通过洪泛进行域内各节点的srlg收集能力通告的方式时,由于各个节点已经将自身的srlg收集能力通过洪泛方式告知给了域内的所有节点,因此经过域内洪泛之后,各个节点在域内即形成了一个数据库,数据库中包含了域内各个节点的srlg信息的收集能力信息,头节点在获取当前域内各节点的srlg信息的收集能力信息时,直接从数据库中获取即可,过程更为方便。

s202:获取目标隧道路径的srlg收集策略;

在本实施例中,srlg收集策略包括第一策略或第二策略。其中,第一策略是指的强制收集策略,第二策略是指建议收集策略。对于强制收集策略和建议收集策略的内容可以参见背景技术的记载,这里不再赘述。

s203:根据获取到的目标隧道路径的srlg收集策略、域内的各个节点以及获取的各个节点的收集能力信息计算出目标隧道路径。

在本实施例中,根据建立隧道的srlg收集策略的不同,会进行差异的路径计算,具体如下:

若获取到的srlg收集策略是第一策略(即强制收集策略):在计算时,则根据获取的各个节点的收集能力信息,排除不允许收集srlg信息的各个节点,仅根据允许收集srlg信息的各个节点来计算得到第一路径,并将计算得到的第一路径作为目标隧道路径。

这里需要说明的是,根据允许收集srlg信息的各个节点来计算得到目标隧道路径的具体方式是:根据允许收集srlg信息的各个节点计算出所需节点最少的路径来作为目标隧道路。

例如,参见图3所示的节点路径示意图,设隧道从r1建立到r4,各个节点srlg信息的收集能力信息为:r1允许收集;r2不允许收集;r3允许收集;r4允许收集。则在计算时仅选择节点r1、r3和r4计算,得到目标隧道路径即为r1直接到r4的l14路径。

应当理解的是,由于计算得到的目标隧道路中,各个节点都允许收集srlg信息,且所需节点最少,因此通过本实施例计算得到的目标隧道路必然是最优路径。

应当理解的是,若此时头节点仅根据允许收集srlg信息的各个节点计算出的第一路径为空,即表明仅根据允许收集srlg信息的各个节点无法建立隧道,此时直接判定路径计算失败。此后可以反馈错误消息给相关管理工作人员。例如参见图4所示的节点路径示意图,若各个节点srlg收集能力为:r1允许收集;r2不允许收集;r3不允许收集;r4允许收集;且r1没有直接到r4的链路,则在强制收集策略下,此时即计算出的路径为空,计算失败。

在srlg收集策略为强制收集策略时,可以一次性计算得到域内的最优隧道路径,避免了现有计算方式中需要多次路径计算的问题,提升了隧道的建立效率。

若获取到的srlg收集策略是第二策略(即建议收集策略):在计算时,则会根据获取的各个节点的收集能力信息,首先排除不允许收集srlg信息的各个节点,且仅根据允许收集srlg信息的各个节点来计算得到第一路径,并将第一路径作为目标隧道路径。进一步的,如果第一路径不存在,再加入不允许收集srlg信息的各个节点,重新计算得到第二路径,并将第二路径作为目标隧道路径。

这里需要说明的是,仅根据允许收集srlg信息的各个节点来计算得到第一路径作为目标隧道路径的具体方式是:根据允许收集srlg信息的各个节点计算出所需节点最少的路径来作为目标隧道路。

还需要说明的是,在第一路径不存在时,加入不允许收集srlg信息的各个节点,重新计算得到第二路径作为目标隧道路径的具体方式是:加入不允许收集srlg信息的各个节点,计算出所需不允许收集srlg信息的节点最少的路径作为目标隧道路径。

应当理解的是,在此方式进行路径计算时,可能会存在计算出的不允许收集srlg信息的节点最少的路径存在两条或两条以上的情况。此时,一种可行的解决方式是,将这两条或两条以上的所需不允许收集srlg信息的节点最少的路径中,整体节点最少的路径作为目标隧道路径。

例如,仍旧参见图4所示的节点路径示意图,隧道是从r1建立到r4,节点r1和r4允许收集srlg信息,r2和r3不允许收集srlg信息。在计算时,首先仅取节点r1和r4进行计算,此时由于r1没有直接到r4的链路,故此时即计算出的路径为空,第一路径不存在。进而将节点r2和r3加入算路,计算得到目标隧道路径为r1到r3再到r4的l13-l34路径。

应当理解的是,在获取到的srlg收集策略是第二策略(即建议收集策略)时,目标隧道路径的计算除了上述计算方式外,还可以通过以下方式进行计算。具体的:

根据所有节点及获取的各个节点的收集能力信息,计算出所需不允许收集srlg信息的节点最少的第三路径,作为目标隧道路径。

同理,若计算出的第三路径存在两条或两条以上时,将这两条或两条以上的第三路径中,整体节点最少的路径作为目标隧道路径。

例如,仍旧参见图3所示的节点路径示意图,隧道是从r1建立到r4,节点r1、r3和r4允许收集srlg信息,r2不允许收集srlg信息。计算时:同时将节点r1-r4加入算路中,得到的所需不允许收集srlg信息的节点最少的路径即有:r1直接到r4的l14路径;r1到r3再到r4的l13-l34路径(两条路径所需次选节点数均为0)。此时,根据整体节点最少的路径作为目标隧道路径的原则,l14路径即为目标隧道路径。

在srlg收集策略为建议收集策略时,通过本实施例提供的方式计算得到的目标隧道路径必然为隧道的最优路径,可以最大限度保证收集到的路径的srlg信息的完整性,避免了现有计算方式中计算的路径并非最优的问题,提升了建立的隧道的可靠性。

值得注意的是,在本实施例中srlg收集策略可以是预先设定于设备中的。但是,相关工程师在设备中重新写入相关srlg收集策略的指令,从而更改设定的srlg收集策略。在实际应用中,工程师在建立隧道之前都可以自由写入相关srlg收集策略的指令,从而设定隧道的srlg收集策略。

在本实施例中,若所需建立的隧道为跨域隧道,则隧道路径计算过程可以参见图5所示,包括:

s501:确定目标隧道路径途经的各个域及各个域的首节点和终节点;

应当理解的是,对于目标隧道路径而言,目标隧道路径的首节点和终节点是已经被确定好的。而隧道路径的首节点和终节点是处于不同域内。此时对于隧道路径的首节点所处的域而言,该域的首节点(头结点)即为隧道路径的首节点,该域的终节点即为该域的边界节点。对于隧道路径的终节点所处的域而言,该域的首节点(头结点)即为该域的边界节点,该域的终节点即为隧道路径的最终节点。

应当理解的是,在一个域中,边界节点是预先确定好的,其具备相关标识。该域的首节点在计算隧道路径之前即会查找出具备相关标识的边界节点。

s502:按照目标隧道路径计算方式计算各个域内首节点到终节点之间的域内路径;

在计算目标隧道路径时,各域的首节点即可按照图2所示的目标隧道路径计算方式计算出各域的域内路径。

s503:按照目标隧道路径的途径顺序,确定域间路径;

应当理解的是,目标隧道路径的途径顺序即表征了不同域之间的先后连接顺序。在确定好不同域之间的先后连接顺序之后,即可根据两个域之间相连的边界节点确定域间路径。

应当理解的是,若在跨域隧道中,隧道路径首节点所在域的边界节点与隧道路径终节点所在域的边界节点之间不存在直接连接的路径,则表明需要通过第三方域进行转接。此时即需要计算第三方域中的域内路径。对于第三方域而言,其头结点即为与隧道路径首节点所在域的边界节点相连的边界节点,终节点为与隧道路径终节点所在域的边界节点相连的边界节点。其域内路径的计算方式同图2所示的目标隧道路径计算方式,此处不再赘述。

s504:将域内路径和域间路径组合作为目标隧道路径。

例如参见图6所示的多域间节点路径示意图,隧道从r1建立到r8,r1-r4为域一内的节点,r5-r8为域二内的节点。设域一内计算得到的最优域内路径为r1直接到r4的l14路径(r4为域一内的边界节点),设域二内计算得到的最优域内路径为r7直接到r8的l78路径(r7为域二内的边界节点),同时域一和域二之间的连接路径即为边界节点r4到边界节点r7的路径l47。将三者按隧道途径顺序拼接起来即得到了最终的隧道路径:l14-l47-l78。

值得注意的是,在计算得到隧道路径之后,还可以进一步地计算出隧道路径的备用路径,从而保证隧道建立之后,在隧道路径(即主路径)故障时有备用可以进行通信业务流量转发。

在本实施例中,一种可行的备用路径的计算方式是:在计算得到隧道路径之后,根据获取到的目标隧道路径的srlg收集策略、域内的各个节点以及获取的各个节点的收集能力信息计算出的域内的次优路径(目标隧道路径为最优路径)。进而根据次优路径得到备用路径。

具体的,若隧道为域内隧道,则将次优路径作为隧道路径的备用路径。若隧道为跨域隧道,则根据不同域内的次优路径以及隧道路径在不同域内的途经顺序得到隧道路径的备用路径。

应当理解的是,在本实施例中计算备用路径的另外一种方式是:计算出隧道首节点至终节点的所有路径,再获取首节点至终节点的各条路径的srlg值,并将之与之前计算得到的隧道路径(最优路径)的srlg值进行比较,将差别最大的那条路径作为备用路径。

参见图7所示,本实施例中还提供了一种隧道路径计算设备,包括处理器71、存储器72和通信总线73;。

其中,通信总线73用于实现处理器71和存储器72之间的连接通信;

处理器71用于执行存储器72中存储的一个或者多个程序,以实现上述隧道路径计算方法的各个步骤。

本实施例中,还提供一种计算机可读存储介质,如软盘、光盘、硬盘、闪存、u盘、cf卡、sd卡、mmc卡等,在该计算机可读存储介质中存储有实现上述各个步骤的一个或多个程序,这一个或多个程序可以由一个或多个处理器读取并执行,从而实现上述隧道路径计算方法的各个步骤。

本实施例提供的隧道路径计算方法、设备及计算机可读存储介质,通过获取域内各个节点的srlg信息的收集能力信息(即获取到各个节点是否允许收集srlg信息),并获取目标隧道路径的srlg收集策略,进而在srlg收集策略为第一策略(即强制收集)时,排除不允许收集srlg信息的各个节点,仅根据允许收集srlg信息的各个节点来计算得到目标隧道路径;在srlg收集策略为第二策略(即建议收集)时,先仅根据允许收集srlg信息的各个节点来计算得到第一路径来作为目标隧道路径;如果第一路径不存在,再加入不允许收集srlg信息的各个节点,重新计算得到第二路径来作为目标隧道路径。这样,通过本实施例所提供的方案计算得到的目标隧道路径可以最大限度保证获取到完整的路径srlg信息,计算得到的目标隧道路径是最优路径,避免了现有技术中计算的隧道路径非最优的问题。同时,通过本实施例所提供的方案计算目标隧道路径时,只需一次或两次路径计算,可以快速得到最优的隧道路径,避免了现有技术中可能存在的多次路径计算的问题,提升了te隧道的建立效率及可靠性。

实施例二:

本实施例在实施例一的基础上,以两种具体的隧道路径计算过程为例对本发明实施例的方案作进一步示例说明。

其一:

参见图8所示的在单域域内建立域内隧道的场景。设隧道从节点r1建立到r3(即目标隧道路径的首节点为r1,终节点为r3);设节点r1和r3的srlg收集能力为允许搜集,节点r2和r4的srlg收集能力为不允许搜集。

在计算隧道路径之前,各个节点将自身的srlg信息的收集能力信息通过ospf或isis在域内洪泛,从而使得各个节点均得到如下数据信息:

r1允许搜集;r2不允许搜集;r3允许搜集;r4不允许搜集。

在计算隧道路径时,如果srlg收集策略为强制收集策略,那么排除节点r2和r4,仅根据节点r1和r3计算路径,路径计算出来只有r1直接到r3的l13路径,该l13路径即为目标隧道路径。应当理解的是,假设在图8中l13路径不存在,则此时即判定路径计算失败,需改变srlg收集策略或修改某些节点的srlg信息的收集能力。

在计算隧道路径时,如果srlg收集策略为建议收集策略,那么先排除节点r2和r4,仅根据节点r1和r3计算路径,路径计算出来存在一条l13的路径,那么这条路径就是最优路径,该l13路径即为目标隧道路径。应当理解的是,假设在图8中l13路径不存在,则将节点r2和r4加入算路,重新计算出包含节点r2和r4最少的路径,以该路径作为目标隧道路径。

其二:

参见图9所示的在多域间建立跨域隧道的场景。设隧道从r1建立到r6(即目标隧道路径的首节点为r1,终节点为r6);设节点r1、r3、r4和r6的srlg信息的收集能力为允许搜集,节点r2和r5的srlg信息的收集能力为不允许搜集;设域一的边界节点为r3,域二的边界节点为r4。

在计算隧道路径之前,在域一内,节点r1、r2、r3将自身的srlg信息的收集能力信息通过ospf或isis在域内洪泛,域一内的各个节点均得到如下数据信息:

r1允许搜集;r2不允许搜集;r3允许搜集。

在域二内,节点r4、r5、r6将自身的srlg信息的收集能力信息通过ospf或isis在域内洪泛,域二内的各个节点得到如下数据信息:

r4允许搜集;r5不允许搜集;r6允许搜集。

在计算隧道路径时,由于是跨域建立隧道,需要计算路径到域的边界节点,由边界节点再继续往下计算路径。即节点r1需要计算到节点r3的路径,节点r3需要计算到节点r4的路径,节点r4需要计算到节点r6的路径,这三段路径拼接起来就是一个完整的节点r1到r6的隧道路径。

具体的,如果srlg收集策略为强制收集策略:在r1节点,排除节点r2,仅根据节点r1和r3计算路径,计算出r1到r3的路径为l13链路;在r3节点,根据节点r3和r4计算路径,计算出r3到r4的路径为l34链路;在r4节点,排除节点r5,仅根据节点r4和r6计算路径,计算出r4到r6的路径为l46链路。拼接后完整的隧道路径即为:l13-l34-l46。

应当理解的是,假设在图9中l13、l34和l46三条链路中任意一条不存在,则此时即判定路径计算失败,需改变srlg收集策略或修改某些节点的srlg信息的收集能力。

如果srlg收集策略为建议收集策略:在r1节点,排除节点r2,仅根据节点r1和r3计算路径,计算出r1到r3的路径为l13链路;在r3节点,根据节点r3和r4计算路径,计算出r3到r4的路径为l34链路;在r4节点,排除节点r5,仅根据节点r4和r6计算路径,计算出r4到r6的路径为l46链路。拼接后完整的隧道路径即为:l13-l34-l46。

应当理解的是,假设在图9中l13和l46两条链路中有至少一条链路不存在,则此时在不存在该链路的对应域中,加入不允许搜集的节点重新计算路径。例如,假设l13不存在,则在r1节点,即需要根据r1、r2和r3重新计算r1到r3的路径,此时得到r1到r3的路径即为l12-l23,最终的的隧道路径即为:l12-l23-l34-l46。

本实施例提供的隧道路径计算方法,通过在ospf或isis协议中扩展洪泛字段,将节点的srlg收集能力在域内洪泛。在隧道路径计算的时候根据隧道的srlg收集策略,在srlg收集策略为建议收集策略时,能够计算出隧道的最优路径,避免了现有计算方式中计算的路径并非最优的问题,最大限度保证了收集到的路径的srlg信息的完整性,提升了建立的隧道的可靠性;在srlg收集策略为强制收集策略时,能够一次性计算得到最优的隧道路径,避免了现有计算方式中需要多次路径计算的问题,提升了隧道的建立效率。

实施例三

为解决现有技术中,在建立te隧道时,计算出的隧道路径可能并非最优路径,或可能需要多次路径计算的问题,本实施例中提供了一种隧道路径计算装置。

需要知晓的是,在实际通信应用中,需要建立的te隧道存在两种情况。其一是在单域域内建立的域内隧道,此时隧道的首节点和终节点处于同一域内,计算的隧道路径处于该域内。其二是在多域间建立的跨域隧道,此时隧道的首节点和终节点处于不同域内,计算的隧道路径会跨越多个域。

而“域”是指:由一组主机和使用相同路由选择协议的路由器集合。本实施例中,将域中的各个通信设备称为节点。

应当理解的是,在建立一个隧道时,隧道的首节点和终节点是已经被确定好的。因此在计算隧道路径时,隧道路径的首节点和终节点是已知的。

参见图10,图10为本实施例提供的一种隧道路径计算装置10的结构示意图,包括信息获取模块101和路径计算模块102。若所需建立的隧道为域内隧道,则:

信息获取模块101用于获取域内各个节点的srlg信息的收集能力信息,以及获取目标隧道路径的srlg收集策略。

需要说明的是,在本实施例中,隧道路径计算装置10对于域内各个节点的srlg信息的收集能力信息的获取、以及之后的目标隧道路径的srlg收集策略的获取和目标隧道路径的计算都可以通过设置于该域中目标隧道路的头节点来实现。应当理解的是,对于隧道路径为域内路径的情况而言,头节点即为隧道路径的首节点。还应当理解的是,因为随着所需建立的隧道的不同,对于一个域而言,域中的所有节点都可能成为头节点,因此,在一个域中,所有节点中都可以设置隧道路径计算装置10。

在本实施例中,收集能力信息包括允许收集srlg信息的能力表征信息或不允许收集srlg信息的能力表征信息。应当理解的是,对于该能力表征信息,本实施例中可以预先在内部网关协议(interiorgatewayprotocol,igp)中扩展洪泛字段,通过该扩展的字段来写入该能力表征信息。在本实施例中,能力表征信息可以通过任意设定的写入值来表示,例如可以用a来表示不允许收集srlg信息,用a来表示允许收集srlg信息。

还应当理解的是,在igp中扩展洪泛字段后,信息获取模块101在获取域内各个节点的srlg信息的收集能力信息之前,域内的各个节点可以将自身的srlg信息的收集能力信息通过洪泛的方式告知给域内的所有节点。

在进行洪泛之后,当前域内各个节点均能知晓到域内所有节点的srlg信息的收集能力。这样,在信息获取模块101获取当前域内各节点的srlg信息的收集能力信息时,只需从本地数据库中获取保存的域内各节点的srlg信息的收集能力信息即可。

值得注意的是,本实施例中预先在内部网关协议中扩展的洪泛字段可以是:预先在ospf和/或isis中扩展的协议字段。应当知晓的是,ospf和isis均是一种具体的内部网关协议。

本实施例中也可以不采用预先在igp中扩展洪泛字段,进而不通过洪泛方式进行域内各节点的srlg信息的收集能力信息的通告。而是在信息获取模块101需要获取当前域内各节点的srlg信息的收集能力信息时,向当前域内各节点发送srlg信息收集能力的获取请求,再由各节点在收到srlg信息收集能力的获取请求之后反馈自身的srlg信息的收集能力信息给信息获取模块101。

应当理解的是,在信息获取模块101通过这种方式获取域内各节点的srlg收集能力时,不需要在内部网关协议中扩展洪泛字段,即不需要改变现有的内部网关协议内容。但是由于在进行不同通信业务流量转发时,建立的隧道路径不同则可能导致头节点不同,因此在头节点发生改变后,新的头节点就需要重新发送srlg收集能力的获取请求,过程较为繁琐。而采用预先在igp中扩展洪泛字段,通过洪泛进行域内各节点的srlg收集能力通告的方式时,由于各个节点已经将自身的srlg收集能力通过洪泛方式告知给了域内的所有节点,因此经过域内洪泛之后,各个节点在域内即形成了一个数据库,数据库中包含了域内各个节点的srlg信息的收集能力信息,信息获取模块101在获取当前域内各节点的srlg信息的收集能力信息时,直接从数据库中获取即可,过程更为方便。

在本实施例中,srlg收集策略包括第一策略或第二策略。其中,第一策略是指的强制收集策略,第二策略是指建议收集策略。

路径计算模块102用于根据信息获取模块101获取到的目标隧道路径的srlg收集策略、域内的各个节点以及获取的各个节点的收集能力信息计算出目标隧道路径。

在本实施例中,根据建立隧道的srlg收集策略的不同,会进行差异的路径计算,具体如下:

若信息获取模块101获取到的srlg收集策略是第一策略:路径计算模块102在计算时,则根据获取的各个节点的收集能力信息,排除不允许收集srlg信息的各个节点,仅根据允许收集srlg信息的各个节点来计算得到第一路径,并将计算得到的第一路径作为目标隧道路径。

这里需要说明的是,根据允许收集srlg信息的各个节点来计算得到目标隧道路径的具体方式是:根据允许收集srlg信息的各个节点计算出所需节点最少的路径来作为目标隧道路。

应当理解的是,由于路径计算模块102计算得到的目标隧道路中,各个节点都允许收集srlg信息,且所需节点最少,因此通过本实施例计算得到的目标隧道路必然是最优路径。

应当理解的是,若此时路径计算模块102仅根据允许收集srlg信息的各个节点计算出的第一路径为空,即表明仅根据允许收集srlg信息的各个节点无法建立隧道,此时直接判定路径计算失败。此后可以反馈错误消息给相关管理工作人员。

在srlg收集策略为强制收集策略时,路径计算模块102可以一次性计算得到域内的最优隧道路径,避免了现有计算方式中需要多次路径计算的问题,提升了隧道的建立效率。

若信息获取模块101获取到的srlg收集策略是第二策略:路径计算模块102在计算时,则会根据获取的各个节点的收集能力信息,首先排除不允许收集srlg信息的各个节点,且仅根据允许收集srlg信息的各个节点来计算得到第一路径,并将第一路径作为目标隧道路径。进一步的,如果第一路径不存在,路径计算模块102再加入不允许收集srlg信息的各个节点,重新计算得到第二路径,并将第二路径作为目标隧道路径。

这里需要说明的是,仅根据允许收集srlg信息的各个节点来计算得到第一路径作为目标隧道路径的具体方式是:根据允许收集srlg信息的各个节点计算出所需节点最少的路径来作为目标隧道路。

还需要说明的是,在第一路径不存在时,路径计算模块102加入不允许收集srlg信息的各个节点,重新计算得到第二路径作为目标隧道路径的具体方式是:路径计算模块102加入不允许收集srlg信息的各个节点,计算出所需不允许收集srlg信息的节点最少的路径作为目标隧道路径。

应当理解的是,在此方式进行路径计算时,可能会存在计算出的不允许收集srlg信息的节点最少的路径存在两条或两条以上的情况。此时,一种可行的解决方式是,将这两条或两条以上的所需不允许收集srlg信息的节点最少的路径中,整体节点最少的路径作为目标隧道路径。

应当理解的是,在信息获取模块101获取到的srlg收集策略是第二策略时,路径计算模块102对于目标隧道路径的计算除了上述计算方式外,还可以通过以下方式进行计算。具体的:

路径计算模块102根据所有节点及获取的各个节点的收集能力信息,计算出所需不允许收集srlg信息的节点最少的第三路径,作为目标隧道路径。

同理,若计算出的第三路径存在两条或两条以上时,将这两条或两条以上的第三路径中,整体节点最少的路径作为目标隧道路径。

在srlg收集策略为建议收集策略时,通过本实施例提供的方式计算得到的目标隧道路径必然为隧道的最优路径,可以最大限度保证收集到的路径的srlg信息的完整性,避免了现有计算方式中计算的路径并非最优的问题,提升了建立的隧道的可靠性。

值得注意的是,在本实施例中srlg收集策略可以是预先设定于设备中的。但是,相关工程师在设备中重新写入相关srlg收集策略的指令,从而更改设定的srlg收集策略。在实际应用中,工程师在建立隧道之前都可以自由写入相关srlg收集策略的指令,从而设定隧道的srlg收集策略。

在本实施例中,若所需建立的隧道为跨域隧道,则需要涉及到多个隧道路径计算装置10的联合计算。

具体的,对于跨域隧道的隧道路径的计算而言,由于隧道路径的首节点和终节点是处于不同域内,此时就需要涉及各个域内路径的计算以及域间路径的计算。对于域内路径的计算,可以由各域的头节点中的隧道路径计算装置10来实现。而对于域间路径则可以由两域间,在前连接的域的边界节点中的隧道路径计算装置10来实现。

具体的,参见图11所示的隧道路径计算系统,其除了包含多个隧道路径计算装置10外,还包括用于确定目标隧道路径途经的各个域及各个域的首节点和终节点的节点确定模块11,以及将域内路径和域间路径组合作为目标隧道路径的路径接合模块12。

应当理解的是,在跨域隧道路径中,对于隧道路径的首节点所处的域而言,该域的首节点(头结点)即为隧道路径的首节点,该域的终节点即为该域的边界节点。对于隧道路径的终节点所处的域而言,该域的首节点(头结点)即为该域的边界节点,该域的终节点即为隧道路径的最终节点。

应当理解的是,在一个域中,边界节点是预先确定好的,其具备相关标识。该域的首节点在计算隧道路径之前即会查找出具备相关标识的边界节点。

还应当理解的是,在计算域间路径时,隧道路径计算系统是根据目标隧道路径的途径顺序来确定计算域间路径的隧道路径计算装置10的。在本实施例中,目标隧道路径的途径顺序即表征了不同域之间的先后连接顺序。在确定好不同域之间的先后连接顺序之后,即可由两相邻域间,在前连接的域的边界节点中的隧道路径计算装置10来确定域间路径。

应当理解的是,若在跨域隧道中,隧道路径首节点所在域的边界节点与隧道路径终节点所在域的边界节点之间不存在直接连接的路径,则表明需要通过第三方域进行转接。此时即需要计算第三方域中的域内路径。对于第三方域而言,其头结点即为与隧道路径首节点所在域的边界节点相连的边界节点,终节点为与隧道路径终节点所在域的边界节点相连的边界节点。

值得注意的是,在计算得到隧道路径之后,路径计算模块902还可以进一步地计算出隧道路径的备用路径,从而保证隧道建立之后,在隧道路径(即主路径)故障时有备用可以进行通信业务流量转发。

在本实施例中,路径计算模块102的一种可行的备用路径的计算方式是:在计算得到隧道路径之后,再次根据设定的srlg收集策略以及各节点的srlg收集能力计算当前域内头节点至目标节点的次优路径。进而根据次优路径得到备用路径。

具体的,若为域内隧道,则隧道路径的首节点和最终节点处于同一域内,路径计算模块102将次优路径作为隧道路径的备用路径。若隧道为跨域隧道,则隧道路径计算系统根据不同域内的次优路径以及隧道路径在不同域内的途经顺序得到隧道路径的备用路径。

应当理解的是,本实施例中,隧道路径计算装置10中的各个模块的功能均可由隧道路径计算装置所在节点的处理器或处理芯片来实现。而隧道路径计算系统中的节点确定模块11和路径接合模块12的功能则可以由隧道建立过程中的统筹管理设备(如服务器、主机、路由器等)的处理器或处理芯片来实现。

本实施例提供的隧道路径计算装置即隧道路径计算系统,先获取到各个节点是否允许收集srlg信息,并获取目标隧道路径的srlg收集策略,进而在srlg收集策略为强制收集策略时,排除不允许收集srlg信息的各个节点,仅根据允许收集srlg信息的各个节点来计算得到目标隧道路径;在srlg收集策略为建议收集策略时,先仅根据允许收集srlg信息的各个节点来计算得到第一路径来作为目标隧道路径;如果第一路径不存在,再加入不允许收集srlg信息的各个节点,重新计算得到第二路径来作为目标隧道路径。这样,通过本实施例所提供的方案计算得到的目标隧道路径可以最大限度保证获取到完整的路径srlg信息,计算得到的目标隧道路径是最优路径,避免了现有技术中计算的隧道路径非最优的问题。同时,通过本实施例所提供的方案计算目标隧道路径时,只需一次或两次路径计算,可以快速得到最优的隧道路径,避免了现有技术中可能存在的多次路径计算的问题,提升了te隧道的建立效率及可靠性。

显然,本领域的技术人员应该明白,上述本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在计算机可读存储介质(rom/ram、磁碟、光盘)中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。所以,本发明不限制于任何特定的硬件和软件结合。

以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1