一种报文传输方法和装置与流程

文档序号:18618670发布日期:2019-09-06 22:17阅读:161来源:国知局
一种报文传输方法和装置与流程

本发明涉及通信技术领域,尤其涉及一种报文传输方法和装置。



背景技术:

SDN(Software Defined Network,软件定义网络)是一种新型网络架构,其核心思想是分离网络设备的控制层面与转发层面,通过SDN控制器对网络流量进行集中和灵活控制,从而为核心网络及应用的创新提供良好的平台。

如图1所示,为在WAN(Wide Area Network,广域网)中部署SDN的组网示意图。由于MPLS(Multi-Protocol Label Switching,多协议标签交换)SR(Segment Routing,段路由)具有控制简单、收敛时间短等优势,因此,为了实现报文的传输过程,基于MPLS SR技术,SDN控制器可以向各设备下发标签栈,以通过标签栈控制各设备按照指定路径传输报文。



技术实现要素:

本发明提供一种报文传输方法,应用于包括源设备、目的设备、位于源设备与目的设备之间的中间设备、软件定义网络SDN控制器的系统中,所述方法应用在所述SDN控制器上,所述方法包括以下步骤:

计算源设备与目的设备之间的主转发路径上的第一中间设备与第二中间设备之间的备路径,第一中间设备与第二中间设备相比,更靠近所述源设备;

为所述备路径上的位于所述第一中间设备与所述第二中间设备之间的各设备生成第一流表,并为所述第一中间设备生成第二流表;

当第一中间设备与第二中间设备在所述主转发路径上的链路发生故障时,通知第一中间设备生效第二流表,以使第一中间设备利用所述第二流表在所述备路径上发送报文,并使所述各设备利用第一流表在所述备路径上发送报文。

本发明提供一种报文传输装置,应用于包括源设备、目的设备、位于源设备与目的设备之间的中间设备、软件定义网络SDN控制器的系统中,所述装置应用在所述SDN控制器上,且所述装置具体包括:

计算模块,用于计算所述源设备与所述目的设备之间的主转发路径上的第一中间设备与第二中间设备之间的备路径,其中,所述第一中间设备与所述第二中间设备相比,更靠近所述源设备;

生成模块,用于为所述备路径上的位于所述第一中间设备与所述第二中间设备之间的各设备生成第一流表,并为所述第一中间设备生成第二流表;

发送模块,用于当所述第一中间设备与所述第二中间设备在所述主转发路径上的链路发生故障时,通知所述第一中间设备生效所述第二流表,以使所述第一中间设备利用所述第二流表在所述备路径上发送报文,并使所述各设备利用所述第一流表在所述备路径上发送报文。

基于上述技术方案,本发明实施例中,当第一中间设备与第二中间设备在主转发路径上的链路发生故障时,只需要将第一中间设备对应的第二流表发送给第一中间设备,就可以使第一中间设备利用第二流表将报文发送到备路径上,且备路径上的各设备利用第一流表在备路径上发送报文。这样,当主转发路径上的链路发生故障时,除了需要将第一中间设备使用的流表由第三流表调整为第二流表之外,主转发路径上的其它设备的流表不需要调整,不会被撤销,从而加快了链路故障时的收敛速度,加快了链路故障时的切换时间。

附图说明

图1是在WAN中部署SDN的组网示意图;

图2是本发明一种实施方式中的报文传输方法的流程图;

图3是本发明一种实施方式中的SDN控制器的硬件结构图;

图4是本发明一种实施方式中的报文传输装置的结构图。

具体实施方式

在本申请使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

如图1所示,针对SDN控制器向各设备下发标签栈,以通过标签栈控制各设备按照指定路径传输报文的过程,在一种实现方式中,设备A在接收到报文时,利用报文的地址信息(如源IP地址、目的IP地址等)查询流表。针对同一地址信息的首个报文,该流表中没有匹配该地址信息的表项,针对同一地址信息的非首个报文,该流表中有匹配该地址信息的表项。

针对首个报文,无法查询到对应的流表,设备A会将报文发送给SDN控制器。SDN控制器在接收到该报文之后,计算该报文的转发路径,如主转发路径可以是设备A-->设备B-->设备C-->设备D-->设备E,备份转发路径可以是设备A-->设备B-->设备G-->设备H-->设备I-->设备D-->设备E。因此,SDN控制器向设备A下发主转发路径对应的流表,该流表的匹配选项为报文的地址信息,该流表的动作选项为在报文中依次封装设备E对应的标签栈1003,设备D对应的标签栈1002,设备C对应的标签栈1001,设备B对应的标签栈1000,并使用指定出端口A1发送报文。针对非首个报文,可以直接查询到对应的流表。基于该流表,设备A在接收到匹配该流表的报文时,会在该报文中依次封装标签栈1003,标签栈1002,标签栈1001,标签栈1000,并通过出端口A1发送报文。

SDN控制器还可以向设备B下发流表,该流表的匹配选项为设备B的标签栈1000,动作选项为去除报文最外层标签栈,并使用指定出端口B2发送报文。SDN控制器还可以向设备C下发流表,该流表的匹配选项为设备C的标签栈1001,动作选项为去除报文最外层标签栈,并使用指定出端口C2发送报文。SDN控制器还可以向设备D下发流表,该流表的匹配选项为设备D的标签栈1002,动作选项为去除报文最外层标签栈,并使用指定出端口D2发送报文。SDN控制器还可向设备E下发流表,该流表的匹配选项为设备E的标签栈1003,动作选项为去除报文最外层标签栈,对报文进行处理,即设备E对报文进行处理。

基于各设备上下发的流表,设备A通过出端口A1发送封装了标签栈1003,标签栈1002,标签栈1001,标签栈1000的报文,设备B通过标签栈1000查询到对应的流表,去除报文最外层标签栈1000,并通过出端口B2发送报文。设备C通过标签栈1001查询到对应的流表,去除报文最外层标签栈1001,并通过出端口C2发送报文。设备D通过标签栈1002查询到对应的流表,去除报文最外层标签栈1002,并通过出端口D2发送报文。设备E通过标签栈1003查询到对应的流表,去除报文最外层标签栈1003,利用报文的目的IP地址发送报文。

上述过程是基于主转发路径来传输报文。假设主转发路径发生故障,如设备B与设备C之间的链路发生故障,则SDN控制器计算报文的当前转发路径是备份转发路径(设备A-->设备B-->设备G-->设备H-->设备I-->设备D-->设备E)。这样,SDN控制器重新向设备A下发备份转发路径对应的流表,该流表的匹配选项为报文的地址信息,该流表的动作选项为在报文中依次封装设备E对应的标签栈2005,设备D对应的标签栈2004,设备I对应的标签栈2003,设备H对应的标签栈2002,设备G对应的标签栈2001,设备B对应的标签栈2000。针对非首个报文,可以直接查询到对应的流表。基于该流表,设备A在接收到匹配该流表的报文时,会在该报文中依次封装标签栈2005,标签栈2004,标签栈2003,标签栈2002,标签栈2001,标签栈2000,并通过出端口A1发送报文。

SDN控制器还可以向设备B下发流表,该流表的匹配选项为设备B的标签栈2000,动作选项为去除报文最外层标签栈,并使用指定出端口B3发送报文。SDN控制器还可以向设备G下发流表,该流表的匹配选项为设备G的标签栈2001,动作选项为去除报文最外层标签栈,并使用指定出端口G2发送报文。SDN控制器还可以向设备H下发流表,该流表的匹配选项为设备H的标签栈2002,动作选项为去除报文最外层标签栈,并使用指定出端口H2发送报文。SDN控制器还可以向设备I下发流表,该流表的匹配选项为设备I的标签栈2003,动作选项为去除报文最外层标签栈,并使用指定出端口I3发送报文。SDN控制器还可以向设备D下发流表,该流表的匹配选项为设备D的标签栈2004,动作选项为去除报文最外层标签栈,并使用指定出端口D2发送报文。SDN控制器还可向设备E下发流表,该流表的匹配选项为设备E的标签栈2005,动作选项为去除报文最外层标签栈,对报文进行处理,即设备E对报文进行处理。

基于各设备上下发的流表,设备A通过出端口A1发送封装了标签栈2005,标签栈2004,标签栈2003,标签栈2002,标签栈2001,标签栈2000的报文。设备B通过标签栈2000查询到对应的流表,去除报文最外层标签栈2000,并通过出端口B3发送报文。以此类推,设备G、设备H、设备I、设备D依次通过流表发送报文,并最终将报文发送给设备E,由设备E将报文发送给目的设备。

但是,在上述处理过程中,当设备B与设备C之间的链路发生故障之后,SDN控制器需要重新生成设备A、设备B、设备G、设备H、设备I、设备D、设备E分别对应的流表,并将各流表下发给对应的设备。由于重新生成流表的时间较长,因此,上述方式增加了链路故障时的收敛速度,并增加了链路故障时的切换时间。而且,当设备B与设备C之间的链路发生故障之后,SDN控制器是在撤销主转发路径上的所有设备的流表之后,重新向备份转发路径上的所有设备下发流表,进一步增加了链路故障时的收敛速度和切换时间。

针对上述发现,本发明实施例提出一种报文传输方法,该方法是基于段路由(即Segment Routing)的报文传输方法,且方法可以应用于包括源设备、目的设备、位于源设备与目的设备之间的中间设备、SDN控制器的系统中,所述中间设备的个数为两个或多个,且该报文传输方法可以应用在SDN控制器上。本发明实施例中的设备均可以为路由器、交换机等网络设备。以图1为本发明实施例的应用场景示意图,假设报文需要从设备A传输到设备E,则设备A作为源设备,设备E作为目的设备,而设备A与设备E之间的设备作为中间设备,如中间设备可以包括设备B、设备C、设备D、设备G、设备H、设备I等。

基于上述应用场景,SDN控制器首先计算源设备与目的设备之间的主转发路径,为该主转发路径上的各设备生成流表,并将该流表发送给对应的设备,以使主转发路径上的各设备利用该流表在主转发路径上发送报文。

其中,源设备对应的流表的匹配选项为报文的IP地址,动作选项为封装主转发路径上的各设备的标签栈,使用位于主转发路径上的出端口发送报文。源设备之外的其它设备对应的流表的匹配选项为本设备的标签栈,动作选项为去除报文最外层标签栈,使用位于主转发路径上的出端口发送报文。

如图1所示,主转发路径可以是设备A-->设备B-->设备C-->设备D-->设备E,SDN控制器向设备A下发的流表,匹配选项为报文的地址信息,动作选项为在报文中依次封装设备E对应的标签栈1003,设备D对应的标签栈1002,设备C对应的标签栈1001,设备B对应的标签栈1000,并使用指定出端口A1发送报文。SDN控制器向设备B下发的流表,匹配选项为设备B的标签栈1000,动作选项为去除报文最外层标签栈,并使用指定出端口B2发送报文。SDN控制器向设备C下发的流表,匹配选项为设备C的标签栈1001,动作选项为去除报文最外层标签栈,并使用指定出端口C2发送报文。SDN控制器向设备D下发的流表,匹配选项为设备D的标签栈1002,动作选项为去除报文最外层标签栈,并使用指定出端口D2发送报文。SDN控制器向设备E下发的流表,匹配选项为设备E的标签栈1003,动作选项为去除报文最外层标签栈。之后,设备E可以利用报文的目的IP地址对报文进行处理。

基于各设备上下发的流表,设备A通过出端口A1发送封装了标签栈1003,标签栈1002,标签栈1001,标签栈1000的报文,设备B通过标签栈1000查询到对应的流表,去除报文最外层标签栈1000,并通过出端口B2发送报文。设备C通过标签栈1001查询到对应的流表,去除报文最外层标签栈1001,并通过出端口C2发送报文。设备D通过标签栈1002查询到对应的流表,去除报文最外层标签栈1002,并通过出端口D2发送报文。设备E通过标签栈1003查询到对应的流表,去除报文最外层标签栈1003,利用报文的目的IP地址发送报文。

在上述过程的基础上,如图2所示,该方法具体可以包括以下步骤:

步骤201,计算源设备与目的设备之间的主转发路径上的第一中间设备与第二中间设备之间的备路径,第一中间设备与第二中间设备相比,更靠近源设备。

步骤202,为所述备路径上的位于所述第一中间设备与所述第二中间设备之间的各设备生成第一流表,并为所述第一中间设备生成第二流表。

其中,第一中间设备和第二中间设备均是位于源设备与目的设备之间的中间设备,且第一中间设备和第二中间设备是主转发路径上的两个设备,第一中间设备和第二中间设备可以是相邻的两个设备,也可以是不相邻的两个设备。

其中,第一中间设备与第二中间设备相比,第一中间设备更靠近源设备,第二中间设备更靠近目的设备。例如,针对设备B和设备C,设备B靠近源设备,设备C更靠近目的设备,第一中间设备为设备B,第二中间设备为设备C。

如图1所示,第一中间设备可以为设备B,第二中间设备可以为设备C,备路径为设备B-->设备G-->设备H-->设备C;为该备路径上的位于设备B与设备C之间的各设备(即设备G和设备H)生成第一流表,并为设备B生成第二流表。第一中间设备可以为设备C,第二中间设备可以为设备D,备路径为设备C-->设备H-->设备I-->设备D;为该备路径上的位于设备C与设备D之间的各设备(即设备H和设备I)生成第一流表,并为设备C生成第二流表。第一中间设备可以为设备B,第二中间设备可以为设备D,备路径为设备B-->设备G-->设备H-->设备I-->设备D;为该备路径上的位于设备B与设备D之间的各设备(即设备G、设备H和设备I)生成第一流表,并为设备B生成第二流表。

在后续过程中,各设备均是指备路径上的位于第一中间设备与第二中间设备之间的各设备,其是位于备路径上,且不包括第一中间设备与第二中间设备。

其中,SDN控制器为各设备生成的第一流表的匹配选项为本设备的标签栈,动作选项为去除报文最外层标签栈,并使用位于备路径上的出端口发送报文。SDN控制器为第一中间设备生成的第二流表的匹配选项为第一中间设备的标签栈,动作选项为去除报文最外层标签栈,封装备路径上的各设备的标签栈,使用位于备路径上的出端口发送报文。

如图1所示,备路径是设备B-->设备G-->设备H-->设备C,SDN控制器为设备B生成的第二流表,匹配选项为设备B的标签栈1000,动作选项为去除报文最外层标签栈,封装备路径上的设备B与设备C之间的各设备的标签栈,如封装设备G的标签栈3001和设备H的标签栈3002,使用位于备路径上的出端口(出端口B3)发送报文。SDN控制器为设备G生成的第一流表,匹配选项为设备G的标签栈3001,动作选项为去除报文最外层标签栈,使用指定出端口G2发送报文。SDN控制器为设备H生成的第一流表,匹配选项为设备H的标签栈3002,动作选项为去除报文最外层标签栈,使用指定出端口H3发送报文。

步骤203,当第一中间设备与第二中间设备在主转发路径上的链路发生故障时,通知第一中间设备生效第二流表,以使第一中间设备利用第二流表在备路径上发送报文,并使备路径上的各设备利用第一流表在备路径上发送报文。

本发明实施例中,在为第一中间设备生成第二流表之后,且在第一中间设备与第二中间设备在主转发路径上的链路发生故障之前,SDN控制器可以将第二流表发送给第一中间设备,并通知第一中间设备无效第二流表。在第一中间设备与第二中间设备在主转发路径上的链路发生故障之后,SDN控制器通知第一中间设备生效第二流表,使第一中间设备基于第二流表在备路径上发送报文。或者,在为第一中间设备生成第二流表之后,且在第一中间设备与第二中间设备在主转发路径上的链路发生故障之前,不将第二流表发送给第一中间设备,而是将第二流表保存在本地。在第一中间设备与第二中间设备在主转发路径上的链路发生故障之后,SDN控制器将第二流表发送给第一中间设备,并通知第一中间设备生效第二流表,使第一中间设备基于第二流表在备路径上发送报文。

本发明实施例中,在为备路径上的各设备生成第一流表之后,且在第一中间设备与第二中间设备在主转发路径上的链路发生故障之前,SDN控制器将第一流表发送给对应的设备。或者,在为备路径上的各设备生成第一流表之后,且在第一中间设备与第二中间设备在主转发路径上的链路发生故障之前,不将第一流表发送给对应的设备,而是将第一流表保存在本地,在第一中间设备与第二中间设备在主转发路径上的链路发生故障之后,将第一流表发送给对应的设备。基于此,各设备可以基于第一流表在备路径上发送报文。

本发明实施例中,当第一中间设备与第二中间设备在主转发路径上的链路发生故障时,SDN控制器还可以通知第一中间设备无效第三流表或者通知第一中间设备删除第三流表,该第三流表用于使第一中间设备在主转发路径上发送报文,这样,当第一中间设备接收到报文后,不会基于第三流表在主转发路径上发送报文,而是基于第二流表在备路径上发送报文。在上述应用场景下,SDN控制器向设备B下发的第三流表,匹配选项为设备B的标签栈1000,动作选项为去除报文最外层标签栈,并使用指定出端口B2发送报文。

经过上述处理,当第一中间设备与第二中间设备在主转发路径上的链路发生故障时,主转发路径上的各设备,只有第一中间设备的第三流表被替换为第二流表,其它设备的流表不变。而且在备路径上的各设备,被下发了第一流表。

基于各设备上下发的流表,设备A通过出端口A1发送封装了标签栈1003,标签栈1002,标签栈1001,标签栈1000的报文。设备B通过标签栈1000查询到对应的流表,去除报文最外层标签栈1000,封装设备G的标签栈3001和设备H的标签栈3002,并使用位于备路径上的出端口B3发送报文,该报文被封装了标签栈1003,标签栈1002,标签栈1001,标签栈3002和标签栈3001。设备G通过标签栈3001查询到对应的流表,去除报文最外层标签栈3001,并通过出端口G2发送报文。设备H通过标签栈3002查询到对应的流表,去除报文最外层标签栈3002,并通过出端口H3发送报文。设备C通过标签栈1001查询到对应的流表,去除报文最外层标签栈1001,并通过出端口C2发送报文。设备D通过标签栈1002查询到对应的流表,去除报文最外层标签栈1002,并通过出端口D2发送报文。设备E通过标签栈1003查询到对应的流表,去除报文最外层标签栈1003,利用报文的目的IP地址发送报文。

基于上述技术方案,本发明实施例中,当第一中间设备与第二中间设备在主转发路径上的链路发生故障时,只需要将第一中间设备对应的第二流表发送给第一中间设备,就可以使第一中间设备利用第二流表将报文发送到备路径上,且备路径上的各设备利用第一流表在备路径上发送报文。这样,当主转发路径上的链路发生故障时,除了需要将第一中间设备使用的流表由第三流表调整为第二流表之外,主转发路径上的其它设备的流表不需要调整,不会被撤销,从而加快了链路故障时的收敛速度,加快了链路故障时的切换时间。

本发明实施例中,当第一中间设备与第二中间设备在主转发路径上的链路故障恢复时,则通知第一中间设备生效第三流表、无效或删除第二流表。或者,当第一中间设备与第二中间设备在主转发路径上的链路故障恢复时,则将SDN控制器存储的第三流表发送给第一中间设备,并通知第一中间设备生效第三流表、无效或删除第二流表。

在一种情况下,当第一中间设备与第二中间设备在主转发路径上的链路发生故障时,如果通知第一中间设备无效第三流表,则说明第一中间设备上还存在无效的第三流表,因此,当第一中间设备与第二中间设备在主转发路径上的链路故障恢复时,只需要通知第一中间设备生效第三流表即可。

在另一种情况下,当第一中间设备与第二中间设备在主转发路径上的链路发生故障时,如果通知第一中间设备删除第三流表,则说明第一中间设备上不存在第三流表,SDN控制器需要在本地存储第一中间设备对应的第三流表,这样,当第一中间设备与第二中间设备在主转发路径上的链路故障恢复时,则需要将存储的第三流表发送给第一中间设备,并通知第一中间设备生效第三流表。

此外,当第一中间设备与第二中间设备在主转发路径上的链路故障恢复时,还需要通知第一中间设备无效或删除第二流表。在通知第一中间设备删除第二流表时,SDN控制器还可以在本地存储第一中间设备对应的二流表。在后续过程中,如果第一中间设备与第二中间设备在主转发路径上的链路又发生故障,则可以通知第一中间设备生效第二流表,或者,将第二流表发送给第一中间设备,并通知第一中间设备生效第二流表,参见上述流程,在此不再赘述。

经过上述处理,当第一中间设备与第二中间设备在主转发路径上的链路故障恢复时,主转发路径上的各设备,只有第一中间设备的第二流表被替换为第三流表,其它设备的流表不变。基于此,当第一中间设备与第二中间设备在主转发路径上的链路故障恢复时,只需要将第一中间设备对应的第三流表发送给第一中间设备,就可以使第一中间设备利用第三流表将报文发送到主转发路径上,且主转发路径上的各设备利用流表在主转发路径上发送报文。这样,当主转发路径上的链路故障恢复时,除了需要将第一中间设备使用的流表由第二流表调整为第三流表之外,主转发路径上的其它设备的流表不需要调整,不会被撤销,从而加快了链路故障时的收敛速度,加快了链路故障时的切换时间。

本发明实施例中,第一中间设备与第二中间设备在主转发路径上的链路发生故障的确定过程,具体可以包括但不限于如下方式:当收到来自第一中间设备的主转发路径上的第三端口DOWN的消息,并收到来自第二中间设备的主转发路径上的第四端口DOWN的消息,且第三端口和第四端口是第一中间设备与第二中间设备之间的互连端口时,则确定第一中间设备与第二中间设备在主转发路径上的链路发生故障。当然,在实际应用中,还可以通过其它方式确定链路发生故障,如通过BFD(Bidirectional Forwarding Detection,双向转发检测)检测到链路发生故障等,在此不再赘述。例如,当接收到来自设备B的端口B2已经DOWN的消息,并接收到来自设备C的端口C1已经DOWN的消息时,则确定设备B和设备C在主转发路径上的链路发生故障。

本发明实施例中,第一中间设备与第二中间设备在主转发路径上的链路故障恢复的确定过程,具体可以包括但不限于如下方式:当收到来自第一中间设备的主转发路径上的第一端口UP的消息,并收到来自第二中间设备的主转发路径上的第二端口UP的消息,且第一端口和第二端口是第一中间设备与第二中间设备之间的互连端口时,则确定第一中间设备与第二中间设备在主转发路径上的链路故障恢复。当然,在实际应用中,还可以通过其它方式确定链路故障恢复,如通过BFD检测到链路故障恢复等,在此不再赘述。例如,当接收到来自设备B的端口B2已经UP的消息,并接收到来自设备C的端口C1已经UP的消息时,则确定设备B和设备C在主转发路径上的链路已经故障恢复。

基于与上述方法同样的发明构思,本发明实施例还提供一种报文传输装置,可以应用于包括源设备、目的设备、位于源设备与目的设备之间的中间设备、软件定义网络SDN控制器的系统中,该报文传输装置应用在SDN控制器上。其中,该报文传输装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在的SDN控制器的处理器,读取非易失性存储器中对应的计算机程序指令形成的。从硬件层面而言,如图3所示,为本发明提出的报文传输装置所在的SDN控制器的一种硬件结构图,除了图3所示的处理器、非易失性存储器外,SDN控制器还可以包括其他硬件,如负责处理报文的转发芯片、网络接口、内存等;从硬件结构上来讲,该SDN控制器还可能是分布式设备,可能包括多个接口卡,以便在硬件层面进行报文处理的扩展。

如图4所示,为本发明提出的报文传输装置的结构图,该装置具体包括:

计算模块11,用于计算所述源设备与所述目的设备之间的主转发路径上的第一中间设备与第二中间设备之间的备路径,其中,所述第一中间设备与所述第二中间设备相比,更靠近所述源设备;

生成模块12,用于为所述备路径上的位于所述第一中间设备与所述第二中间设备之间的各设备生成第一流表,并为所述第一中间设备生成第二流表;

发送模块13,用于当所述第一中间设备与所述第二中间设备在所述主转发路径上的链路发生故障时,通知所述第一中间设备生效所述第二流表,以使所述第一中间设备利用所述第二流表在所述备路径上发送报文,并使所述各设备利用所述第一流表在所述备路径上发送报文。

所述发送模块13,还用于在为所述第一中间设备生成所述第二流表之后,且在所述第一中间设备与所述第二中间设备在所述主转发路径上的链路发生故障之前,将所述第二流表发送给所述第一中间设备,并通知所述第一中间设备无效所述第二流表;在所述第一中间设备与所述第二中间设备在所述主转发路径上的链路发生故障之后,通知所述第一中间设备生效所述第二流表;或者,

在所述第一中间设备与所述第二中间设备在所述主转发路径上的链路发生故障之后,将所述第二流表发送给所述第一中间设备,并通知所述第一中间设备生效所述第二流表。

所述发送模块13,还用于在为所述备路径上的位于所述第一中间设备与所述第二中间设备之间的各设备生成第一流表之后,且在所述第一中间设备与所述第二中间设备在所述主转发路径上的链路发生故障之前,将所述第一流表发送给对应的设备;或者,在所述第一中间设备与所述第二中间设备在所述主转发路径上的链路发生故障之后,将所述第一流表发送给对应的设备。

所述发送模块13,还用于在所述第一中间设备与所述第二中间设备在所述主转发路径上的链路发生故障之后,通知所述第一中间设备无效第三流表;当所述第一中间设备与所述第二中间设备在所述主转发路径上的链路故障恢复时,通知所述第一中间设备生效所述第三流表、无效或删除所述第二流表;或者,

在所述第一中间设备与所述第二中间设备在所述主转发路径上的链路发生故障之后,通知所述第一中间设备删除第三流表;当所述第一中间设备与所述第二中间设备在所述主转发路径上的链路故障恢复时,则将所述SDN控制器存储的所述第三流表发送给所述第一中间设备,并通知所述第一中间设备生效所述第三流表、无效或删除所述第二流表;

所述第三流表用于使所述第一中间设备在所述主转发路径上发送报文。

所述生成模块12为所述各设备生成的第一流表的匹配选项为本设备的标签栈,动作选项为去除报文最外层标签栈,并使用位于所述备路径上的出端口发送报文;所述生成模块12为所述第一中间设备生成的第二流表的匹配选项为第一中间设备的标签栈,动作选项为去除报文最外层标签栈,封装所述各设备的标签栈,使用位于所述备路径上的出端口发送报文。

其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。

本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可进一步拆分成多个子模块。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。

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