CN104426789A - 软件定义网络中的转发设备控制方法及设备 - Google Patents
软件定义网络中的转发设备控制方法及设备 Download PDFInfo
- Publication number
- CN104426789A CN104426789A CN201310371598.0A CN201310371598A CN104426789A CN 104426789 A CN104426789 A CN 104426789A CN 201310371598 A CN201310371598 A CN 201310371598A CN 104426789 A CN104426789 A CN 104426789A
- Authority
- CN
- China
- Prior art keywords
- forwarding unit
- controller
- band
- message
- protocol massages
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0668—Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/40—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4604—LAN interconnection over a backbone network, e.g. Internet, Frame Relay
- H04L12/462—LAN interconnection over a bridge based backbone
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/64—Hybrid switching systems
- H04L12/6418—Hybrid transport
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0695—Management of faults, events, alarms or notifications the faulty arrangement being the maintenance, administration or management system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/34—Signalling channels for network management communication
- H04L41/342—Signalling channels for network management communication between virtual entities, e.g. orchestrators, SDN or NFV entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/34—Signalling channels for network management communication
- H04L41/344—Out-of-band transfers
-
- 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/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/55—Prevention, detection or correction of errors
- H04L49/557—Error correction, e.g. fault recovery or fault tolerance
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提出软件定义网络中的转发设备控制方法及转发设备。方法包括:SDN中的第一转发设备发现自身与控制器之间的带外连接中断,通过自身的相邻转发设备将开放流协议报文发送给控制器。本发明在SDN中的带外连接中断后,仍能够实现控制器对转发设备的控制。
Description
技术领域
本发明涉及软件定义网络(SDN,Software Defined Network)技术领域,尤其涉及基于开放流(OpenFlow)的软件定义网络中的转发设备控制方法及转发设备、控制器。
背景技术
为方便理解,首先给出如下说明:
OpenFlow:是一种SDN架构中定义控制器和转发层之间的通信接口标准。OpenFlow允许直接访问和操作网络设备的转发平面,这些网络设备可能是物理上的,也可能是虚拟的。
OpenFlow的思想是分离控制平面和数据平面,二者之间使用标准的协议通信;数据平面采用基于流的方式进行转发。
OpenFlow网络由OpenFlow转发设备(如:OpenFlow Switch)和控制器(OpenFlow Controller)通过安全通道(Secure Channel)组成。
SDN:SDN与传统网络的最大区别,是将控制平面和网络转发平面分离开来,网络转发平面将不再拥有控制功能,将控制平面交给独立于转发平面之外的操作系统,特性则基于操作系统进行定制。
控制器(Controller):是OpenFlow架构中的控制平面。下发各种指令通过安全信道控制OpenFlow交换机(转发设备),用户可以通过编程自己定义控制平面从而定义整个网络。
流表:为Controller下发到OpenFlow交换机的硬件表项,通过不同的匹配域匹配不同的报文,并对这些报文进行各种处理。
Packet-in:指的是转移报文的控制权到Controller。对于匹配上流表项或者未匹配上流表项(Table Miss)后转发到对应Controller的保留端口的报文均要通过Packet-in消息送到Controller。Packet-In消息可以携带整个需要转移控制权的报文,也可以通过在OpenFlow交换机内部设置报文的缓存器(Buffer)来仅携带报文头以及其Buffer ID传输给Controller。Controller在接收到Packet-In消息后会对其接收到的报文或者报文头和Buffer ID进行处理,并发回Packet-out消息通知OpenFlow交换机如何处理该报文。
Packet-out:用于Controller通过OpenFlow交换机特定端口发送报文,这些报文是包含在接收到的Packet-In消息中的。通常Packet-Out消息包含整个之前接收到的Packet-In消息所携带的报文或者Buffer ID。Packet-out消息需要包含一个动作列表,当OpenFlow交换机收到该动作列表后会对Packet-Out消息所携带的报文执行该动作列表。
目前,Controller是通过特定的OpenFlow交换机管理口与OpenFlow交换机进行交互,以实现对OpenFlow交换机的控制的,这种方式称为带外控制(Out-band control)方式。
发明内容
本发明提供SDN中的转发设备控制方法及转发设备、控制器,以在基于OpenFlow的SDN中的带外连接中断后,仍能够实现控制器对转发设备的控制。
本发明的技术方案是这样实现的:
一种软件定义网络SDN中的转发设备控制方法,初始时,各转发设备由控制器带外控制,该方法包括:
SDN中的任一转发设备,设第一转发设备发现自身与控制器之间的带外连接中断,则通过自身的相邻转发设备将开放流协议报文发送给控制器以使控制器对自身的控制方式由带外控制切换为带内控制。
所述第一转发设备通过自身的相邻转发设备将开放流协议报文发送给控制器以使控制器对自身的控制方式由带外控制切换为带内控制包括:
第一转发设备在自身的相邻转发设备中选择一个,通过所选择的转发设备将开放流协议报文发送给控制器以使控制器对自身的控制方式由带外控制切换为带内控制。
所述第一转发设备在自身的相邻转发设备中选择一个为:
第一转发设备根据自身与各相邻转发设备的连接端口的负载状态,选择一个当前单位时间内空闲带宽最大的端口,该端口连接的转发设备即为所选择的相邻转发设备。
所述第一转发设备发现自身与控制器之间的带外连接中断之后、在自身的相邻转发设备中选择一个之前进一步包括:第一转发设备在自身的流表中下发一条带内控制流表项,该表项中的源地址为控制器的地址,动作为将报文传输到本地网络栈;
且,所述方法进一步包括:所述控制器在发现自身与第一转发设备的带外连接中断时,向第一转发设备的所有相邻转发设备的流表下发一条带内控制流表项,该表项中的目的地址为控制器的地址,动作为将整个报文上送到控制器,以便:第一转发设备选择的相邻转发设备接收到第一转发设备发来的开放流协议报文后,根据所述控制器下发的所述带内控制流表项将该报文通过管理口上送控制器;
且,所述第一转发设备通过所选择的转发设备将开放流协议报文发送给控制器之后进一步包括:第一转发设备接收所选择的相邻转发设备转发的开放流协议响应报文,根据自身的带内控制流表项,将该报文传输到本地网络栈,所述开放流协议响应报文为控制器接收到所述开放流协议报文后生成且发送给所选择的相邻转发设备的。
所述第一转发设备通过所选择的转发设备将开放流协议报文发送给控制器以使控制器对自身的控制方式由带外控制切换为带内控制之后进一步包括:
若第一转发设备未接收到发出的开放流协议报文的响应报文,则在自身的相邻转发设备中重新选择一个,向该新选择的相邻转发设备发送开放流协议报文。
所述第一转发设备通过自身的相邻转发设备将开放流协议报文发送给控制器以使控制器对自身的控制方式由带外控制切换为带内控制包括:
第一转发设备将开放流协议报文发送给自身的所有相邻转发设备,由控制器选择的相邻转发设备将该开放流协议报文转发给控制器,以使控制器对所述第一转发设备的控制方式由带外控制切换为带内控制,其中,控制器选择的相邻转发设备为:控制器在发现自身与第一转发设备之间的带外连接中断后,在第一转发设备的相邻转发设备中选择一个,由所选择的转发设备转发第一转发设备的开放流协议报文到控制器。
所述第一转发设备发现自身与控制器之间的带外连接中断之后进一步包括:第一转发设备在自身的流表中下发一条带内控制流表项,该表项中的源地址为控制器的地址,动作为将报文传输到本地网络栈;
所述控制器在第一转发设备的相邻转发设备中选择一个之后进一步包括:控制器向所选择的相邻转发设备的流表下发一条带内控制流表项,该表项中的目的地址为控制器的地址,动作为将整个报文上送到控制器,以便:该相邻转发设备接收到第一转发设备发来的开放流协议报文后,根据所述控制器下发的所述带内控制流表项将该报文通过管理口上送控制器;
且,所述第一转发设备将开放流协议报文发送给自身的所有相邻转发设备之后进一步包括:第一转发设备接收相邻转发设备转发的开放流协议响应报文,根据自身的带内控制流表项,将该报文传输到本地网络栈,所述开放流协议响应报文为控制器接收到所述开放流协议报文后生成且发送给所选择的相邻转发设备的。
所述第一转发设备将开放流协议报文发送给自身的所有相邻转发设备,由控制器选择的相邻转发设备将该开放流协议报文转发给控制器之后进一步包括:
所述控制器在预设时长内未接收到来自第一转发设备的保活报文,则在第一转发设备的相邻转发设备中重新选择一个,将所选择的转发设备作为转发第一转发设备的开放流协议报文的新设备。
所述第一转发设备发现自身与控制器之间的带外连接中断之后进一步包括:
当第一转发设备发现自身与控制器间的带外连接恢复时,恢复通过管理口与控制器交互开放流协议报文。
所述第一转发设备通过自身的相邻转发设备将开放流协议报文发送给控制器包括:
第一转发设备的相邻转发设备接收第一转发设备发来的开放流协议报文,将该开放流协议报文封装到Packet-in消息,且在该消息中指示该开放流协议报文在本设备上的入端口,将该消息通过本设备的管理口上送控制器;且,第一转发设备的相邻转发设备接收控制器返回的Packet-out消息,该消息包含所述开放流协议报文的响应报文,同时包含该响应报文对应的动作:转发到一出端口,该出端口为所述Packet-in消息指示的入端口,第一转发设备的相邻转发设备根据Packet-out消息包含的动作,将该消息中的响应报文转发到对应的出端口。
一种转发设备,位于基于开放流的SDN中,且,该转发设备由控制器带外控制,该转发设备包括:
带外连接监测模块:发现本设备与控制器之间的带外连接中断,向带外连接切换模块发送带外连接中断指示;
带外连接切换模块:当接收到所述带外连接中断指示后,通过本设备的相邻转发设备将开放流协议报文发送给控制器以使控制器对本设备的控制方式由带外控制切换为带内控制。
所述带外连接切换模块进一步用于,在通过本设备的相邻转发设备将开放流协议报文发送给控制器时,通过本设备选择的相邻转发设备将开放流协议报文发送给控制器。
所述带外连接切换模块进一步用于,根据本设备与各相邻转发设备的连接端口的负载状态,选择一个当前单位时间内空闲带宽最大的端口,该端口连接的转发设备即为所选择的相邻转发设备。
所述带外连接切换模块进一步用于,未接收到发出的开放流协议报文的响应报文,则在本设备的相邻转发设备中重新选择一个,向该新选择的相邻转发设备发送开放流协议报文。
所述带外连接切换模块进一步用于,当接收到所述带外连接中断指示后,在本设备的流表中下发一条带内控制流表项,该表项中的源地址为控制器的地址,动作为将报文传输到本地网络栈,且,当接收到相邻转发设备转发的来自控制器的开放流协议响应报文时,根据本设备的带内控制流表项,将该报文传输到本地网络栈,所述开放流协议响应报文为控制器接收到所述开放流协议报文后生成且发送给所述相邻转发设备的。
所述带外连接切换模块进一步用于,将开放流协议报文发送给所有相邻转发设备,由控制器选择的相邻转发设备将该开放流协议报文转发给控制器,其中,控制器选择的相邻转发设备为:控制器在发现自身与一转发设备之间的带外连接中断后,在该转发设备的相邻转发设备中选择一个,将所选择的转发设备作为转发带外连接中断的转发设备的开放流协议报文的设备。
所述带外连接监测模块进一步用于,当发现本设备与控制器间的带外连接恢复时,恢复通过管理口与控制器交互开放流协议报文。
一种转发设备,应用于软件定义网络SDN中,且,初始时,该转发设备由控制器带外控制,包括:
协议报文带内转发模块:用于接收相邻转发设备发来的开放流协议报文,发现该报文的目的地址为控制器的地址,则将该报文通过管理口上送控制器;接收控制器发来的所述开放流协议报文的响应报文,将该响应报文转发给所述相邻转发设备,其中,所述开放流协议报文为所述相邻转发设备与控制器之间的带外连接中断时发给本设备的。
所述转发设备进一步包括:流表维护模块,用于接收并保存控制器发来的带内控制流表项,该表项的目的地址为控制器的地址,动作为将整个报文上送到控制器;
所述协议报文带内转发模块进一步用于,当将所述开放流协议报文上送控制器前,发现该报文的目的地址与流表维护模块的流表中的带内控制流表项匹配上,则根据该流表项中的动作:将整个报文上送到控制器,将该开放流协议报文封装到Packet-in消息,且在该消息中指示该开放流协议报文在本设备上的入端口,将该消息通过本设备的管理口上送控制器;且,当将所述响应报文转发给所述相邻转发设备前,接收到控制器发来的Packet-out消息,该消息包含所述开放流协议报文的响应报文,同时包含该响应报文对应的动作:转发到一出端口,该出端口为Packet-in消息指示的入端口,根据该动作,将该响应报文转发到对应的出端口。
一种控制器,应用于软件定义网络SDN中,且,初始时,控制器对各转发设备采用带外控制方式,该控制器包括:
带外连接监测模块:发现本控制器与一转发设备的带外连接中断,将该转发设备的地址添加到带外连接中断地址列表中,向该转发设备的所有相邻转发设备的流表下发一条带内控制流表项,或者,在该带外连接中断的转发设备的相邻转发设备中选择一个,向所选择的相邻转发设备的流表下发一条带内控制流表项,所述带内控制流表项中的目的地址为控制器的地址,动作为将整个报文上送到控制器;
控制模块:接收一转发设备发来的开放流协议报文,当该报文的源地址位于带外连接监测模块的带外连接中断地址列表中时,对该报文进行处理,将响应报文发送给该转发设备,以便该转发设备将该响应报文转发给发来开放流协议报文的相邻转发设备;其中,所述开放流协议报文为所述转发设备从其相邻转发设备接收到的,且所述转发设备发现该报文的目的地址与自身流表中的带内控制流表项匹配上,则根据该流表项中的动作,将该报文发送给控制器,所述开放流协议报文为所述相邻转发设备在发现自身与控制器之间的带外连接中断时,将所述开放流协议报文发送给自身选择的相邻转发设备或者所有相邻转发设备。
所述带外连接监测模块进一步用于,当发现本控制器与一转发设备间的带外连接恢复时,通知该转发设备的相邻转发设备删除带内控制流表项。
所述控制模块进一步用于,当发现在预设时长内未接收到来自带外连接中断的转发设备的开放流协议报文或者保活报文时,向带外连接监测模块发送携带该转发设备地址的连接中断指示;
所述带外连接监测模块进一步用于,接收控制模块发来的所述携带转发设备地址的连接中断指示,再次通过各管理口向该转发设备的所有相邻转发设备或者本控制器新选择的相邻转发设备的流表下发所述带内控制流表项。
所述控制模块进一步用于,所述接收一转发设备发来的开放流协议报文为:接收一转发设备通过管理口发来的Packet-in消息,该消息包含开放流协议报文,且该消息指示了该开放流协议报文在该转发设备上的入端口;所述将响应报文发送给该转发设备为:将该响应报文和对应的动作封装到Packet-out消息中,其中,对应的动作为:转发到一出端口,该出端口为所述Packet-in消息指示的入端口。
可见,本发明中,当转发设备和控制器之间的带外连接中断时,能够将带外控制自动切换到带内控制,且无需额外添加连接线。
附图说明
图1为本发明实施例一提供的当基于OpenFlow的SDN采用带外控制方式时,带外连接中断的处理方法流程图;
图2为本发明应用示例的示意图;
图3为本发明实施例二提供的当基于OpenFlow的SDN采用带外控制方式时,带外连接中断的处理方法流程图;
图4为本发明实施例一提供的转发设备的组成示意图;
图5为本发明实施例二提供的转发设备的组成示意图;
图6为本发明实施例提供的控制器的组成示意图。
具体实施方式
现有技术中,OpenFlow网络的Controller采用带外控制方式,即通过特定的OpenFlow转发设备管理口与OpenFlow转发设备进行交互,但是,若Controller与OpenFlow转发设备之间的带外连接中断,则Controller对OpenFlow转发设备的控制就中断。
针对上述缺陷,本申请文件实施例提出了如下解决方案:
当SDN中的任一转发设备发现自身与控制器之间的带外连接中断,则通过自身的相邻转发设备将OpenFlow协议报文发送给Controller,以便Controller通过转发设备的普通接口对转发设备进行控制,从而使控制器对本设备的控制方式由带外控制切换为带内控制(In-band control)。
带内控制,即Controller通过OpenFlow交换机的普通接口与OpenFlow交换机进行交互。
以下给出本申请的具体实施方式:
图1为本发明实施例一提供的当基于OpenFlow的SDN采用带外控制方式时,带外连接中断的处理方法流程图,如图1所示,其具体步骤如下:
步骤100:设Controller通过各管理口与各OpenFlow转发设备连接。
Controller通过管理口与各OpenFlow转发设备之间的连接可以是二层连接也可以是三层连接。若为二层连接,则根据媒体接入控制(MAC,MediaAccess Control)地址来识别Controller和OpenFlow转发设备;若为三层连接,则根据IP地址来识别Controller和OpenFlow转发设备。
步骤101:当一个OpenFlow转发设备,设为第一转发设备发现自身与Controller之间的带外连接中断时,第一转发设备自动进入故障开放安全(fail-open secure)模式,并自动在自身的第一个流表中下发一条优先级最高的带内控制流表项,该表项中的源地址为Controller的地址,动作为将报文传输到本地网络栈,即将报文上送CPU处理。
Controller和OpenFlow转发设备会定时向对端发出echo报文,若在预设时长内未接收到对端的Echo报文,则认为二者之间的带外连接中断。
步骤102:当Controller发现自身与第一转发设备之间的带外连接中断时,则通过各管理口向第一转发设备的各相邻转发设备的第一个流表下发一条优先级最高的带内控制流表项,该表项的目的地址为Controller的地址,动作为将整个报文上送到Controller。
步骤103:第一转发设备根据自身与各相邻转发设备连接的端口的负载状态,在所有端口中选择一个端口,设所选择的端口为连接到第二转发设备的端口,将原应该由管理口发送的开放流(OpenFlow)协议报文通过选择的端口发送给第二转发设备。
这里,第一转发设备在选择发送OpenFlow协议报文的端口时,可以默认优先选择单位时间内空闲带宽最大的端口。例如:当第一转发设备与第二转发设备之间有40Gbps的带宽,负载为20Gbps,第一转发设备与第三转发设备之间有30Gbps的带宽,负载为15Gbps,此时第一转发设备就会优先选择向第二转发设备发送OpenFlow协议报文。
步骤104:当第二转发设备接收到该报文后,该报文的目的地址首先与自身第一个流表中优先级最高的带内控制流表项匹配上,则根据该流表项中的动作:将整个报文上送到Controller,将该报文封装到Packet-in消息中,同时在该Packet-in消息中指示该OpenFlow协议报文在第二转发设备上的入端口,将该Packet-in消息通过自身的管理口上送到Controller。
步骤105:Controller接收该Packet-In消息,对于该消息中的报文,判断该报文的源地址是否为带外连接中断的第一转发设备的地址,若是,执行步骤107;否则,执行步骤106。
步骤106:Controller按照现有OpenFlow协议对该Packet-in消息进行处理,本流程结束。
步骤107:Controller按照现有OpenFlow协议对Packet-in消息中携带的报文进行处理,得到回应报文,将该回应报文和对应的动作封装到Packet-out消息中,其中,对应的动作为转发(Output)到Packet-in消息指示的入端口;同时,Controller通过各管理口通知除第二转发设备外的第一转发设备的相邻转发设备删除第一流表中的带内控制流表项;第二转发设备接收到该Packet-out消息,从该消息中读取响应报文和对应的动作,对该响应报文执行该动作,即将该响应报文转发到对应的端口。
其中,Packet-in消息指示的入端口,即第一转发设备发出的OpenFlow协议报文在第二转发设备上的入端口,第二转发设备可通过该端口将Packet-out消息中的响应报文转发给第一转发设备。
步骤108:第一转发设备接收该响应报文,该报文的源地址首先与自身第一个流表中优先级最高的带内控制流表项匹配上,则根据该流表项中的动作:将报文传输到本地网络栈,将该报文传输到本地网络栈。
此后,Controller就通过第二转发设备与第一转发设备相连,对第一转发设备进行控制。
步骤109:当第一转发设备发现自身与Controller间的带外连接恢复时,先通过管理口与Controller进行OpenFlow握手;握手成功,Controller通知第一转发设备和第二转发设备清除第一流表中的带内控制流表项,同时停止通过第二转发设备向第一转发设备发送OpenFlow协议报文,而恢复对第一转发设备的带外控制,即通过管理口与第一转发设备进行OpenFlow协议报文交互。
图1所示步骤103中,若第一转发设备向第二转发设备发出OpenFlow协议报文后,在预设时长内未收到来自Controller的响应报文,则第一转发设备会再选择其他转发设备,例如单位时间内空闲带宽次大的端口,设为连接到第三转发设备的端口再次发送未得到响应的OpenFlow协议报文。此时,由于Controller与第一转发设备断开了带内控制连接,Controller会再次向第一转发设备的所有相邻转发设备的第一个流表下发一条优先级最高的带内控制流表项,该表项的目的地址为Controller的地址,动作为将整个报文上送到Controller。后续的处理步骤同步骤104~109(只需将步骤104~109中的“第二转发设备”替换为“第三转发设备”即可)。
图2为本发明应用示例的示意图,如图2所示,SDN中包括控制器和转发设备A、B、C,转发设备A、B、C分别通过管理口M1、M2、M3与控制器连接,即处于带外控制状态。同时,转发设备A分别通过端口A1、A2与转发设备B、C连接。
当转发设备A与控制器之间的带外连接中断时,转发设备A自动进入fail-open secure模式,并自动在自身的第一个流表中下发一条优先级最高的带内控制流表项,该表项中的源IP地址为Controller的IP地址,动作为将报文传输到本地网络栈;同时,控制器通过管理口M2、M3向转发设备A的相邻转发设备B、C的第一个流表下发一条优先级最高的带内控制流表项,该表项的目的IP地址为Controller的IP地址,动作为将整个报文上送到Controller;
转发设备A根据端口A1、A2的负载状态选择一个端口,设为端口A1,将原来通过管理口M1发送的OpenFlow协议报文通过端口A1发送出去;
转发设备B接收到该OpenFlow协议报文后,该报文的目的IP地址与自身第一个流表中优先级最高的带内控制流表项匹配,则根据该流表项中的动作:将整个报文上送到Controller,将该报文封装到Packet-in消息中,同时该Packet-in消息还指示了该OpenFlow协议报文在转发设备B上的入端口B,转发设备B通过自身的管理口M2将该Packet-in消息上送到Controller;
Controller接收该Packet-In消息,发现该报文的源IP地址为带外连接中断的转发设备A的IP地址,则按照OpenFlow协议对该报文进行处理,得到回应报文,将该回应报文和对应的动作封装到Packet-out消息中,其中,对应的动作为转发(Output)到Packet-in消息指示的入端口B;同时,Controller通过管理口M3通知转发设备C删除第一流表中的带内控制流表项;
转发设备B接收到该Packet-out消息,从该消息中读取响应报文和对应的动作,对该响应报文执行该动作,即将该响应报文转发到端口B;
转发设备A接收到该响应报文,该报文的源IP地址与自身第一个流表中的带内控制流表项匹配,则按照该表项中的动作,将该报文传输到本地网络栈。
图3为本发明实施例二提供的当基于OpenFlow的SDN采用带外控制方式时,带外连接中断的处理方法流程图,如图3所示,其具体步骤如下:
步骤300:设Controller通过各管理口与各OpenFlow转发设备连接。
Controller通过管理口与各OpenFlow转发设备之间的连接可以是二层连接也可以是三层连接。若为二层连接,则根据MAC地址来识别Controller和OpenFlow转发设备;若为三层连接,则根据IP地址来识别Controller和OpenFlow转发设备。
步骤301:当一个OpenFlow转发设备,设为第一转发设备发现自身与Controller之间的带外连接中断时,第一转发设备自动进入fail-open secure模式,并自动在自身的第一个流表中下发一条优先级最高的带内控制流表项,该表项中的源地址为Controller的地址,动作为将报文传输到本地网络栈,即将报文上送CPU处理。
步骤302:当Controller发现自身与第一转发设备之间的带外连接中断时,在第一转发设备的所有邻居转发设备中选择一个,设选择了第二转发设备,则通过与第二转发设备间的管理口向第二转发设备的第一个流表下发一条优先级最高的带内控制流表项,该表项的目的地址为Controller的地址,动作为将整个报文上送到Controller。
例如:Contoller可以在第一转发设备的所有邻居转发设备中选择一个当前负载最小的设备。
步骤303:第一转发设备原应该从管理口发送的OpenFlow协议报文通过自身与各邻居转发设备之间的端口发出。
即,对于任一个原应该从管理口发送的OpenFlow协议报文,第一转发设备将该报文发送给自身的所有邻居转发设备。
步骤304:当第二转发设备接收到该OpenFlow协议报文后,该报文的目的地址首先与自身第一个流表中优先级最高的带内控制流表项匹配,则根据该流表项中的动作:将整个报文上送到Controller,将该报文封装到Packet-in消息中,同时在该Packet-in消息中指示该OpenFlow协议报文在第二转发设备上的入端口,将该Packet-in消息通过自身的管理口上送到Controller。
第一转发设备的其他邻居转发设备接收到该OpenFlow协议报文后,由于没有与该报文的目的地址匹配的带内控制流表项,因此,会将该报文丢弃。
步骤305:Controller接收该Packet-In消息,对于该消息中的报文,判断该报文的源地址是否为带外连接中断的第一转发设备的地址,若是,执行步骤307;否则,执行步骤306。
步骤306:Controller按照现有OpenFlow协议对该Packet-in消息进行处理,本流程结束。
步骤307:Controller按照现有OpenFlow协议对Packet-in消息中携带的报文进行处理,得到回应报文,将该回应报文和对应的动作封装到Packet-out消息中,其中,对应的动作为转发(Output)到Packet-in消息指示的入端口;第二转发设备接收到该Packet-out消息,从该消息中读取响应报文和对应的动作,对该响应报文执行该动作,即将该响应报文转发到对应的端口。
其中,Packet-in消息指示的入端口,即第一转发设备发出的OpenFlow协议报文在第二转发设备上的入端口,第二转发设备可通过该端口将Packet-out消息中的响应报文转发给第一转发设备。
步骤308:第一转发设备接收该响应报文,该报文的源地址首先与自身第一个流表中优先级最高的带内控制流表项匹配上,则根据该流表项中的动作:将报文传输到本地网络栈,将该报文传输到本地网络栈。
此后,Controller就通过第二转发设备与第一转发设备相连,对第一转发设备进行控制。
步骤309:当第一转发设备发现自身与Controller间的带外连接恢复时,先通过管理口与Controller进行OpenFlow握手;握手成功,Controller通知第一转发设备和第二转发设备清除第一流表中的带内控制流表项,同时停止通过第二转发设备向第一转发设备发送OpenFlow协议报文,而恢复对第一转发设备的带外控制,即通过管理口与第一转发设备进行OpenFlow协议报文交互。
在图3所示流程中,若Controller发现在预设时长内未接收到来自第一转发设备的报文,如:在3个Echo报文周期内未接收到来自第一转发设备的Echo报文,则在第一转发设备的相邻转发设备中重新选择一个,设选择了第三转发设备,通过与第三转发设备间的管理口向第三转发设备的第一个流表下发一条优先级最高的带内控制流表项,该表项的目的地址为Controller的地址,动作为将整个报文上送到Controller,此后,由第三转发设备将第一转发设备的OpenFlow协议报文上送Controller。
从图1、3所示实施例可以看出,本发明在不改变组网的情况下,在二层网络或三层网络带外控制连接方式下,提供Controller与转发设备的连接备份功能,即在带外控制连接断开时,能够自动切换到带内控制连接进行控制,实现了带外控制以及带内控制的控制链路备份。
图4为本发明实施例一提供的转发设备的组成示意图,该转发设备位于基于OpenFlow的SDN中,且,该转发设备由控制器带外控制,如图4所示,该转发设备包括:带外连接监测模块41、带外连接切换模块42和流表维护模块43,其中:
带外连接监测模块41:发现本设备与控制器之间的带外连接中断,进入fail-open secure模式,向带外连接切换模块42发送带外连接中断指示,并在流表维护模块43的第一个流表中下发一条优先级最高的带内控制流表项,该表项中的源地址为控制器的地址,动作为将报文传输到本地网络栈。
带外连接切换模块42:接收带外连接监测模块41发来的带外连接中断指示,通过本设备的相邻转发设备将开放流协议报文发送给控制器以使控制器对自身的控制方式由带外控制切换为带内控制。
流表维护模块43:维护流表。
具体地,带外连接切换模块42可在本设备的相邻转发设备中选择一个,将原来通过管理口发送的OpenFlow协议报文通过所选择的相邻转发设备转发给控制器;接收所选择的相邻转发设备转发的OpenFlow协议响应报文,将该报文的源IP地址与流表维护模块43中的流表进行匹配,首先与第一个流表中优先级最高的带内控制流表项匹配上,则根据该流表项中的动作,将该报文传输到本地网络栈;其中,控制器在发现自身与一转发设备的带外连接中断时,向该转发设备的所有相邻转发设备的第一个流表下发一条优先级最高的带内控制流表项,该表项中的目的地址为控制器的地址,动作为将整个报文上送到控制器,且,当所述所选择的相邻转发设备接收到第一转发设备发来的OpenFlow协议报文后,该报文的目的IP地址首先与自身的第一个流表中优先级最高的带内控制流表项匹配上,则根据该流表项中的动作,将该报文通过自身的管理口上送控制器;所述OpenFlow协议响应报文为控制器接收到所述OpenFlow协议报文后生成且发送给所述所选择的相邻转发设备的。
带外连接切换模块42进一步用于,若向所选择的相邻转发设备发出OpenFlow协议报文后,在预设响应时长内未接收到响应报文,则在本设备的相邻转发设备中重新选择一个,向该新选择的相邻转发设备重新发送该OpenFlow协议报文。
或者,带外连接切换模块42可将开放流协议报文发送给所有相邻转发设备,由控制器选择的相邻转发设备将该开放流协议报文转发给控制器,其中,控制器选择的相邻转发设备为:控制器在发现自身与一转发设备之间的带外连接中断后,在该转发设备的相邻转发设备中选择一个,将所选择的转发设备作为转发带外连接中断的转发设备的开放流协议报文的设备。
带外连接监测模块41进一步用于,当发现本设备与控制器间的带外连接恢复时,通过管理口与控制器进行握手,握手成功,删除流表维护模块43中第一个流表中的带内控制流表项,以开始通过管理口与控制器交互OpenFlow协议报文。
在实际应用中,图4所示的转发设备可进一步包括:协议报文带内转发模块,用于接收相邻转发设备发来的OpenFlow协议报文,该报文的目的地址首先与流表维护模块43的第一个流表中优先级最高的带内控制流表项匹配上,则根据该流表项中的动作:将整个报文上送到控制器,将该OpenFlow协议报文封装到Packet-in消息中,且在该消息中指示该OpenFlow协议报文在本设备上的入端口,将该消息通过本设备的管理口上送到控制器;接收控制器发来的Packet-out消息,该消息包含该OpenFlow协议报文的响应报文,同时包含该响应报文对应的动作:转发到一出端口,该出端口为Packet-in消息指示的入端口,则根据该动作,将该响应报文转发到对应的出端口。
同时,流表维护模块43进一步用于,接收并保存控制器发来的指示下发到第一个流表中的优先级最高的带内控制流表项,该表项的目的地址为控制器的地址,动作为将整个报文上送到控制器。
图5为本发明实施例二提供的转发设备的组成示意图,该转发设备位于基于OpenFlow的SDN中,且,该转发设备由控制器带外控制,如图5所示,该转发设备主要包括:协议报文带内转发模块51和流表维护模块52,其中:
协议报文带内转发模块51:接收相邻转发设备发来的OpenFlow协议报文,该报文的目的地址首先与流表维护模块52的第一个流表中的优先级最高的带内控制流表项匹配上,则根据该流表项中的动作:将整个报文上送到控制器,将该OpenFlow协议报文封装到Packet-in消息中,且在该消息中指示该OpenFlow协议报文在本设备上的入端口,将该消息通过本设备的管理口上送到控制器;接收控制器发来的Packet-out消息,该消息包含该OpenFlow协议报文的响应报文,同时包含该响应报文对应的动作:转发到一出端口,该出端口为Packet-in消息指示的入端口,则根据该动作,将该响应报文转发到对应的出端口。
流表维护模块52:接收并保存控制器发来的指示下发到第一个流表中的优先级最高的带内控制流表项,该表项的目的地址为控制器的地址,动作为将整个报文上送到控制器。
图6为本发明实施例提供的控制器的组成示意图,该控制器位于基于OpenFlow的SDN中,且,初始时,控制器对各转发设备采用带外控制方式,如图6所示,该控制器包括:带外连接监测模块61和控制模块62,其中:
带外连接监测模块61:发现本控制器与一转发设备的带外连接中断,将该转发设备的地址添加到带外连接中断地址列表中,向该转发设备的所有相邻转发设备的流表下发一条带内控制流表项,该表项中的目的地址为本控制器的地址,动作为将整个报文上送到控制器;或者,在该带外连接中断的转发设备的相邻转发设备中选择一个,向所选择的相邻转发设备的流表下发一条带内控制流表项,所述带内控制流表项中的目的地址为控制器的地址,动作为将整个报文上送到控制器。
控制模块62:接收一转发设备发来的OpenFlow协议报文,发现该报文的源地址位于带外连接监测模块61的带外连接中断地址列表中,则对该报文进行处理,将响应报文发送给该转发设备,以便该转发设备将该响应报文转发给发来OpenFlow协议报文的相邻转发设备;其中,所述OpenFlow协议报文为所述转发设备从其相邻转发设备接收到的,且该报文的目的IP地址首先与所述转发设备的第一个流表中优先级最高的带内控制流表项匹配上,则根据该流表项中的动作,将该报文发送给控制器,且所述相邻转发设备在发现自身与控制器之间的带外连接中断时,在自身的相邻转发设备中选择一个,将原来通过管理口发送的OpenFlow协议报文发送给自身选择的相邻转发设备或者所有相邻转发设备。
带外连接监测模块61进一步用于,当发现本控制器与一转发设备间的带外连接恢复时,通过管理口与该转发设备进行握手,握手成功,通知该转发设备的相邻转发设备删除目的IP地址为控制器的IP地址的带内控制流表项。
控制模块62进一步用于,当发现在预设时长内未接收到来自带外连接中断的转发设备的开放流协议报文或者保活报文时,向带外连接监测模块61发送携带该转发设备地址的连接中断指示;
且,带外连接监测模块61进一步用于,接收控制模块62发来的所述携带转发设备地址的连接中断指示,再次通过各管理口向该转发设备的所有相邻转发设备或者本控制器新选择的相邻转发设备的流表下发所述带内控制流表项。
控制模块62进一步用于,所述接收一转发设备发来的OpenFlow协议报文为:接收一转发设备通过管理口发来的Packet-in消息,该消息包含开放流协议报文,且该消息指示了该开放流协议报文在该转发设备上的入端口;所述将响应报文发送给该转发设备为:将该响应报文和对应的动作封装到Packet-out消息中,其中,对应的动作为:转发到一出端口,该出端口为所述Packet-in消息指示的入端口。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (23)
1.一种软件定义网络SDN中的转发设备控制方法,初始时,各转发设备由控制器带外控制,其特征在于,该方法包括:
SDN中的任一转发设备,设第一转发设备发现自身与控制器之间的带外连接中断,则通过自身的相邻转发设备将开放流协议报文发送给控制器以使控制器对自身的控制方式由带外控制切换为带内控制。
2.根据权利要求1所述的方法,其特征在于,所述第一转发设备通过自身的相邻转发设备将开放流协议报文发送给控制器以使控制器对自身的控制方式由带外控制切换为带内控制包括:
第一转发设备在自身的相邻转发设备中选择一个,通过所选择的转发设备将开放流协议报文发送给控制器以使控制器对自身的控制方式由带外控制切换为带内控制。
3.根据权利要求2所述的方法,其特征在于,所述第一转发设备在自身的相邻转发设备中选择一个为:
第一转发设备根据自身与各相邻转发设备的连接端口的负载状态,选择一个当前单位时间内空闲带宽最大的端口,该端口连接的转发设备即为所选择的相邻转发设备。
4.根据权利要求2所述的方法,其特征在于,所述第一转发设备发现自身与控制器之间的带外连接中断之后、在自身的相邻转发设备中选择一个之前进一步包括:第一转发设备在自身的流表中下发一条带内控制流表项,该表项中的源地址为控制器的地址,动作为将报文传输到本地网络栈;
且,所述方法进一步包括:所述控制器在发现自身与第一转发设备的带外连接中断时,向第一转发设备的所有相邻转发设备的流表下发一条带内控制流表项,该表项中的目的地址为控制器的地址,动作为将整个报文上送到控制器,以便:第一转发设备选择的相邻转发设备接收到第一转发设备发来的开放流协议报文后,根据所述控制器下发的所述带内控制流表项将该报文通过管理口上送控制器;
且,所述第一转发设备通过所选择的转发设备将开放流协议报文发送给控制器之后进一步包括:第一转发设备接收所选择的相邻转发设备转发的开放流协议响应报文,根据自身的带内控制流表项,将该报文传输到本地网络栈,所述开放流协议响应报文为控制器接收到所述开放流协议报文后生成且发送给所选择的相邻转发设备的。
5.根据权利要求2所述的方法,其特征在于,所述第一转发设备通过所选择的转发设备将开放流协议报文发送给控制器以使控制器对自身的控制方式由带外控制切换为带内控制之后进一步包括:
若第一转发设备未接收到发出的开放流协议报文的响应报文,则在自身的相邻转发设备中重新选择一个,向该新选择的相邻转发设备发送开放流协议报文。
6.根据权利要求1所述的方法,其特征在于,所述第一转发设备通过自身的相邻转发设备将开放流协议报文发送给控制器以使控制器对自身的控制方式由带外控制切换为带内控制包括:
第一转发设备将开放流协议报文发送给自身的所有相邻转发设备,由控制器选择的相邻转发设备将该开放流协议报文转发给控制器,以使控制器对所述第一转发设备的控制方式由带外控制切换为带内控制,其中,控制器选择的相邻转发设备为:控制器在发现自身与第一转发设备之间的带外连接中断后,在第一转发设备的相邻转发设备中选择一个,由所选择的转发设备转发第一转发设备的开放流协议报文到控制器。
7.根据权利要求6所述的方法,其特征在于,所述第一转发设备发现自身与控制器之间的带外连接中断之后进一步包括:第一转发设备在自身的流表中下发一条带内控制流表项,该表项中的源地址为控制器的地址,动作为将报文传输到本地网络栈;
所述控制器在第一转发设备的相邻转发设备中选择一个之后进一步包括:控制器向所选择的相邻转发设备的流表下发一条带内控制流表项,该表项中的目的地址为控制器的地址,动作为将整个报文上送到控制器,以便:该相邻转发设备接收到第一转发设备发来的开放流协议报文后,根据所述控制器下发的所述带内控制流表项将该报文通过管理口上送控制器;
且,所述第一转发设备将开放流协议报文发送给自身的所有相邻转发设备之后进一步包括:第一转发设备接收相邻转发设备转发的开放流协议响应报文,根据自身的带内控制流表项,将该报文传输到本地网络栈,所述开放流协议响应报文为控制器接收到所述开放流协议报文后生成且发送给所选择的相邻转发设备的。
8.根据权利要求6所述的方法,其特征在于,所述第一转发设备将开放流协议报文发送给自身的所有相邻转发设备,由控制器选择的相邻转发设备将该开放流协议报文转发给控制器之后进一步包括:
所述控制器在预设时长内未接收到来自第一转发设备的保活报文,则在第一转发设备的相邻转发设备中重新选择一个,将所选择的转发设备作为转发第一转发设备的开放流协议报文的新设备。
9.根据权利要求1所述的方法,其特征在于,所述第一转发设备发现自身与控制器之间的带外连接中断之后进一步包括:
当第一转发设备发现自身与控制器间的带外连接恢复时,恢复通过管理口与控制器交互开放流协议报文。
10.根据权利要求1所述的方法,其特征在于,所述第一转发设备通过自身的相邻转发设备将开放流协议报文发送给控制器包括:
第一转发设备的相邻转发设备接收第一转发设备发来的开放流协议报文,将该开放流协议报文封装到Packet-in消息,且在该消息中指示该开放流协议报文在本设备上的入端口,将该消息通过本设备的管理口上送控制器;且,第一转发设备的相邻转发设备接收控制器返回的Packet-out消息,该消息包含所述开放流协议报文的响应报文,同时包含该响应报文对应的动作:转发到一出端口,该出端口为所述Packet-in消息指示的入端口,第一转发设备的相邻转发设备根据Packet-out消息包含的动作,将该消息中的响应报文转发到对应的出端口。
11.一种转发设备,位于基于开放流的SDN中,且,该转发设备由控制器带外控制,其特征在于,该转发设备包括:
带外连接监测模块:发现本设备与控制器之间的带外连接中断,向带外连接切换模块发送带外连接中断指示;
带外连接切换模块:当接收到所述带外连接中断指示后,通过本设备的相邻转发设备将开放流协议报文发送给控制器以使控制器对本设备的控制方式由带外控制切换为带内控制。
12.根据权利要求11所述的转发设备,其特征在于,所述带外连接切换模块进一步用于,在通过本设备的相邻转发设备将开放流协议报文发送给控制器时,通过本设备选择的相邻转发设备将开放流协议报文发送给控制器。
13.根据权利要求12所述的转发设备,其特征在于,所述带外连接切换模块进一步用于,根据本设备与各相邻转发设备的连接端口的负载状态,选择一个当前单位时间内空闲带宽最大的端口,该端口连接的转发设备即为所选择的相邻转发设备。
14.根据权利要求12所述的转发设备,其特征在于,所述带外连接切换模块进一步用于,未接收到发出的开放流协议报文的响应报文,则在本设备的相邻转发设备中重新选择一个,向该新选择的相邻转发设备发送开放流协议报文。
15.根据权利要求11所述的转发设备,其特征在于,所述带外连接切换模块进一步用于,当接收到所述带外连接中断指示后,在本设备的流表中下发一条带内控制流表项,该表项中的源地址为控制器的地址,动作为将报文传输到本地网络栈,且,当接收到相邻转发设备转发的来自控制器的开放流协议响应报文时,根据本设备的带内控制流表项,将该报文传输到本地网络栈,所述开放流协议响应报文为控制器接收到所述开放流协议报文后生成且发送给所述相邻转发设备的。
16.根据权利要求11所述的转发设备,其特征在于,所述带外连接切换模块进一步用于,将开放流协议报文发送给所有相邻转发设备,由控制器选择的相邻转发设备将该开放流协议报文转发给控制器,其中,控制器选择的相邻转发设备为:控制器在发现自身与一转发设备之间的带外连接中断后,在该转发设备的相邻转发设备中选择一个,将所选择的转发设备作为转发带外连接中断的转发设备的开放流协议报文的设备。
17.根据权利要求11所述的转发设备,其特征在于,所述带外连接监测模块进一步用于,当发现本设备与控制器间的带外连接恢复时,恢复通过管理口与控制器交互开放流协议报文。
18.一种转发设备,应用于软件定义网络SDN中,且,初始时,该转发设备由控制器带外控制,其特征在于,包括:
协议报文带内转发模块:用于接收相邻转发设备发来的开放流协议报文,发现该报文的目的地址为控制器的地址,则将该报文通过管理口上送控制器;接收控制器发来的所述开放流协议报文的响应报文,将该响应报文转发给所述相邻转发设备,其中,所述开放流协议报文为所述相邻转发设备与控制器之间的带外连接中断时发给本设备的。
19.根据权利要求18所述的转发设备,其特征在于,所述转发设备进一步包括:流表维护模块,用于接收并保存控制器发来的带内控制流表项,该表项的目的地址为控制器的地址,动作为将整个报文上送到控制器;
所述协议报文带内转发模块进一步用于,当将所述开放流协议报文上送控制器前,发现该报文的目的地址与流表维护模块的流表中的带内控制流表项匹配上,则根据该流表项中的动作:将整个报文上送到控制器,将该开放流协议报文封装到Packet-in消息,且在该消息中指示该开放流协议报文在本设备上的入端口,将该消息通过本设备的管理口上送控制器;且,当将所述响应报文转发给所述相邻转发设备前,接收到控制器发来的Packet-out消息,该消息包含所述开放流协议报文的响应报文,同时包含该响应报文对应的动作:转发到一出端口,该出端口为Packet-in消息指示的入端口,根据该动作,将该响应报文转发到对应的出端口。
20.一种控制器,应用于软件定义网络SDN中,且,初始时,控制器对各转发设备采用带外控制方式,其特征在于,该控制器包括:
带外连接监测模块:发现本控制器与一转发设备的带外连接中断,将该转发设备的地址添加到带外连接中断地址列表中,向该转发设备的所有相邻转发设备的流表下发一条带内控制流表项,或者,在该带外连接中断的转发设备的相邻转发设备中选择一个,向所选择的相邻转发设备的流表下发一条带内控制流表项,所述带内控制流表项中的目的地址为控制器的地址,动作为将整个报文上送到控制器;
控制模块:接收一转发设备发来的开放流协议报文,当该报文的源地址位于带外连接监测模块的带外连接中断地址列表中时,对该报文进行处理,将响应报文发送给该转发设备,以便该转发设备将该响应报文转发给发来开放流协议报文的相邻转发设备;其中,所述开放流协议报文为所述转发设备从其相邻转发设备接收到的,且所述转发设备发现该报文的目的地址与自身流表中的带内控制流表项匹配上,则根据该流表项中的动作,将该报文发送给控制器,所述开放流协议报文为所述相邻转发设备在发现自身与控制器之间的带外连接中断时,将所述开放流协议报文发送给自身选择的相邻转发设备或者所有相邻转发设备。
21.根据权利要求20所述的控制器,其特征在于,所述带外连接监测模块进一步用于,当发现本控制器与一转发设备间的带外连接恢复时,通知该转发设备的相邻转发设备删除带内控制流表项。
22.根据权利要求20所述的控制器,其特征在于,所述控制模块进一步用于,当发现在预设时长内未接收到来自带外连接中断的转发设备的开放流协议报文或者保活报文时,向带外连接监测模块发送携带该转发设备地址的连接中断指示;
所述带外连接监测模块进一步用于,接收控制模块发来的所述携带转发设备地址的连接中断指示,再次通过各管理口向该转发设备的所有相邻转发设备或者本控制器新选择的相邻转发设备的流表下发所述带内控制流表项。
23.根据权利要求20所述的转发设备,其特征在于,所述控制模块进一步用于,所述接收一转发设备发来的开放流协议报文为:接收一转发设备通过管理口发来的Packet-in消息,该消息包含开放流协议报文,且该消息指示了该开放流协议报文在该转发设备上的入端口;所述将响应报文发送给该转发设备为:将该响应报文和对应的动作封装到Packet-out消息中,其中,对应的动作为:转发到一出端口,该出端口为所述Packet-in消息指示的入端口。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310371598.0A CN104426789B (zh) | 2013-08-23 | 2013-08-23 | 软件定义网络中的转发设备控制方法及设备 |
US14/899,942 US10091054B2 (en) | 2013-08-23 | 2014-08-22 | Controlling forwarding devices in software defined networks |
PCT/CN2014/084980 WO2015024527A1 (en) | 2013-08-23 | 2014-08-22 | Controlling forwarding devices in software defined networks |
EP14837485.3A EP3036872A1 (en) | 2013-08-23 | 2014-08-22 | Controlling forwarding devices in software defined networks |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310371598.0A CN104426789B (zh) | 2013-08-23 | 2013-08-23 | 软件定义网络中的转发设备控制方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104426789A true CN104426789A (zh) | 2015-03-18 |
CN104426789B CN104426789B (zh) | 2017-08-11 |
Family
ID=52483090
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310371598.0A Active CN104426789B (zh) | 2013-08-23 | 2013-08-23 | 软件定义网络中的转发设备控制方法及设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10091054B2 (zh) |
EP (1) | EP3036872A1 (zh) |
CN (1) | CN104426789B (zh) |
WO (1) | WO2015024527A1 (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104836753A (zh) * | 2015-03-27 | 2015-08-12 | 清华大学 | Sdn数据平面带状态交换设备、系统及转发处理方法 |
WO2016165263A1 (zh) * | 2015-04-13 | 2016-10-20 | 中兴通讯股份有限公司 | 路径的保护倒换处理方法、装置、系统及转发设备 |
WO2016172926A1 (zh) * | 2015-04-30 | 2016-11-03 | 华为技术有限公司 | 通信系统中的通信方法和设备及系统 |
WO2018001089A1 (zh) * | 2016-06-27 | 2018-01-04 | 中兴通讯股份有限公司 | 业务处理方法及装置、存储介质 |
CN107659500A (zh) * | 2016-07-25 | 2018-02-02 | 中国电信股份有限公司 | 流表获取方法及系统 |
CN108243047A (zh) * | 2016-12-27 | 2018-07-03 | 中兴通讯股份有限公司 | 一种业务切换方法、装置及业务切换系统 |
CN109120520A (zh) * | 2018-10-15 | 2019-01-01 | 迈普通信技术股份有限公司 | 一种故障处理方法和设备 |
CN109327318A (zh) * | 2017-07-31 | 2019-02-12 | 杭州达乎科技有限公司 | Sdn管理网络架构、建立sdn管理网络及管理网络切换方法 |
WO2019085651A1 (zh) * | 2017-10-31 | 2019-05-09 | 中兴通讯股份有限公司 | 软件定义网络的设置方法、控制器、交换机及存储介质 |
CN109756797A (zh) * | 2017-11-07 | 2019-05-14 | 阿里巴巴集团控股有限公司 | 双上联方法、光网络管理设备以及光传输系统 |
US20200367318A1 (en) * | 2018-01-25 | 2020-11-19 | Ntt Docomo, Inc. | User apparatus and base station apparatus |
CN113726556A (zh) * | 2021-08-06 | 2021-11-30 | 国网电力科学研究院有限公司 | 边缘物联代理节点运维方法、系统、存储介质及计算设备 |
CN113726556B (zh) * | 2021-08-06 | 2024-05-31 | 国网电力科学研究院有限公司 | 边缘物联代理节点运维方法、系统、存储介质及计算设备 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014161138A1 (en) * | 2013-04-01 | 2014-10-09 | Nokia Corporation | A method and apparatus for diverse security handling in an enhanced local area network |
US10212083B2 (en) * | 2013-10-30 | 2019-02-19 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Openflow data channel and control channel separation |
US10257091B2 (en) * | 2014-04-08 | 2019-04-09 | Hewlett Packard Enterprise Development Lp | Pipeline table identification |
WO2015187119A1 (en) * | 2014-06-02 | 2015-12-10 | Hewlett-Packard Development Company, L.P. | Delivering messages according to a desired delivery order in a software defined network |
WO2016114701A1 (en) * | 2015-01-12 | 2016-07-21 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods and modules for managing packets in a software defined network |
US10608869B2 (en) * | 2017-03-20 | 2020-03-31 | Nicira, Inc. | Handling control-plane connectivity loss in virtualized computing environments |
US11968078B2 (en) * | 2017-07-19 | 2024-04-23 | Nicira, Inc. | Maintaining network membership when disconnected from a controller |
CN107920024B (zh) * | 2017-10-11 | 2020-08-14 | 中国电子科技集团公司第三十研究所 | 一种sdn控制器动态流表管理方法 |
CN113037599A (zh) * | 2019-12-24 | 2021-06-25 | 中兴通讯股份有限公司 | 一种报文处理的方法、设备及存储介质 |
CN113472644B (zh) * | 2021-07-12 | 2023-03-31 | 武汉绿色网络信息服务有限责任公司 | 路径寻址方法和网络业务系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040085954A1 (en) * | 2002-10-31 | 2004-05-06 | Giovanni Iacovino | Out-of-band signalling apparatus and method for an optical cross connect |
CN102714627A (zh) * | 2010-01-05 | 2012-10-03 | 日本电气株式会社 | 网络系统和网络冗余方法 |
CN102916887A (zh) * | 2012-10-23 | 2013-02-06 | 清华大学 | 基于带内虚通道的OpenFlow带外组网方法 |
US8448238B1 (en) * | 2013-01-23 | 2013-05-21 | Sideband Networks, Inc. | Network security as a service using virtual secure channels |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7535828B2 (en) | 2005-03-18 | 2009-05-19 | Cisco Technology, Inc. | Algorithm for backup PE selection |
JP4510751B2 (ja) * | 2005-12-02 | 2010-07-28 | 富士通株式会社 | ネットワーク障害検出装置 |
WO2011144495A1 (en) * | 2010-05-19 | 2011-11-24 | Telefonaktiebolaget L M Ericsson (Publ) | Methods and apparatus for use in an openflow network |
CN102651701B (zh) * | 2011-02-28 | 2016-03-09 | 腾讯科技(深圳)有限公司 | 建立音视频通讯连接的方法和装置 |
US8964569B2 (en) | 2011-07-04 | 2015-02-24 | Telefonaktiebolaget L M Ericsson (Publ) | Generic monitoring packet handling mechanism for OpenFlow 1.1 |
EP2803168B1 (en) * | 2012-01-09 | 2015-10-21 | Telefonaktiebolaget LM Ericsson (PUBL) | Network device control in a software defined network |
US8995277B2 (en) * | 2012-10-30 | 2015-03-31 | Telefonaktiebolaget L M Ericsson (Publ) | Method for dynamic load balancing of network flows on LAG interfaces |
EP2963869A4 (en) * | 2013-02-26 | 2016-09-28 | Nec Corp | COMMUNICATION SYSTEM, SWITCH, CONTROL APPARATUS, CONTROL CHANNEL CONFIGURATION METHOD AND PROGRAM |
-
2013
- 2013-08-23 CN CN201310371598.0A patent/CN104426789B/zh active Active
-
2014
- 2014-08-22 WO PCT/CN2014/084980 patent/WO2015024527A1/en active Application Filing
- 2014-08-22 EP EP14837485.3A patent/EP3036872A1/en not_active Withdrawn
- 2014-08-22 US US14/899,942 patent/US10091054B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040085954A1 (en) * | 2002-10-31 | 2004-05-06 | Giovanni Iacovino | Out-of-band signalling apparatus and method for an optical cross connect |
CN102714627A (zh) * | 2010-01-05 | 2012-10-03 | 日本电气株式会社 | 网络系统和网络冗余方法 |
CN102916887A (zh) * | 2012-10-23 | 2013-02-06 | 清华大学 | 基于带内虚通道的OpenFlow带外组网方法 |
US8448238B1 (en) * | 2013-01-23 | 2013-05-21 | Sideband Networks, Inc. | Network security as a service using virtual secure channels |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104836753A (zh) * | 2015-03-27 | 2015-08-12 | 清华大学 | Sdn数据平面带状态交换设备、系统及转发处理方法 |
CN104836753B (zh) * | 2015-03-27 | 2018-10-02 | 清华大学 | Sdn数据平面带状态交换设备、系统及转发处理方法 |
WO2016165263A1 (zh) * | 2015-04-13 | 2016-10-20 | 中兴通讯股份有限公司 | 路径的保护倒换处理方法、装置、系统及转发设备 |
CN106576108A (zh) * | 2015-04-30 | 2017-04-19 | 华为技术有限公司 | 通信系统中的通信方法和设备及系统 |
WO2016172926A1 (zh) * | 2015-04-30 | 2016-11-03 | 华为技术有限公司 | 通信系统中的通信方法和设备及系统 |
CN106576108B (zh) * | 2015-04-30 | 2020-05-08 | 华为技术有限公司 | 通信系统中的通信方法和设备及系统 |
WO2018001089A1 (zh) * | 2016-06-27 | 2018-01-04 | 中兴通讯股份有限公司 | 业务处理方法及装置、存储介质 |
CN107547597A (zh) * | 2016-06-27 | 2018-01-05 | 中兴通讯股份有限公司 | 业务处理方法及装置 |
CN107659500A (zh) * | 2016-07-25 | 2018-02-02 | 中国电信股份有限公司 | 流表获取方法及系统 |
CN108243047A (zh) * | 2016-12-27 | 2018-07-03 | 中兴通讯股份有限公司 | 一种业务切换方法、装置及业务切换系统 |
WO2018121485A1 (zh) * | 2016-12-27 | 2018-07-05 | 中兴通讯股份有限公司 | 业务切换方法、装置及业务切换系统 |
CN109327318B (zh) * | 2017-07-31 | 2021-09-28 | 上海层峰网络科技有限公司 | 一种sdn管理网络架构和建立sdn管理网络的方法 |
CN109327318A (zh) * | 2017-07-31 | 2019-02-12 | 杭州达乎科技有限公司 | Sdn管理网络架构、建立sdn管理网络及管理网络切换方法 |
WO2019085651A1 (zh) * | 2017-10-31 | 2019-05-09 | 中兴通讯股份有限公司 | 软件定义网络的设置方法、控制器、交换机及存储介质 |
CN109756797A (zh) * | 2017-11-07 | 2019-05-14 | 阿里巴巴集团控股有限公司 | 双上联方法、光网络管理设备以及光传输系统 |
US20200367318A1 (en) * | 2018-01-25 | 2020-11-19 | Ntt Docomo, Inc. | User apparatus and base station apparatus |
CN109120520B (zh) * | 2018-10-15 | 2021-03-12 | 迈普通信技术股份有限公司 | 一种故障处理方法和设备 |
CN109120520A (zh) * | 2018-10-15 | 2019-01-01 | 迈普通信技术股份有限公司 | 一种故障处理方法和设备 |
CN113726556A (zh) * | 2021-08-06 | 2021-11-30 | 国网电力科学研究院有限公司 | 边缘物联代理节点运维方法、系统、存储介质及计算设备 |
CN113726556B (zh) * | 2021-08-06 | 2024-05-31 | 国网电力科学研究院有限公司 | 边缘物联代理节点运维方法、系统、存储介质及计算设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2015024527A1 (en) | 2015-02-26 |
US20160156504A1 (en) | 2016-06-02 |
CN104426789B (zh) | 2017-08-11 |
EP3036872A1 (en) | 2016-06-29 |
US10091054B2 (en) | 2018-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104426789A (zh) | 软件定义网络中的转发设备控制方法及设备 | |
CN103534982B (zh) | 保护业务可靠性的方法、设备及网络虚拟化系统 | |
US10743355B2 (en) | Communication system and base station | |
CN101860491B (zh) | 聚合类链路双向转发检测方法及其设备 | |
EP2701342A1 (en) | Method and system for implementing elastic network interface and interconnection | |
US10136412B2 (en) | Communication system, communication apparatus, and control method and control apparatus thereof | |
CN103763207A (zh) | 软件定义网络中的带内控制连接建立方法及设备 | |
EP2961112B1 (en) | Message forwarding system, method and device | |
US9628324B2 (en) | Openflow switch and failure recovery method in openflow network | |
EP2911355B1 (en) | Method and device for flow path negotiation in link aggregation group | |
JP2008136013A (ja) | リングネットワークを構成する装置 | |
JP5987971B2 (ja) | 通信システム、スイッチ、制御装置、制御用チャネルの構築方法及びプログラム | |
CN103581164A (zh) | 用于在可冗余操作的工业通信网络中进行消息传输的方法和用于可冗余操作的工业通信网络的通信设备 | |
CN104125088A (zh) | Drni中同一端内系统之间交互信息的方法和系统 | |
CN104270309A (zh) | 一种ip ran设备下实现多跳bfd的方法 | |
CN105790988B (zh) | 操作维护管理功能的实现方法及装置 | |
JP2011193200A (ja) | 通信装置、通信システムおよび通信方法 | |
CN103532859B (zh) | 一种实现网络切换的方法、装置和多模终端 | |
CN103731303A (zh) | 一种纵向融合架构接口实现多活性实体检测的方法及设备 | |
Irawati et al. | Link aggregation control protocol on software defined network | |
CN104702509A (zh) | 一种隔离sdn协议报文和数据报文的方法及装置 | |
CN109076635A (zh) | 可冗余运行的工业通信系统、用于其运行的方法和无线电-用户站 | |
US8724478B2 (en) | Network device and network system | |
US9692636B2 (en) | Relay system and relay device | |
WO2016082436A1 (zh) | 一种业务混合集中处理方法和装置、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
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: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Applicant before: Huasan Communication Technology Co., Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |