一种SR-MPLSAnycast场景下的故障修复方法、设备和存储介质与流程

文档序号:20945995发布日期:2020-06-02 19:52阅读:437来源:国知局
一种SR-MPLS Anycast场景下的故障修复方法、设备和存储介质与流程

本发明涉及通信技术领域,特别是涉及一种sr(segmentrouting,分段路由)-mpls(multi-protocollabelswitching,多协议标签交换)anycast(任播)场景下的故障修复方法、设备和存储介质。



背景技术:

sr技术通过在报文中增加一段有序的指令列表控制报文转发,该指令列表为segmentlist(标签栈),一段segment可以是代表拓扑或业务的任何指令,具有本地或全局含义。标签栈中的每一个标签可以标识一条链路或节点,整个标签栈从栈顶到栈底标识了一条转发路径。在报文转发的过程中,根据标签栈的栈顶标签查找对应的链路并转发报文,将标签栈中的所有标签弹出后,报文到达目的地。

sr技术可以直接应用于mpls网络(称为sr-mpls),一段segment就是一个mpls标签;sr技术也可以应用于ipv6网络(称为srv6),一段segment就是一个ipv6地址。在sr技术中,sid(segmentidentifier,段标识)包括prefix-sid、node-sid、anycast-sid和adj-sid等多种类型,分别表示为一个路由前缀、一个设备节点、一个任播地址和一段链路分配的sid。

不同于将流量转发到一个特定的设备或转发给一组设备中的所有设备,基于sranycast的转发是将流量转发到一组具有相同anycast-sid的设备中距离本设备路径最短的设备。这一组设备除发布正常的node-sid外,再发布一个相同的anycast-sid。将anycast-sid加入到segmentlist中,在转发报文时,根据anycast-sid指导报文转发,具有相同anycast-sid的设备互相提供节点备份保护。

但是,在网络发生故障时,依据现有的sranycast技术将无法完成报文转发。进一步地,在报文转发过程中,当前设备会根据标签栈栈顶的sranycast标签寻找转发出口,如果链路发生故障,内层标签将无法被命中,报文将会被丢弃,无法继续转发。



技术实现要素:

本发明要解决的技术问题是提供一种sr-mplsanycast场景下的故障修复方法、设备和存储介质,用以解决在网络发生故障时,依据现有的sranycast技术无法完成报文转发的问题。

为了解决上述技术问题,本发明是通过以下技术方案来解决的:

本发明提供了一种sr-mplsanycast场景下的故障修复方法,在配置了anycast-sid的边缘设备侧执行,包括:在所述边缘设备接收到报文之后,读取所述报文中携带的标签栈;在所述边缘设备的anycast-sid命中所述标签栈的栈顶标签时,根据所述标签栈的内层标签,查询所述报文对应的后续转发链路是否发生故障;如果所述报文对应的后续转发链路发生故障,则利用与所述边缘设备具有相同anycast-sid的备用设备,对所述报文执行快速重路由处理。

其中,根据所述标签栈的内层标签,查询所述报文对应的后续转发链路是否发生故障,包括:确定所述标签栈的栈顶标签的下一层标签;查询从所述边缘设备到所述下一层标签对应的节点设备的链路是否可达;如果从所述边缘设备到所述下一层标签对应的节点设备的链路不可达,则判定所述报文对应的后续转发链路发生故障。

其中,如果从所述边缘设备到所述下一层标签对应的节点设备的链路可达,则弹出所述标签栈的栈顶标签,并将所述报文转发给所述下一层标签对应的节点设备。

其中,利用与所述边缘设备具有相同anycast-sid的备用设备,对所述报文执行快速重路由处理,包括:获取与所述边缘设备具有相同anycast-sid的备用设备的设备节点段标识node-sid;将所述报文携带的标签栈的栈顶标签交换成所述备用设备的node-sid;将所述报文转发给所述备用设备,由所述备用设备继续转发所述报文。

其中,获取与所述边缘设备具有相同anycast-sid的备用设备的node-sid,包括:在预先建立的快速重路由转发表中,获取与所述边缘设备具有相同anycast-sid的备用设备的node-sid;其中,在所述快速重路由转发表中记录了所述备用设备的node-sid对应标签交换操作。

其中,在对所述报文执行快速重路由处理之前,还包括:接收所述边缘设备对应的保护设备通告的anycast-sid;在与所述边缘设备具有相同anycast-sid的保护设备中,选择其中一个保护设备作为所述边缘设备的备用设备。

其中,在与所述边缘设备具有相同anycast-sid的保护设备中,选择其中一个保护设备作为所述边缘设备的备用设备,包括:在与所述边缘设备具有相同anycast-sid的保护设备中,选择最短路径对应的保护设备作为所述边缘设备的备用设备。

其中,所述方法还包括:如果所述报文对应的后续转发链路未发生故障,则弹出所述标签栈的栈顶标签,并根据所述标签栈的内层标签转发所述报文。

本发明还提供了一种sr-mplsanycast场景下的故障修复设备,所述sr-mplsanycast场景下的故障修复设备包括处理器和存储器;所述处理器用于执行所述存储器中存储的sr-mplsanycast场景下的故障修复程序,以实现上述的sr-mplsanycast场景下的故障修复方法。

本发明又提供了一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述的sr-mplsanycast场景下的故障修复方法。

本发明一实施例的有益效果如下:

本发明为边缘设备配置anycast-sid,并且为该边缘设备设置与该边缘设备具有相同anycast-sid的备用设备,在报文的后续转发链路出现故障时,将该报文转发给备用设备,由该备用设备继续转发该报文,避免报文在边缘设备处中断转发的问题的发生。

附图说明

图1是根据本发明第一实施例的sr-mplsanycast场景下的故障修复方法的流程图;

图2是根据本发明第二实施例的sr-mplsanycast场景下的故障修复方法的流程图;

图3是根据本发明第三实施例的sr-mplsanycast场景下的故障修复方法的示意图;

图4是根据本发明第三实施例的标签栈的变化示意图;

图5是根据本发明第四实施例的sr-mplsanycast场景下的故障修复设备的结构图。

具体实施方式

以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。

实施例一

本实施例提供一种sr-mplsanycast场景下的故障修复方法。本实施例的执行主体为配置了anycast-sid的边缘设备。

如图1所述,为根据本发明第一实施例的sr-mplsanycast场景下的故障修复方法的流程图。

步骤s110,在边缘设备接收到报文之后,读取该报文中携带的标签栈。

标签栈中包含多个有序的标签。每个标签可以标识出一条链路,多个标签可以标识出报文转发的整条路径。

整体路径的终点为报文需要到达的目的设备。作为本实施例执行主体的边缘设备与该目的设备处于同一个igp(interiorgatewayprotocol,内部网关协议)domain(域)内。

步骤s120,在边缘设备的anycast-sid命中标签栈的栈顶标签时,根据标签栈的内层标签,查询该报文对应的后续转发链路是否发生故障;如果是,则执行步骤s130;如果否,则执行步骤s140。

栈顶标签,是指位于标签栈顶部的标签。

内层标签,是指位于栈顶标签下层的标签。

后续转发链路,是指从边缘设备到与该边缘设备处于同一igpdomain的目的设备的链路。

在本实施例中,边缘设备被配置了anycast-sid,将该anycast-sid与标签栈的栈顶标签进行比较,如果该anycast-sid与该栈顶标签相同,则说明边缘设备的anycast-sid命中标签栈的栈顶标签;如果该anycast-sid与该栈顶标签不同,则说明边缘设备的anycast-sid未命中标签栈的栈顶标签。进一步地,在边缘设备的anycast-sid未命中标签栈的栈顶标签时,则对该报文执行正常处理,即根据栈顶标签转发报文。

在本实施例中,确定标签栈的栈顶标签的下一层标签;查询从边缘设备到该下一层标签对应的节点设备的链路是否可达;如果从边缘设备到该下一层标签对应的节点设备的链路不可达,则判定报文对应的后续转发链路发生故障;如果从边缘设备到该下一层标签对应的节点设备的链路可达,则判定报文对应的后续转发链路未发生故障。进一步地,可以根据预设的故障快速检测方式,查询从边缘设备到该下一层标签对应的节点设备的链路是否可达。该故障快速检测方式,包括但不限于:bfd(bidirectionalforwardingdetection,双向转发检测)方式,物理信号检测方式。

步骤s130,如果该报文对应的后续转发链路发生故障,则利用与边缘设备具有相同anycast-sid的备用设备,对该报文执行快速重路由处理。

备用设备,用于在报文的后续转发链路出现故障的情况下,形成备链路,将报文继续向目的设备转发。

获取与边缘设备具有相同anycast-sid的备用设备的node-sid;将该报文携带的标签栈的栈顶标签交换成该备用设备的node-sid;将该报文转发给该备用设备,由该备用设备继续转发该报文。

对该报文执行快速重路由处理,可以保证报文可以继续向目的设备转发,避免报文因链路发生故障,导致的报文被丢弃,无法继续转发的问题。

步骤s140,如果该报文对应的后续转发链路未发生故障,则弹出标签栈的栈顶标签,并根据该标签栈的内层标签转发该报文。

具体的,如果报文对应的后续转发链路未发生故障,即如果从边缘设备到下一层标签对应的节点设备的链路可达,则弹出标签栈的栈顶标签,并将报文转发给下一层标签对应的节点设备,由该节点设备继续转发该报文,直到该报文到达目标设备为止。

在本实施例中,为边缘设备配置anycast-sid,并且为该边缘设备设置与该边缘设备具有相同anycast-sid的备用设备,在报文的后续转发链路出现故障时,将该报文转发给备用设备,由该备用设备继续转发该报文,避免报文在边缘设备处中断转发的问题的发生。

实施例二

下面给出一个较为具体的实施例,来对本发明sr-mplsanycast场景下的故障修复方法进行进一步地说明。

如图2所述,为根据本发明第二实施例的sr-mplsanycast场景下的故障修复方法的流程图。

步骤s210,接收边缘设备对应的保护设备通告的anycast-sid。

保护设备是指与边缘设备处于同一网络,且与边缘设备具有相同anycast-sid的边缘设备。

步骤s220,在与边缘设备具有相同anycast-sid的保护设备中,选择其中一个保护设备作为该边缘设备的备用设备。

在同一网络中,当多个边缘设备配置相同的anycast-sid时,通过igp路由通告,每个边缘设备都会学习到其它边缘设备通告的anycast-sid,在与本端边缘设备具有相同anycast-sid的边缘设备中选择其中一个边缘设备,作为当前边缘设备的备用设备,以便通过该备用设备为报文提供备用链路。

在与所述边缘设备具有相同anycast-sid的保护设备中,选择最短路径对应的保护设备作为所述边缘设备的备用设备。进一步地,在与所述边缘设备具有相同anycast-sid的保护设备中,确定每个保护设备与所述边缘设备之间的路径距离,选择最短路径对应的保护设备作为所述边缘设备的备用设备。

具体的,可以先确定边缘设备和每个保护设备之间的链路耗费,选择链路耗费最小的保护设备作为备用设备;如果链路耗费都相同,则确定边缘设备到每个保护设备的下一跳ip地址的网络序,选择网络序最小的保护设备作为备用设备;如果网络序都相同,则确定边缘设备到每个保护设备的出接口,选择出接口名的字符串长度最小的保护设备作为备用设备。其中,链路耗费可以是metric或者cost。

步骤s230,根据该边缘设备对应的备用设备的信息,建立frr(fastre-route,快速重路由)转发表。

在快速重路由转发表中,至少包括:备用转发信息。当然,在快速重路由转发表中,还可以包括:主用转发信息。主用转发信息和备用转发信息都包括至少以下信息之一:标签操作类型、出接口、下一跳ip地址(internetprotocoladdress,互联网协议地址)和出标签(桟)。

标签操作类型包括:弹出(pop)操作和标签交换(swap)操作。在快速重路由转发表中,边缘设备的anycast-sid对应弹出操作,备用设备的node-sid对应标签交换操作。

步骤s240,在边缘设备接收到报文之后,读取该报文中携带的标签栈。

步骤s250,在边缘设备的anycast-sid命中标签栈的栈顶标签时,根据栈顶标签的下一层标签,查询该报文对应的后续转发链路是否发生故障;如果是,则执行步骤s260;如果否,则执行步骤s280。

步骤s260,触发frr切换流程,在frr转发表中,获取与该边缘设备对应的备用设备的node-sid。

步骤s270,根据备用设备对应的标签交换操作,将该报文携带的标签栈的栈顶标签交换成该备用设备的node-sid,并将该报文转发给该备用设备,由该备用设备继续转发该报文。

备用设备在接收到该报文之后,读取报文中携带的标签栈,可以确定该标签栈的栈顶标签为本端备用设备的node-sid,这样,备用设备就会弹出该栈顶标签,根据该栈顶标签的下一层标签转发该报文,使得报文可以继续向目的设备转发,避免了报文被丢弃的问题。

进一步地,在sr技术中,每个标签对应一个路由前缀,sid是跟随路由前缀一同通告的,标签的转发信息就是路由前缀的转发信息,该转发信息可以通过igp计算得到。

步骤s280,弹出标签栈的栈顶标签,并将该报文转发给下一层标签对应的节点设备。

在本实施例中,标签栈的底层标签可以是vrf(virtualroutingforwarding,路由转发表)的业务标签。如果报文已经被转发到最后一段segment,也即是到达了转发路径的尾节点,则内层标签,即被弹出的栈顶标签的下一层标签为该vrf的业务标签。

实施例三

本实施例给出一个具体的应用实例。图3为根据本发明第三实施例的sr-mplsanycast场景下的故障修复方法的示意图。图4为根据本发明第三实施例的标签栈的变化示意图。

在本实施例中,设置设备acc1、p1、p2、agg1和agg2处于igpdomain1;设备agg1、agg2、p3、p4、core1和core2处于igpdomain2;设备core1、core2、core3和core4处于igpdomain3。其中,agg1、agg2、core1和core2为边缘设备。agg1和agg2处于同一网络,core1和core2处于同一网络。

在本实施例中,为不同设备配置不同的node-sid,并且为边缘设备配置anycast-sid。其中,为agg1和agg2配置anycast-sid为100,为core1和core2配置anycast-sid为101,为core1配置node-sid为40,为core3配置node-sid为60,其他设备的node-sid在此不做赘述。

下面以core2为例进行说明:

建立frr转发表:

core2在接收到core1通告的anycast-sid后,生成frr转发表。在该frr转发表中,主用设备为core2,core2的anycast-sid对应pop操作;备用设备为core1,core1的node-sid对应swap操作,将core2的anycast-sid交换成设备core1的node-sid40。

建立端到端业务:

在acc1使用anycast-sid建立acc1→core3的端到端业务,标签栈为[100101601000]。其中,100为agg1和agg2的anycast-sid,101为core1和core2的anycast-sid,60为core3的node-sid,1000为vpn业务对应的mpls标签。

报文转发过程:

假设报文转发路径为acc1→agg2→core2→core4→core3。如果core1→core2和core3→core4之间的链路同时发生故障,则不进行故障修复,core2将无法将报文转发至core3。

在本实施例中,在acc1处,读取报文中的标签栈为[100101601000],根据栈顶标签100,将报文转发给设备p2,设备p2在确定其node-sid未命中栈顶标签100之后,将该报文转发给agg2;agg2在确定其anycast-sid命中标签栈的栈顶标签100之后,弹出该栈顶标签100,此时报文中携带的标签栈为[101601000];agg2根据栈顶标签101,将报文转发给设备p4,设备p4在确定其node-sid未命中栈顶标签101之后,将报文转发给core2;core2在确定其anycast-sid命中栈顶标签101,并且查询到core1→core2和core3→core4之间的链路同时发生故障,如果设备core2弹出栈顶标签101,根据标签60,将无法将报文转发到core3,这样报文将中断转发。在本实施例中,core2根据frr转发表,将栈顶标签101与core1的node-sid交换,标签栈为[40601000],由于core1→core2之间的链路发生故障,core2将携带标签栈[40601000]的报文,沿core2→agg2→agg1→core1路径到达与core2具有相同anycast-sid的core1;core1确定其node-sid命中栈顶标签40,弹出该栈顶标签,标签栈为[601000],core1根据栈顶标签60,将报文转发给设备core3,完成报文转发。

在本实施例中,将anycast-sid与备用设备的node-sid交换,可以防止网络中多处故障导致备用设备也无法转发报文时造成的转发环路。例如:core2通过隧道技术将报文转发至core1,但是报文携带的标签栈的栈顶标签未进行标签交换,保持为core1和core2配置的anycast-sid不变,如果core1→core3之间的链路也发生故障,也会触发core1将报文重新转发回设备core2,引起报文环路。

实施例四

本实施例提供一种sr-mplsanycast场景下的故障修复设备。

如图5所示,为根据本发明第四实施例的sr-mplsanycast场景下的故障修复设备的结构图。

在本实施例中,sr-mplsanycast场景下的故障修复设备,包括但不限于:处理器510、存储器520。

处理器510用于执行存储器520中存储的sr-mplsanycast场景下的故障修复程序,以实现上述的sr-mplsanycast场景下的故障修复方法。

具体而言,所述处理器510用于执行存储器520中存储的sr-mplsanycast场景下的故障修复程序,以实现以下sr-mplsanycast场景下的故障修复方法的步骤:在所述边缘设备接收到报文之后,读取所述报文中携带的标签栈;在所述边缘设备的anycast-sid命中所述标签栈的栈顶标签时,根据所述标签栈的内层标签,查询所述报文对应的后续转发链路是否发生故障;如果所述报文对应的后续转发链路发生故障,则利用与所述边缘设备具有相同anycast-sid的备用设备,对所述报文执行快速重路由处理。

其中,根据所述标签栈的内层标签,查询所述报文对应的后续转发链路是否发生故障,包括:确定所述标签栈的栈顶标签的下一层标签;查询从所述边缘设备到所述下一层标签对应的节点设备的链路是否可达;如果从所述边缘设备到所述下一层标签对应的节点设备的链路不可达,则判定所述报文对应的后续转发链路发生故障。

其中,如果从所述边缘设备到所述下一层标签对应的节点设备的链路可达,则弹出所述标签栈的栈顶标签,并将所述报文转发给所述下一层标签对应的节点设备。

其中,利用与所述边缘设备具有相同anycast-sid的备用设备,对所述报文执行快速重路由处理,包括:获取与所述边缘设备具有相同anycast-sid的备用设备的设备节点段标识node-sid;将所述报文携带的标签栈的栈顶标签交换成所述备用设备的node-sid;将所述报文转发给所述备用设备,由所述备用设备继续转发所述报文。

其中,获取与所述边缘设备具有相同anycast-sid的备用设备的node-sid,包括:在预先建立的快速重路由转发表中,获取与所述边缘设备具有相同anycast-sid的备用设备的node-sid;其中,在所述快速重路由转发表中记录了所述备用设备的node-sid对应标签交换操作。

其中,在对所述报文执行快速重路由处理之前,还包括:接收所述边缘设备对应的保护设备通告的anycast-sid;在与所述边缘设备具有相同anycast-sid的保护设备中,选择其中一个保护设备作为所述边缘设备的备用设备。

其中,在与所述边缘设备具有相同anycast-sid的保护设备中,选择其中一个保护设备作为所述边缘设备的备用设备,包括:在与所述边缘设备具有相同anycast-sid的保护设备中,选择最短路径对应的保护设备作为所述边缘设备的备用设备。

其中,如果所述报文对应的后续转发链路未发生故障,则弹出所述标签栈的栈顶标签,并根据所述标签栈的内层标签转发所述报文。

实施例五

本发明实施例还提供了一种存储介质(计算机可读存储介质)。这里的存储介质存储有一个或者多个程序。其中,存储介质可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘;存储器还可以包括上述种类的存储器的组合。

当存储介质中一个或者多个程序可被一个或者多个处理器执行,以实现上述的sr-mplsanycast场景下的故障修复方法。

所述处理器用于执行存储器中存储的sr-mplsanycast场景下的故障修复程序,以实现以下sr-mplsanycast场景下的故障修复方法的步骤:在所述边缘设备接收到报文之后,读取所述报文中携带的标签栈;在所述边缘设备的anycast-sid命中所述标签栈的栈顶标签时,根据所述标签栈的内层标签,查询所述报文对应的后续转发链路是否发生故障;如果所述报文对应的后续转发链路发生故障,则利用与所述边缘设备具有相同anycast-sid的备用设备,对所述报文执行快速重路由处理。

其中,根据所述标签栈的内层标签,查询所述报文对应的后续转发链路是否发生故障,包括:确定所述标签栈的栈顶标签的下一层标签;查询从所述边缘设备到所述下一层标签对应的节点设备的链路是否可达;如果从所述边缘设备到所述下一层标签对应的节点设备的链路不可达,则判定所述报文对应的后续转发链路发生故障。

其中,如果从所述边缘设备到所述下一层标签对应的节点设备的链路可达,则弹出所述标签栈的栈顶标签,并将所述报文转发给所述下一层标签对应的节点设备。

其中,利用与所述边缘设备具有相同anycast-sid的备用设备,对所述报文执行快速重路由处理,包括:获取与所述边缘设备具有相同anycast-sid的备用设备的设备节点段标识node-sid;将所述报文携带的标签栈的栈顶标签交换成所述备用设备的node-sid;将所述报文转发给所述备用设备,由所述备用设备继续转发所述报文。

其中,获取与所述边缘设备具有相同anycast-sid的备用设备的node-sid,包括:在预先建立的快速重路由转发表中,获取与所述边缘设备具有相同anycast-sid的备用设备的node-sid;其中,在所述快速重路由转发表中记录了所述备用设备的node-sid对应标签交换操作。

其中,在对所述报文执行快速重路由处理之前,还包括:接收所述边缘设备对应的保护设备通告的anycast-sid;在与所述边缘设备具有相同anycast-sid的保护设备中,选择其中一个保护设备作为所述边缘设备的备用设备。

其中,在与所述边缘设备具有相同anycast-sid的保护设备中,选择其中一个保护设备作为所述边缘设备的备用设备,包括:在与所述边缘设备具有相同anycast-sid的保护设备中,选择最短路径对应的保护设备作为所述边缘设备的备用设备。

其中,如果所述报文对应的后续转发链路未发生故障,则弹出所述标签栈的栈顶标签,并根据所述标签栈的内层标签转发所述报文。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

尽管为示例目的,已经公开了本发明的优选实施例,本领域的技术人员将意识到各种改进、增加和取代也是可能的,因此,本发明的范围应当不限于上述实施例。

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