CN106302265B - 报文转发方法及装置 - Google Patents
报文转发方法及装置 Download PDFInfo
- Publication number
- CN106302265B CN106302265B CN201610585628.1A CN201610585628A CN106302265B CN 106302265 B CN106302265 B CN 106302265B CN 201610585628 A CN201610585628 A CN 201610585628A CN 106302265 B CN106302265 B CN 106302265B
- Authority
- CN
- China
- Prior art keywords
- flow entry
- lost contact
- faild
- module
- message
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
-
- 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/02—Topology update or discovery
-
- 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/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/354—Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种报文转发方法及装置,其中,该方法应用于SDN网络中的交换机,该方法包括:在接收到控制器发来的流表项下发消息之后,保存该流表项下发消息中携带的流表项,其中,该流表项中包含有失联标记,失联标记用于指示在交换机与控制器处于失联状态时,针对流表项或流表项中的执行动作的处理方式;在检测到本设备与控制器处于失联状态时,针对保存的每一个流表项,按照该流表项中包含的失联标记进行相应处理;在接收到用户报文之后,根据处理后的流表项对该用户报文进行转发。
Description
技术领域
本申请涉及网络通信技术领域,特别涉及一种报文转发方法及装置。
背景技术
OpenFlow(开放流)是SDN(Software Defined Network,软件定义网络)架构中定义的控制平面与转发平面之间的通信接口标准。OpenFlow的思想是分离控制平面和转发平面,转发平面采用基于流的方式进行转发。
如图1所示,OpenFlow网络由交换机(OpenFlow Switch)、控制器(OpenFlowController)、以及安全通道(Secure Channel)组成。其中,控制器是OpenFlow网络的控制中心,根据用户的配置或者动态运行的协议生成流表项发送到交换机;交换机保存接收到的流表项,根据流表项进行报文转发处理;安全通道是在控制器与交换机之间通过预先配置的连接通道。
在控制器与交换机处于关联状态的情况下,两者之间的安全通道正常,此时,控制器可以向交换机发送流表项,但是,一旦控制器与交换机处于失联状态,两者之间的安全通道断开,控制器无法再向交换机发送流表项,此时,在现有技术中,交换机主要采用以下两种模式来进行报文转发处理:
Failed secure mode(失联保护模式):交换机已经保存的流表项进行报文转发处理;
Failed standalong mode(失联屏蔽模式):交换机不再根据流表项进行报文转发处理,而是采用传统方式转发,例如,根据MAC地址表进行二层转发,或者根据路由表进行三层转发等。
但是,当采用Failed secure mode时,交换机无法对网络中的新增数据流进行报文转发处理,可能导致新增数据流的丢弃;当采用Failed standalong mode时,交换机对所有数据流都按照传统方式转发,存在不安全的问题。
发明内容
有鉴于此,本申请提供一种报文转发方法及装置。
具体地,本申请是通过如下技术方案实现的:
一方面,提供了一种报文转发方法,该方法应用于SDN网络中的交换机,该方法包括:
在接收到控制器发来的流表项下发消息之后,保存该流表项下发消息中携带的流表项,其中,该流表项中包含有失联标记,失联标记用于指示在交换机与控制器处于失联状态时,针对流表项或流表项中的执行动作的处理方式;
在检测到本设备与控制器处于失联状态时,针对保存的每一个流表项,按照该流表项中包含的失联标记进行相应处理;
在接收到用户报文之后,根据处理后的流表项对该用户报文进行转发。
另一方面,还提供了一种报文转发装置,该装置应用于SDN网络中的交换机中,该装置包括:
接收模块,用于接收控制器发来的流表项下发消息;还用于接收用户报文;
保存模块,用于在接收模块接收到控制器发来的流表项下发消息之后,保存该流表项下发消息中携带的流表项,其中,该流表项中包含有失联标记,失联标记用于指示在交换机与控制器处于失联状态时,针对流表项或流表项中的执行动作的处理方式;
检测模块,用于检测本设备与控制器之间的状态;
流表项处理模块,用于在检测模块检测到本设备与控制器处于失联状态时,针对所述保存模块中保存的每一个流表项,按照该流表项中包含的失联标记进行相应处理;
转发模块,用于在接收模块接收到用户报文之后,根据处理后的流表项对该用户报文进行转发。
通过本申请的以上技术方案,扩展出了失联标记,失联标记用于指示在交换机与控制器处于失联状态时,针对流表项或流表项中的执行动作的处理方式;交换机在接收到控制器发来的流表项下发消息之后,保存该流表项下发消息中携带的包含有失联标记的流表项,之后,在检测到本设备与控制器处于失联状态时,交换机会针对保存的每一个流表项,按照该流表项中包含的失联标记进行相应处理,从而,在接收到用户报文之后,根据处理后的流表项对该用户报文进行转发。在该方法中,交换机在检测到与控制器失联后,会自动的按照现有的流表项中包含的失联标记,对该流表项进行相应处理,从而,失联后接收到的用户报文可以根据处理后的流表项进行转发,不仅能够对网络中的新增数据流进行报文转发处理,而且保持了网络的安全性,提高了与控制器失联的交换机转发数据流的能力。
附图说明
图1是Openflow网络的架构示意图;
图2是本申请一示例性实施例示出的报文转发方法的流程图;
图3是本申请一示例性实施例示出的新增了失联标记的用于携带执行动作的TLV的格式示意图;
图4是本申请一示例性实施例示出的一种实际的SDN网络的结构示意图;
图5是本申请一示例性实施例示出的SDN网络中的交换机的硬件结构示意图;
图6是本申请一示例性实施例示出的报文转发装置的一种结构示意图;
图7是本申请一示例性实施例示出的报文转发装置的另一种结构示意图;
图8是本申请一示例性实施例示出的报文转发装置的又一种结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了解决现有技术中存在的当采用Failed secure mode时,会导致新增数据流被丢弃的问题,当采用Failed standalong mode时,会导致网络不安全的问题,本申请以下实施例中提供了一种报文转发方法,以及一种可以应用该方法的报文转发装置。
本申请以下实施例中,以SDN网络采用Openflow协议为例进行说明,但不限于SDN网络所采用的具体协议类型。
在Openflow协议中,流表项中主要包括:匹配规则(match rule)和执行动作(action),其中:
匹配规则:流表项中包含1个或多个匹配规则,具体可以包括:进入接口,Ethernet(以太网)源地址、Ethernet目标地址、类型、VLAN(Virtual Local Area Network,虚拟局域网)ID(标识)、VLAN优先级、IP源地址、IP目标地址、协议、IP ToS(Type of Service,服务类型)位、TCP(Transmission Control Protocol,传输控制协议)/UDP(User DatagramProtocol,用户数据报协议)目标端口、以及TCP/UDP源端口等中的一个或多个的组合。每一个匹配规则的值可以是一个确定值或者任意值(any),更准确的匹配可以通过掩码实现。
执行动作:流表项中包含0个或者至少一个执行动作,如果流表项中没有执行动作,则默认为丢弃;如果流表项中包含有多个执行动作,则这多个执行动作需要依照优先级顺序依次执行。
在本申请实施例中,新增了一种Failed smart mode(失联智能保护模式),在该模式下,定义了三种失联标记,分别为:NORMAL、FAILD_ADD、FAILD_INSTEAD,其中:
NORMAL用于指示在交换机与控制器处于失联状态时,对应的流表项或流表项中的执行动作保持不变;即,在控制器与交换机处于关联状态和失联状态时,对应的流表项或流表项中的执行动作均会用于指导用户报文的转发;
FAILD_ADD用于指示在交换机与控制器处于失联状态时,新增对应的流表项或流表项中的执行动作;即,在控制器与交换机处于关联状态时,对应的流表项或流表项中的执行动作不会用于指导用户报文的转发,而在处于失联状态时,对应的流表项或流表项中的执行动作才会用于指导用户报文的转发;
FAILD_INSTEAD用于指示在交换机与控制器处于失联状态时,将流表项中的不带有FAILD_INSTEAD的执行动作(为了描述方便,称为第一执行动作),替换为带有FAILD_INSTEAD的执行动作(为了描述方便,称为第二执行动作),其中,第一执行动作与第二执行动作的动作类型相同;即,在控制器与交换机处于关联状态时,第一执行动作用于指导用户报文的转发,而在处于失联状态时,第二执行动作用于指导用户报文的转发。
在此基础上,如图2所示,SDN网络中的任一交换机需要执行的报文转发方法包括以下步骤:
步骤S101,在接收到控制器发来的流表项下发消息之后,保存该流表项下发消息中携带的流表项,其中,该流表项中包含有失联标记,该失联标记用于指示在交换机与控制器处于失联状态时,针对该流表项或该流表项中的执行动作的处理方式;
在SDN网络中,控制器可以通过flowmod消息向交换机发送流表项,其中的流表项可以是首次下发的流表项或者是需要更新的流表项。因此,在实际实施过程中,上述流表项下发消息具体可以是flowmod消息。在接收到流表项下发消息之后,可以将该流表项下发消息中携带的流表项保存在内存或缓存中。
步骤S102,在检测到本设备与控制器处于失联状态时,针对每一个流表项,按照该流表项中包含的失联标记进行相应处理;
上述的NORMAL、FAILD_ADD、以及FAILD_INSTEAD可以按照以下方式一或方式二起作用:
方式一、NORMAL和FAILD_ADD针对整个流表项起作用
此时,在步骤S101中,控制器发来的流表项下发消息中携带有流表项的匹配规则和执行动作、以及对应于该流表项的失联标记,在实际实施过程中,可以在流表项下发消息中新增一个flag(标记),当该flag的值设置为第一值时,用于表示失联标记为NORMAL,当该flag的值设置为第二值时,用于表示失联标记为FAILD_ADD。交换机接收到该流表项下发消息之后,保存该流表项的匹配规则和执行动作、以及该失联标记;若该流表项中包含的失联标记为NORMAL,则将该流表项配置到转发模块(例如,转发芯片)中用于指导用户报文的转发;若该流表项中包含的失联标记为FAILD_ADD,则不会将该流表项配置到转发模块中。后续,在步骤S102中,在检测到本设备与控制器处于失联状态时,针对保存的每一个流表项,若该流表项中包含的失联标记为FAILD_ADD,则将该流表项配置到转发模块中用于指导用户报文的转发。
后续,在检测到本设备与控制器恢复为关联状态时,交换机还会针对保存的每一个流表项,若该流表项中包含的失联标记为FAILD_ADD,则从转发模块中删除该流表项。
方式二、NORMAL、FAILD_ADD和FAILD_INSTEAD针对流表项中的执行动作起作用
此时,在步骤S101中,控制器发来的流表项下发消息中携带有流表项的匹配规则和带有失联标记的执行动作,在实际实施过程中,由于流表项的执行动作通过TLV(TypeLength Value,类型长度值)来携带,因此,如图3所示,可以在TLV中增加一个flag来携带执行动作带有的失联标记,其中,当该flag的值设置为第一值时,用于表示该执行动作带有的失联标记为NORMAL,当该flag的值设置为第二值时,用于表示该执行动作带有的失联标记为FAILD_ADD,当该flag的值设置为第三值时,用于表示该执行动作带有的失联标记为FAILD_INSTEAD。
交换机接收到该流表项下发消息之后,保存该流表项的匹配规则和带有该失联标记的执行动作;若该流表项中的任一执行动作带有的失联标记为NORMAL,则将包含有该执行动作的该流表项配置到转发模块中用于指导用户报文的转发;若该流表项中的任一执行动作带有的失联标记为FAILD_ADD或FAILD_INSTEAD,则将不包含有该执行动作的该流表项配置到转发模块中用于指导用户报文的转发。后续,在步骤S102中,在检测到本设备与控制器处于失联状态时,针对保存的每一个流表项,若该流表项中的任一执行动作带有的失联标记为FAILD_ADD,则将该执行动作添加到转发模块中的该流表项中;若该流表项中存在带有FAILD_INSTEAD的第二执行动作,则将转发模块中的该流表项中的第一执行动作替换为第二执行动作,其中,第一执行动作不带有FAILD_INSTEAD并且与第二执行动作的动作类型相同。
后续,在检测到本设备与控制器恢复为关联状态时,交换机还会针对保存的每一个流表项,若该流表项中的任一执行动作带有的失联标记为FAILD_ADD,则从转发模块中的该流表项中删除该执行动作;若该流表项中存在带有FAILD_INSTEAD的第二执行动作,则将转发模块中的该流表项中的第二执行动作替换为第一执行动作。
步骤S103,在接收到用户报文之后,根据处理后的流表项对该用户报文进行转发。
具体的,在步骤S103中,转发模块将接收到的用户报文与转发模块中的各个流表项进行匹配,若命中任一流表项,则按照命中的流表项,对该用户报文进行转发。
本申请上述实施例的方法中扩展出了失联标记,失联标记用于指示在交换机与控制器处于失联状态时,针对流表项或流表项中的执行动作的处理方式;交换机在接收到控制器发来的流表项下发消息之后,保存该流表项下发消息中携带的包含有失联标记的流表项,之后,在检测到本设备与控制器处于失联状态时,交换机会针对保存的每一个流表项,按照该流表项中包含的失联标记进行相应处理,从而,在接收到用户报文之后,根据处理后的流表项对该用户报文进行转发。在该方法中,交换机在检测到与控制器失联后,会自动的按照现有的流表项中包含的失联标记,对该流表项进行相应处理,从而,失联后接收到的用户报文可以根据处理后的流表项进行转发,不仅能够对网络中的新增数据流进行报文转发处理,而且保持了网络的安全性,提高了与控制器失联的交换机转发数据流的能力。
下面以实际的例子详细说明上述实施例中的方法。
在图4所示的SDN网络中,交换机通过端口port2连接防火墙FW1,通过端口port3连接防火墙FW2,通过port4连接防火墙FW3。
首先,控制器向交换机下发一条如表1第2行所示的默认流表项,用于指示交换机从port1上接收到的来自用户终端的首个HTTP(HyperText Transfer Protocol,超文本传输协议)报文都要上送给控制器,由控制器决定哪个用户终端发出的HTTP报文需要转发给哪个FW进行处理,从而实现HTTP数据流的负载分担。交换机接收到该默认流表项之后,保存该默认流表项,由于该默认流表项中的出端口为port2的执行动作带有FAILD_INSTEAD、降低报文优先级的执行动作带有FAILD_ADD,因此,在将该默认流表项配置到转发芯片中用于指导HTTP报文的转发时,不会配置出端口为port2的执行动作和降低报文优先级的执行动作,而只会配置出端口为控制器的执行动作,转发芯片中的默认流表项如表2-1第2行所示。
后续,控制器在接收到交换机上送的源IP地址为10.1.1.1/24的HTTP报文后,向交换机下发如表1第3行所示的流表项,交换机接收到该流表项后,保存该流表项,由于该流表项对应的失联标记为NORMAL,则将该流表项配置到转发芯片中用于指导HTTP报文的转发,转发芯片中的对应流表项如表2-1第3行所示;控制器在接收到交换机上送的源IP地址为10.2.1.1/24的HTTP报文后,向交换机下发如表1第4行所示的流表项,交换机接收到该流表项后,保存该流表项,由于该流表项对应的失联标记为NORMAL,则将该流表项配置到转发芯片中,用于指导HTTP报文的转发,转发芯片中的对应流表项如表2-1第4行所示;控制器在接收到交换机上送的源IP地址为10.3.1.1/24的HTTP报文后,向交换机下发如表1第5行所示的流表项,交换机接收到该流表项后,保存该流表项,由于该流表项对应的失联标记为NORMAL,则将该流表项配置到转发芯片中,用于指导HTTP报文的转发,转发芯片中的对应流表项如表2-1第5行所示。
表1
表2-1
当检测到交换机与控制器处于失联状态时,交换机针对表1中的每一条流表项,根据该流表项中包含的失联标记进行相应处理,具体的,针对如表1第2行所示的默认流表项,由于出端口为port2的执行动作带有FAILD_INSTEAD,因此,需要将转发芯片中如表2-1第2行所示的默认流表项中的出端口为控制器的执行动作,替换为出端口为port2的执行动作,由于降低报文优先级的执行动作带有FAILD_ADD,因此,将降低报文优先级的执行动作增加到如表2-1第2行所示的默认流表项中,此时,转发芯片中的如表2-1所示的默认流表项更新为如表2-2第2行所示;针对如表1第3~5行所示的流表项,由于流表项对应的失联标记为NORMAL,则不需要对转发芯片中的对应流表项进行处理。
在交换机与控制器处于失联状态下,从port1上接收到的新用户终端发来的HTTP报文会命中如表2-2第2行所示的默认流表项,从而,按照降低报文优先级的执行动作,降低该HTTP报文的优先级,从而,将该HTTP报文存放到较低优先级的队列中,并最终从port2转发给FW1进行处理,这样,新用户终端发来的HTTP报文也可以按照流表项进行转发处理。其中,降低报文优先级的执行动作,可以减少新增数据流对已有数据流的影响。
后续,当检测到交换机与控制器恢复为关联状态时,交换机针对表1中的每一条流表项,根据该流表项中包含的失联标记进行相应处理,具体的,针对如表1第2行所示的默认流表项,由于出端口为port2的执行动作带有FAILD_INSTEAD,因此,需要将转发芯片中如表2-2第2行所示的默认流表项中的出端口为port2的执行动作,替换为出端口为控制器的执行动作,由于降低报文优先级的执行动作带有FAILD_ADD,因此,删除如表2-2第2行所示的默认流表项中的降低报文优先级的执行动作,此时,转发芯片中的如表2-2所示的默认流表项更新为如表2-1第2行所示;针对如表1第3~5行所示的流表项,由于流表项对应的失联标记为NORMAL,则不需要对转发芯片中的对应流表项进行处理。
在交换机与控制器恢复关联状态后,从port1上接收到的新用户终端发来的HTTP报文会命中如表2-2第2行所示的默认流表项,从而,控制器可以重新控制HTTP报文的转发。
表2-2
与前述报文转发方法的实施例相对应,本申请还提供了报文转发装置的实施例。
本申请报文转发装置60的实施例可以应用在SDN网络中的交换机上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在交换机的处理器10将非易失性存储器50中对应的计算机程序指令读取到内存40中运行形成的。从硬件层面而言,如图5所示,为本申请报文转发装置60所在交换机的一种硬件结构图,除了图5所示的处理器10、内部总线20、网络接口30、内存40、以及非易失性存储器50之外,实施例中装置所在的交换机通常根据该交换机的实际功能,还可以包括其他硬件,对此不再赘述。
请参考图6,本申请实施例的报文转发装置中包括以下模块:接收模块401、保存模块402、检测模块403、流表项处理模块404和转发模块405,其中:
接收模块401,用于接收控制器发来的流表项下发消息;还用于接收用户报文;
保存模块402,用于在接收模块401接收到控制器发来的流表项下发消息之后,保存该流表项下发消息中携带的流表项,其中,该流表项中包含有失联标记,失联标记用于指示在交换机与控制器处于失联状态时,针对流表项或流表项中的执行动作的处理方式;
检测模块403,用于检测本设备与控制器之间的状态;
流表项处理模块404,用于在检测模块403检测到本设备与控制器处于失联状态时,针对保存模块402中保存的每一个流表项,按照该流表项中包含的失联标记进行相应处理;
转发模块405,用于在接收模块401接收到用户报文之后,根据处理后的流表项对该用户报文进行转发。
其中,失联标记包括以下至少之一:NORMAL、FAILD_ADD、FAILD_INSTEAD,其中:
NORMAL用于指示在交换机与控制器处于失联状态时,对应的流表项或流表项中的执行动作保持不变;
FAILD_ADD用于指示在交换机与控制器处于失联状态时,新增对应的流表项或流表项中的执行动作;
FAILD_INSTEAD用于指示在交换机与控制器处于失联状态时,将流表项中不带有FAILD_INSTEAD的第一执行动作,替换为带有FAILD_INSTEAD的第二执行动作,其中,第一执行动作与第二执行动作的动作类型相同。
其中,当失联标记为NORMAL或FAILD_ADD时,流表项中包含有匹配规则、执行动作、以及失联标记;如图7所示,上述报文转发装置中还包括:配置模块406,其中:
配置模块406,用于在保存模块402保存流表项下发消息中携带的流表项之后,若该流表项中包含的失联标记为NORMAL,则将该流表项配置到转发模块405中用于指导用户报文的转发;
流表项处理模块404具体用于:针对保存模块402中保存的每一个流表项,若该流表项中包含的失联标记为FAILD_ADD,则将该流表项配置到转发模块405中用于指导用户报文的转发。
如图7所示,上述报文转发装置中还包括:删除模块407,用于在检测模块403检测到本设备与控制器恢复为关联状态时,针对保存模块402中保存的每一个流表项,若该流表项中包含的失联标记为FAILD_ADD,则从转发模块405中删除该流表项。
另外,当失联标记为NORMAL、FAILD_ADD、FAILD_INSTEAD中的任意一个时,流表项中包含有匹配规则和带有失联标记的执行动作;如图8所示,上述报文转发装置中还包括:配置模块406,其中:
配置模块406,还用于在保存模块402保存流表项下发消息中携带的流表项之后,若该流表项中的任一执行动作带有的失联标记为NORMAL,则将包含有该执行动作的该流表项配置到转发模块405中用于指导用户报文的转发;若该流表项中的任一执行动作带有的失联标记为FAILD_ADD或FAILD_INSTEAD,则将不包含有该执行动作的该流表项配置到转发模块405中用于指导用户报文的转发;
流表项处理模块404具体用于:针对保存模块402中保存的每一个流表项,若该流表项中的任一执行动作带有的失联标记为FAILD_ADD,则将该执行动作添加到转发模块405中的该流表项中;若该流表项中存在带有FAILD_INSTEAD的第二执行动作,则将转发模块405中的该流表项中的第一执行动作替换为第二执行动作。
此时,如图8所示,上述报文转发装置中还包括:删除模块407和替换模块408,其中:
删除模块407,用于在检测模块403检测到本设备与控制器恢复为关联状态时,针对保存模块402中保存的每一个流表项,若该流表项中的任一执行动作带有的失联标记为FAILD_ADD,则从转发模块405中的该流表项中删除该执行动作;
替换模块408,用于在检测模块403检测到本设备与控制器恢复为关联状态时,针对保存模块402中保存的每一个流表项,若该流表项中存在带有FAILD_INSTEAD的第二执行动作,则将转发模块405中的该流表项中的第二执行动作替换为第一执行动作。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (12)
1.一种报文转发方法,其特征在于,所述方法应用于软件定义网络SDN网络中的交换机,所述方法包括:
在接收到控制器发来的流表项下发消息之后,保存所述流表项下发消息中携带的流表项,其中,所述流表项中包含有失联标记,所述失联标记用于指示在交换机与控制器处于失联状态时,针对所述流表项或所述流表项中的执行动作的处理方式;
在检测到本设备与所述控制器处于失联状态时,针对保存的每一个流表项,按照该流表项中包含的失联标记进行相应处理;
在接收到用户报文之后,根据处理后的流表项对所述用户报文进行转发。
2.根据权利要求1所述的方法,其特征在于,所述失联标记包括以下至少之一:NORMAL、FAILD_ADD、FAILD_INSTEAD,其中:
所述NORMAL用于指示在交换机与控制器处于失联状态时,对应的流表项或流表项中的执行动作保持不变;
所述FAILD_ADD用于指示在交换机与控制器处于失联状态时,新增对应的流表项或流表项中的执行动作;
所述FAILD_INSTEAD用于指示在交换机与控制器处于失联状态时,将流表项中不带有所述FAILD_INSTEAD的第一执行动作,替换为带有所述FAILD_INSTEAD的第二执行动作,其中,所述第一执行动作与所述第二执行动作的动作类型相同。
3.根据权利要求2所述的方法,其特征在于,当所述失联标记为所述NORMAL或所述FAILD_ADD时,所述流表项中包含有匹配规则、执行动作、以及所述失联标记;
在保存所述流表项下发消息中携带的流表项之后,还包括:若所述流表项中包含的失联标记为所述NORMAL,则将所述流表项配置到转发模块中用于指导用户报文的转发;
按照该流表项中包含的失联标记进行相应处理,包括:若该流表项中包含的失联标记为所述FAILD_ADD,则将该流表项配置到所述转发模块中用于指导用户报文的转发。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在检测到本设备与所述控制器恢复为关联状态时,针对保存的每一个流表项,若该流表项中包含的失联标记为所述FAILD_ADD,则从所述转发模块中删除该流表项。
5.根据权利要求2所述的方法,其特征在于,当所述失联标记为所述NORMAL、所述FAILD_ADD、所述FAILD_INSTEAD中的任意一个时,所述流表项中包含有匹配规则和带有所述失联标记的执行动作;
在保存所述流表项下发消息中携带的流表项之后,还包括:若所述流表项中的任一执行动作带有的失联标记为所述NORMAL,则将包含有该执行动作的该流表项配置到转发模块中用于指导用户报文的转发;若所述流表项中的任一执行动作带有的失联标记为所述FAILD_ADD或所述FAILD_INSTEAD,则将不包含有该执行动作的该流表项配置到所述转发模块中用于指导用户报文的转发;
按照该流表项中包含的失联标记进行相应处理,包括:若该流表项中的任一执行动作带有的失联标记为所述FAILD_ADD,则将该执行动作添加到所述转发模块中的该流表项中;若该流表项中存在带有所述FAILD_INSTEAD的所述第二执行动作,则将所述转发模块中的该流表项中的所述第一执行动作替换为所述第二执行动作。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在检测到本设备与所述控制器恢复为关联状态时,针对保存的每一个流表项,若该流表项中的任一执行动作带有的失联标记为所述FAILD_ADD,则从所述转发模块中的该流表项中删除该执行动作;若该流表项中存在带有所述FAILD_INSTEAD的所述第二执行动作,则将所述转发模块中的该流表项中的所述第二执行动作替换为所述第一执行动作。
7.一种报文转发装置,其特征在于,所述装置应用于软件定义SDN网络中的交换机中,所述装置包括:
接收模块,用于接收控制器发来的流表项下发消息;还用于接收用户报文;
保存模块,用于在所述接收模块接收到所述控制器发来的流表项下发消息之后,保存所述流表项下发消息中携带的流表项,其中,所述流表项中包含有失联标记,所述失联标记用于指示在交换机与控制器处于失联状态时,针对所述流表项或流表项中的执行动作的处理方式;
检测模块,用于检测本设备与所述控制器之间的状态;
流表项处理模块,用于在所述检测模块检测到本设备与所述控制器处于失联状态时,针对所述保存模块中保存的每一个流表项,按照该流表项中包含的失联标记进行相应处理;
转发模块,用于在所述接收模块接收到用户报文之后,根据处理后的流表项对所述用户报文进行转发。
8.根据权利要求7所述的装置,其特征在于,所述失联标记包括以下至少之一:NORMAL、FAILD_ADD、FAILD_INSTEAD,其中:
所述NORMAL用于指示在交换机与控制器处于失联状态时,对应的流表项或流表项中的执行动作保持不变;
所述FAILD_ADD用于指示在交换机与控制器处于失联状态时,新增对应的流表项或流表项中的执行动作;
所述FAILD_INSTEAD用于指示在交换机与控制器处于失联状态时,将流表项中不带有所述FAILD_INSTEAD的第一执行动作,替换为带有所述FAILD_INSTEAD的第二执行动作,其中,所述第一执行动作与所述第二执行动作的动作类型相同。
9.根据权利要求8所述的装置,其特征在于,当所述失联标记为所述NORMAL或所述FAILD_ADD时,所述流表项中包含有匹配规则、执行动作、以及所述失联标记;所述装置还包括:配置模块,其中:
所述配置模块,用于在所述保存模块保存所述流表项下发消息中携带的流表项之后,若所述流表项中包含的失联标记为所述NORMAL,则将所述流表项配置到所述转发模块中用于指导用户报文的转发;
所述流表项处理模块具体用于:针对所述保存模块中保存的每一个流表项,若该流表项中包含的失联标记为所述FAILD_ADD,则将该流表项配置到所述转发模块中用于指导用户报文的转发。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
删除模块,用于在所述检测模块检测到本设备与所述控制器恢复为关联状态时,针对所述保存模块中保存的每一个流表项,若该流表项中包含的失联标记为所述FAILD_ADD,则从所述转发模块中删除该流表项。
11.根据权利要求8所述的装置,其特征在于,当所述失联标记为所述NORMAL、所述FAILD_ADD、所述FAILD_INSTEAD中的任意一个时,所述流表项中包含有匹配规则和带有所述失联标记的执行动作;所述装置还包括:配置模块,其中:
所述配置模块,还用于在所述保存模块保存所述流表项下发消息中携带的流表项之后,若所述流表项中的任一执行动作带有的失联标记为所述NORMAL,则将包含有该执行动作的该流表项配置到所述转发模块中用于指导用户报文的转发;若所述流表项中的任一执行动作带有的失联标记为所述FAILD_ADD或所述FAILD_INSTEAD,则将不包含有该执行动作的该流表项配置到所述转发模块中用于指导用户报文的转发;
所述流表项处理模块具体用于:针对所述保存模块中保存的每一个流表项,若该流表项中的任一执行动作带有的失联标记为所述FAILD_ADD,则将该执行动作添加到所述转发模块中的该流表项中;若该流表项中存在带有所述FAILD_INSTEAD的所述第二执行动作,则将所述转发模块中的该流表项中的所述第一执行动作替换为所述第二执行动作。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
删除模块,用于在所述检测模块检测到本设备与所述控制器恢复为关联状态时,针对所述保存模块中保存的每一个流表项,若该流表项中的任一执行动作带有的失联标记为所述FAILD_ADD,则从所述转发模块中的该流表项中删除该执行动作;
替换模块,用于在所述检测模块检测到本设备与所述控制器恢复为关联状态时,针对所述保存模块中保存的每一个流表项,若该流表项中存在带有所述FAILD_INSTEAD的所述第二执行动作,则将所述转发模块中的该流表项中的所述第二执行动作替换为所述第一执行动作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610585628.1A CN106302265B (zh) | 2016-07-21 | 2016-07-21 | 报文转发方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610585628.1A CN106302265B (zh) | 2016-07-21 | 2016-07-21 | 报文转发方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106302265A CN106302265A (zh) | 2017-01-04 |
CN106302265B true CN106302265B (zh) | 2019-08-06 |
Family
ID=57652017
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610585628.1A Active CN106302265B (zh) | 2016-07-21 | 2016-07-21 | 报文转发方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106302265B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108696434B (zh) | 2017-04-11 | 2022-01-14 | 华为技术有限公司 | 一种转发数据报文的方法、设备和系统 |
CN106936720B (zh) * | 2017-04-27 | 2019-08-09 | 北京东土科技股份有限公司 | 一种sdn交换机运行方法、控制器和交换机 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102984058A (zh) * | 2012-12-05 | 2013-03-20 | 华为技术有限公司 | 基于开放流的网络通信方法、控制器和交换机 |
CN103621027A (zh) * | 2011-05-30 | 2014-03-05 | 日本电气株式会社 | 通信路由控制系统和通信路由控制方法 |
CN104067572A (zh) * | 2012-01-16 | 2014-09-24 | 日本电气株式会社 | 网络系统和同步路径信息的方法 |
CN104604194A (zh) * | 2013-08-30 | 2015-05-06 | 华为技术有限公司 | 流表控制方法、装置、交换机和控制器 |
CN104601470A (zh) * | 2015-01-21 | 2015-05-06 | 杭州华三通信技术有限公司 | 一种流表处理方法及装置 |
CN104852867A (zh) * | 2014-02-19 | 2015-08-19 | 华为技术有限公司 | 数据包转发方法、装置及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2595918C2 (ru) * | 2010-09-08 | 2016-08-27 | Нек Корпорейшн | Коммутационная система, система управления коммутацией и носитель данных |
-
2016
- 2016-07-21 CN CN201610585628.1A patent/CN106302265B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103621027A (zh) * | 2011-05-30 | 2014-03-05 | 日本电气株式会社 | 通信路由控制系统和通信路由控制方法 |
CN104067572A (zh) * | 2012-01-16 | 2014-09-24 | 日本电气株式会社 | 网络系统和同步路径信息的方法 |
CN102984058A (zh) * | 2012-12-05 | 2013-03-20 | 华为技术有限公司 | 基于开放流的网络通信方法、控制器和交换机 |
CN104604194A (zh) * | 2013-08-30 | 2015-05-06 | 华为技术有限公司 | 流表控制方法、装置、交换机和控制器 |
CN104852867A (zh) * | 2014-02-19 | 2015-08-19 | 华为技术有限公司 | 数据包转发方法、装置及系统 |
CN104601470A (zh) * | 2015-01-21 | 2015-05-06 | 杭州华三通信技术有限公司 | 一种流表处理方法及装置 |
Non-Patent Citations (1)
Title |
---|
SDN网络的故障检测和恢复技术研究与实现;洪硕果;《中国优秀硕士学位论文全文数据库 信息科技辑》;中国学术期刊(光盘版)电子杂志社;20160515(第05期);I139-40 |
Also Published As
Publication number | Publication date |
---|---|
CN106302265A (zh) | 2017-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9912788B2 (en) | Systems and methods of an enhanced state-aware proxy device | |
EP3808040B1 (en) | Apparatus and method to trace packets in a packet processing pipeline of a software defined networking switch | |
US9686181B2 (en) | Selective service bypass in service function chaining | |
US9246818B2 (en) | Congestion notification in leaf and spine networks | |
CN102792646B (zh) | 通信系统、控制装置、通信方法 | |
EP3222012B1 (en) | Method and system for virtualizing flow tables in a software-defined networking (sdn) system | |
US9432205B2 (en) | Explicit block encoding of multicast group membership information with bit index explicit replication (BIER) | |
EP3353963B1 (en) | Method and system to speed up flow routing in sdn network | |
EP2959647B1 (en) | Method and system for flow table lookup parallelization in a software defined networking (sdn) system | |
US9401928B2 (en) | Data stream security processing method and apparatus | |
US20160380848A1 (en) | Packet Copy Management For Service Chain Processing Within Virtual Processing Systems | |
US10425337B2 (en) | Method for processing downlink signalling of SDN virtualization platform based on openflow | |
WO2016162833A1 (en) | Method and system for traffic pattern generation in a software-defined networking (sdn) system | |
WO2016174597A1 (en) | Service based intelligent packet-in mechanism for openflow switches | |
CN102739816B (zh) | 在mpls网络内的未编址设备通信 | |
EP3228054A1 (en) | Inter-domain service function chaining | |
CN105099917B (zh) | 业务报文的转发方法和装置 | |
US20160294625A1 (en) | Method for network monitoring using efficient group membership test based rule consolidation | |
CN104243362B (zh) | 一种报文转发方法和装置 | |
CN105471907B (zh) | 一种基于Openflow的虚拟防火墙传输控制方法及系统 | |
JP6024664B2 (ja) | 通信システム、制御装置および通信方法 | |
CN104601467A (zh) | 一种发送报文的方法和装置 | |
CN108353068A (zh) | Sdn控制器辅助的入侵防御系统 | |
CN108429652A (zh) | 基于sdn的远端流镜像控制方法、实现方法及相关设备 | |
US20180139136A1 (en) | Transmission processing method and device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for 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 |