CN105763441B - 一种报文传输方法和装置 - Google Patents
一种报文传输方法和装置 Download PDFInfo
- Publication number
- CN105763441B CN105763441B CN201610060049.5A CN201610060049A CN105763441B CN 105763441 B CN105763441 B CN 105763441B CN 201610060049 A CN201610060049 A CN 201610060049A CN 105763441 B CN105763441 B CN 105763441B
- Authority
- CN
- China
- Prior art keywords
- flow table
- intermediate device
- forwarding path
- link
- label stack
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 230000009471 action Effects 0.000 claims description 31
- 230000005540 biological transmission Effects 0.000 claims description 16
- 230000000694 effects Effects 0.000 claims description 12
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 7
- 238000011084 recovery Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/22—Alternate routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种报文传输方法和装置,该方法包括:计算第一中间设备与第二中间设备之间的备路径;为所述备路径上的各设备生成第一流表,并为所述第一中间设备生成第二流表;当第一中间设备与第二中间设备之间的链路发生故障时,通知第一中间设备生效第二流表,第一中间设备利用所述第二流表在备路径上发送报文,各设备利用第一流表在备路径上发送报文。通过本发明的技术方案,加快了链路故障时的收敛速度,加快了链路故障时的切换时间。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种报文传输方法和装置。
背景技术
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为所述第一中间设备生成的第二流表的匹配选项为第一中间设备的标签栈,动作选项为去除报文最外层标签栈,封装所述各设备的标签栈,使用位于所述备路径上的出端口发送报文。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可进一步拆分成多个子模块。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
Claims (8)
1.一种报文传输方法,应用于包括源设备、目的设备、位于源设备与目的设备之间的中间设备、软件定义网络SDN控制器的系统中,所述源设备和所述目的设备均为网络设备,其特征在于,所述方法应用在所述SDN控制器上,所述方法包括以下步骤:
计算源设备与目的设备之间的主转发路径上的第一中间设备与第二中间设备之间的备路径,第一中间设备与第二中间设备相比,更靠近所述源设备;
为所述备路径上的位于所述第一中间设备与所述第二中间设备之间的各设备生成第一流表,并为所述第一中间设备生成第二流表;为所述各设备生成的第一流表的匹配选项为本设备的标签栈,动作选项为去除报文最外层标签栈,并使用位于所述备路径上的出端口发送报文;为所述第一中间设备生成的第二流表的匹配选项为第一中间设备的标签栈,动作选项为去除报文最外层标签栈,封装所述各设备的标签栈,使用位于所述备路径上的出端口发送报文;
当第一中间设备与第二中间设备在所述主转发路径上的链路发生故障时,通知第一中间设备生效第二流表,以使第一中间设备利用所述第二流表在所述备路径上发送报文,并使所述各设备利用第一流表在所述备路径上发送报文。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在为所述第一中间设备生成所述第二流表之后,且在所述第一中间设备与所述第二中间设备在所述主转发路径上的链路发生故障之前,将所述第二流表发送给所述第一中间设备,并通知所述第一中间设备无效所述第二流表;在所述第一中间设备与所述第二中间设备在所述主转发路径上的链路发生故障之后,通知所述第一中间设备生效所述第二流表;或者,
在所述第一中间设备与所述第二中间设备在所述主转发路径上的链路发生故障之后,将所述第二流表发送给所述第一中间设备,并通知所述第一中间设备生效所述第二流表。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在为所述备路径上的位于所述第一中间设备与所述第二中间设备之间的各设备生成第一流表之后,且在所述第一中间设备与所述第二中间设备在所述主转发路径上的链路发生故障之前,将所述第一流表发送给对应的设备;或者,
在所述第一中间设备与所述第二中间设备在所述主转发路径上的链路发生故障之后,将所述第一流表发送给对应的设备。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述第一中间设备与所述第二中间设备在所述主转发路径上的链路发生故障之后,通知所述第一中间设备无效第三流表;当所述第一中间设备与所述第二中间设备在所述主转发路径上的链路故障恢复时,通知所述第一中间设备生效所述第三流表、无效或删除所述第二流表;或者,
在所述第一中间设备与所述第二中间设备在所述主转发路径上的链路发生故障之后,通知所述第一中间设备删除第三流表;当所述第一中间设备与所述第二中间设备在所述主转发路径上的链路故障恢复时,则将所述SDN控制器存储的所述第三流表发送给所述第一中间设备,并通知所述第一中间设备生效所述第三流表、无效或删除所述第二流表;
所述第三流表用于使所述第一中间设备在所述主转发路径上发送报文。
5.一种报文传输装置,应用于包括源设备、目的设备、位于源设备与目的设备之间的中间设备、软件定义网络SDN控制器的系统中,所述源设备和所述目的设备均为网络设备,其特征在于,所述装置应用在所述SDN控制器上,且所述装置具体包括:
计算模块,用于计算所述源设备与所述目的设备之间的主转发路径上的第一中间设备与第二中间设备之间的备路径,其中,所述第一中间设备与所述第二中间设备相比,更靠近所述源设备;
生成模块,用于为所述备路径上的位于所述第一中间设备与所述第二中间设备之间的各设备生成第一流表,并为所述第一中间设备生成第二流表;所述生成模块为所述各设备生成的第一流表的匹配选项为本设备的标签栈,动作选项为去除报文最外层标签栈,并使用位于所述备路径上的出端口发送报文;所述生成模块为所述第一中间设备生成的第二流表的匹配选项为第一中间设备的标签栈,动作选项为去除报文最外层标签栈,封装所述各设备的标签栈,使用位于所述备路径上的出端口发送报文;
发送模块,用于当所述第一中间设备与所述第二中间设备在所述主转发路径上的链路发生故障时,通知所述第一中间设备生效所述第二流表,以使所述第一中间设备利用所述第二流表在所述备路径上发送报文,并使所述各设备利用所述第一流表在所述备路径上发送报文。
6.根据权利要求5所述的装置,其特征在于,
所述发送模块,还用于在为所述第一中间设备生成所述第二流表之后,且在所述第一中间设备与所述第二中间设备在所述主转发路径上的链路发生故障之前,将所述第二流表发送给所述第一中间设备,并通知所述第一中间设备无效所述第二流表;在所述第一中间设备与所述第二中间设备在所述主转发路径上的链路发生故障之后,通知所述第一中间设备生效所述第二流表;或者,
在所述第一中间设备与所述第二中间设备在所述主转发路径上的链路发生故障之后,将所述第二流表发送给所述第一中间设备,并通知所述第一中间设备生效所述第二流表。
7.根据权利要求5所述的装置,其特征在于,
所述发送模块,还用于在为所述备路径上的位于所述第一中间设备与所述第二中间设备之间的各设备生成第一流表之后,且在所述第一中间设备与所述第二中间设备在所述主转发路径上的链路发生故障之前,将所述第一流表发送给对应的设备;或者,在所述第一中间设备与所述第二中间设备在所述主转发路径上的链路发生故障之后,将所述第一流表发送给对应的设备。
8.根据权利要求5所述的装置,其特征在于,
所述发送模块,还用于在所述第一中间设备与所述第二中间设备在所述主转发路径上的链路发生故障之后,通知所述第一中间设备无效第三流表;当所述第一中间设备与所述第二中间设备在所述主转发路径上的链路故障恢复时,通知所述第一中间设备生效所述第三流表、无效或删除所述第二流表;或者,
在所述第一中间设备与所述第二中间设备在所述主转发路径上的链路发生故障之后,通知所述第一中间设备删除第三流表;当所述第一中间设备与所述第二中间设备在所述主转发路径上的链路故障恢复时,则将所述SDN控制器存储的所述第三流表发送给所述第一中间设备,并通知所述第一中间设备生效所述第三流表、无效或删除所述第二流表;
所述第三流表用于使所述第一中间设备在所述主转发路径上发送报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610060049.5A CN105763441B (zh) | 2016-01-28 | 2016-01-28 | 一种报文传输方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610060049.5A CN105763441B (zh) | 2016-01-28 | 2016-01-28 | 一种报文传输方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105763441A CN105763441A (zh) | 2016-07-13 |
CN105763441B true CN105763441B (zh) | 2019-09-06 |
Family
ID=56342657
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610060049.5A Active CN105763441B (zh) | 2016-01-28 | 2016-01-28 | 一种报文传输方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105763441B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109039681A (zh) * | 2017-06-09 | 2018-12-18 | 杭州达乎科技有限公司 | 基于sdn的路径优化方法、存储装置和网络设备 |
CN107547371A (zh) * | 2017-09-28 | 2018-01-05 | 新华三技术有限公司 | 一种报文转发方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103986651A (zh) * | 2014-05-30 | 2014-08-13 | 杭州华三通信技术有限公司 | 一种软件定义网络控制器及其控制方法 |
CN104301146A (zh) * | 2014-10-23 | 2015-01-21 | 杭州华三通信技术有限公司 | 软件定义网络中的链路切换方法和装置 |
CN104639435A (zh) * | 2015-02-16 | 2015-05-20 | 杭州华三通信技术有限公司 | Sdn中数据流转发方法及装置 |
-
2016
- 2016-01-28 CN CN201610060049.5A patent/CN105763441B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103986651A (zh) * | 2014-05-30 | 2014-08-13 | 杭州华三通信技术有限公司 | 一种软件定义网络控制器及其控制方法 |
CN104301146A (zh) * | 2014-10-23 | 2015-01-21 | 杭州华三通信技术有限公司 | 软件定义网络中的链路切换方法和装置 |
CN104639435A (zh) * | 2015-02-16 | 2015-05-20 | 杭州华三通信技术有限公司 | Sdn中数据流转发方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105763441A (zh) | 2016-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108337157B (zh) | 一种网络中传输报文的方法和节点 | |
US10148517B2 (en) | Systems and methods for topology discovery and application in a border gateway protocol based data center | |
US10250459B2 (en) | Bandwidth on-demand services in multiple layer networks | |
CN102025646B (zh) | 链路倒换方法及其装置 | |
CN1973486B (zh) | 在采用受保护链路的数据网络中避免微环的方法和装置 | |
US20020112072A1 (en) | System and method for fast-rerouting of data in a data communication network | |
CN106685903B (zh) | 基于sdn的数据传输方法、sdn控制器和sdn系统 | |
CN105763448B (zh) | 一种报文传输方法和装置 | |
EP3065350B1 (en) | Link discovery method, system and device | |
EP3355533B1 (en) | Path switching | |
WO2018095095A1 (zh) | 建立分离路径的方法和装置 | |
CN106559280A (zh) | 双向转发检测方法和装置 | |
WO2015184740A1 (zh) | 检测层次信息的处理方法及装置 | |
CN110535761A (zh) | 报文转发方法及装置 | |
KR102157711B1 (ko) | 통신 네트워크에서 장애 복구 방법 | |
CN111447095B (zh) | 双向转发检测切换方法、双向转发检测模块及边缘设备 | |
CN104427012B (zh) | 端口协商方法和设备 | |
KR20130032300A (ko) | 빠른 lsp 경보 메커니즘 | |
CN109873766A (zh) | 报文传输方法和装置 | |
CN107547369B (zh) | 流量切换方法及装置 | |
CN105763441B (zh) | 一种报文传输方法和装置 | |
WO2015154423A1 (zh) | 跨域业务处理方法、装置及系统 | |
US20150301571A1 (en) | Methods and apparatus for dynamic mapping of power outlets | |
JP2017536052A (ja) | タグ交換パス接続性の検出方法及び装置 | |
JP2009506592A (ja) | フォールトトレラントネットワーク上のノードを管理するための装置および方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant after: Xinhua three Technology Co., Ltd. Address before: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant before: Huasan Communication Technology Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |