CN103763207A - 软件定义网络中的带内控制连接建立方法及设备 - Google Patents

软件定义网络中的带内控制连接建立方法及设备 Download PDF

Info

Publication number
CN103763207A
CN103763207A CN201410043236.3A CN201410043236A CN103763207A CN 103763207 A CN103763207 A CN 103763207A CN 201410043236 A CN201410043236 A CN 201410043236A CN 103763207 A CN103763207 A CN 103763207A
Authority
CN
China
Prior art keywords
packet
forwarding unit
controller
message
vlan
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
Application number
CN201410043236.3A
Other languages
English (en)
Other versions
CN103763207B (zh
Inventor
王云毅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New H3C Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN201410043236.3A priority Critical patent/CN103763207B/zh
Publication of CN103763207A publication Critical patent/CN103763207A/zh
Application granted granted Critical
Publication of CN103763207B publication Critical patent/CN103763207B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提出软件定义网络中的带内控制连接建立方法及设备。方法包括:对于SDN中使能带内控制器的转发设备,该转发设备周期性地从自身各SDN协议端口向外发送二层SDN协议Hello报文,报文的目的MAC地址指向控制器;当转发设备接收到控制器发来的目的MAC地址为本转发设备MAC地址的单播二层SDN协议报文后,记录自身到控制器的二层带内接口;当转发设备接收到来自其它转发设备的目的MAC地址指向控制器的Hello报文后,通过二层带内接口将报文转发给控制器。本发明实现了转发设备与控制器自动建立带内控制连接。

Description

软件定义网络中的带内控制连接建立方法及设备
技术领域
本发明涉及软件定义网络(SDN,Software Defined Network)技术领域,尤其涉及软件定义网络中的带内控制连接建立方法及转发设备、控制器。
背景技术
为方便理解,首先给出如下说明:
SDN:SDN与传统网络的最大区别,是将控制平面和网络转发平面分离开来,网络转发平面将不再拥有控制功能,将控制平面交给独立于转发平面之外的操作系统,特性则基于操作系统进行定制。
开放流(OpenFlow):是一种SDN架构中定义控制器(Controller)和转发层之间的通信接口标准。OpenFlow允许直接访问和操作网络设备的转发平面,这些网络设备可能是物理上的,也可能是虚拟的。
OpenFlow的思想是分离控制平面和数据平面,二者之间使用标准的协议通信;数据平面采用基于流的方式进行转发。
OpenFlow网络由OpenFlow转发设备(如:OpenFlow Switch)和控制器(OpenFlow Controller)通过安全通道(Secure Channel)组成。
控制器(Controller):是OpenFlow架构中的控制平面。下发各种指令通过安全信道控制OpenFlow交换机(转发设备),用户可以通过编程自己定义控制平面从而定义整个网络。
流表:为Controller下发到OpenFlow交换机的硬件表项,通过不同的匹配域匹配不同的报文,并对这些报文进行各种处理。
带内连接:Controller不通过独立的控制网络,而是通过OpenFlow网络来控制OpenFlow交换机进行协议交互。
OpenFlow将网络控制功能单独分离出来并逻辑集中到控制软件上,以实现SDN中控制平面和转发平面的分离以及网络控制和管理的集中,是定义控制器和转发层的软件应用程序接口,可基于硬件来控制网络数据的转发。
OpenFlow控制器通过网络和OpenFlow交换机连接。所有OpenFlow协议报文都被同样的流程处理。
OpenFlow交换机无法自动带内发现组网内的控制器,而需要进行额外配置。OpenFlow控制器无法简单地获取带内组网的拓扑。所有的OpenFlow协议报文都以同样的流程接收并被处理,大量的packet-out报文会占用OpenFlow交换机的CPU资源并可能导致其它更重要的OpenFlow协议报文被丢弃无法处理。
发明内容
本发明提供SDN中的带内控制连接建立方法及转发设备、控制器,以实现转发设备与控制器自动建立带内控制连接。
本发明的技术方案是这样实现的:
一种软件定义网络SDN中的带内控制连接建立方法,该方法包括:
对于SDN中使能带内控制器的转发设备,该设备启动后,在本地生成第一流表项:目的MAC地址为预设标识地址,动作为输出到控制器;
转发设备周期性地从自身各SDN协议端口向外发送二层SDN协议Hello报文,报文的目的MAC地址为所述预设标识地址;
当转发设备接收到控制器发来的目的MAC地址为本转发设备MAC地址的单播二层SDN协议报文后,记录自身到控制器的二层带内接口;
当转发设备接收到来自其它转发设备的目的MAC地址为预设标识地址的二层SDN协议Hello报文后,按照第一流表项通过自身到控制器的二层带内接口将报文转发给控制器;
转发设备接收控制器下发的带内控制流表项,所述表项指示了从控制器到其它转发设备的二层单播报文在本转发设备上的转发端口,或者指示了从其它转发设备到控制器的二层单播报文在本转发设备上的转发端口;
转发设备接收到控制器发来的目的MAC地址为其它转发设备的单播二层SDN协议报文,按照控制器下发的带内控制流表项,将报文转发给其它转发设备,或者转发设备接收到其它转发设备发来的目的MAC地址为控制器的单播二层SDN协议报文,按照控制器下发的带内控制流表项,将报文转发给控制器。
一种软件定义网络SDN中的带内控制连接建立方法,该方法包括:
控制器接收直连转发设备发来的目的MAC地址为预设标识地址的Hello报文,从该报文学习到直连转发设备的MAC地址,并学习到本控制器到直连转发设备的带内组网拓扑,向直连转发设备返回单播二层SDN协议报文;
控制器接收直连转发设备发来的Packet-in报文,若从该报文中解析出目的MAC地址为预设标识地址的Hello报文,则从该Packet-in报文学习到该Hello报文的发送转发设备的下一跳转发设备到该发送转发设备的带内组网拓扑,并学习到分别应用在本控制器与该发送转发设备之间的每个转发设备上的带内控制流表项,将学习到的各带内控制流表项对应发送给每个转发设备,同时向发送转发设备返回单播二层SDN协议报文,其中,应用在任一转发设备上的带内控制流表项指示了从控制器到其它转发设备的报文在本转发设备上的转发端口,或者指示了从其它转发设备到控制器的报文在本转发设备上的转发端口。
一种软件定义网络SDN中的带内组网拓扑学习方法,该方法包括:
控制器接收直连转发设备发来的目的MAC地址为预设标识地址的Hello报文,从该报文学习到直连转发设备的MAC地址,并学习到本控制器到直连转发设备的带内组网拓扑,所述预设标识地址指向本控制器;
控制器接收直连转发设备发来的Packet-in报文,从该报文中解析出二层SDN协议Hello报文,若Hello报文的目的MAC地址为指向本控制器的预设标识地址,则从Hello报文的源MAC地址中获取Hello报文的发送设备的MAC地址,从Packet-in报文的源MAC地址中获取Hello报文的发送设备的下一跳设备的MAC地址,同时从Packet-in报文中获取所述发送设备接收所述下一跳设备报文的入接口,记录所述发送设备与所述下一跳设备的MAC地址、以及所述下一跳设备与所述发送设备接收所述下一跳设备的报文入接口之间的对应关系,将该对应关系作为所述下一跳设备到所述发送设备的带内组网拓扑。
一种软件定义网络SDN中的转发设备,该转发设备使能带内控制器,该转发设备包括:
第一流表项生成模块:启动后,在本地生成第一流表项:目的MAC地址为预设标识地址,动作为输出到控制器;
带内连接建立模块:周期性地从本设备各SDN协议端口向外发送二层SDN协议Hello报文,报文的目的MAC地址为所述预设标识地址;当接收到控制器发来的目的MAC地址为本转发设备MAC地址的单播二层SDN协议报文后,记录本设备到控制器的二层带内接口;
带内转发模块:当接收到来自其它转发设备的目的MAC地址为预设标识地址的Hello报文后,按照第一流表项生成模块中的第一流表项,通过带内连接建立模块记录的本设备到控制器的二层带内接口将报文转发给控制器;接收控制器下发的带内控制流表项,所述表项指示了从控制器到其它转发设备的二层单播报文在本转发设备上的转发端口,或者指示了从其它转发设备到控制器的二层单播报文在本转发设备上的转发端口;接收到控制器发来的目的MAC地址为其它转发设备的单播二层SDN协议Hello报文,按照控制器下发的带内控制流表项,将报文转发给其它转发设备,或者接收到其它转发设备发来的目的MAC地址为控制器的单播二层SDN协议报文,按照控制器下发的带内控制流表项,将报文转发给控制器。
一种软件定义网络SDN中的控制器,包括:
第一带内连接建立模块:接收直连转发设备发来的目的MAC地址为预设标识地址的Hello报文,从该报文学习到直连转发设备的MAC地址,并学习到本控制器到直连转发设备的带内组网拓扑,向直连转发设备返回单播二层SDN协议报文,所述预设标识地址指向本控制器;
第二带内连接建立模块:接收直连转发设备发来的Packet-in报文,若从该报文中解析出目的MAC地址为预设标识地址的Hello报文,则从该Packet-in报文学习到该Hello报文的发送转发设备的下一跳转发设备到该发送转发设备的带内组网拓扑,并学习到分别应用在本控制器与该发送转发设备之间的每个转发设备上的带内控制流表项,将学习到的各带内控制流表项对应发送给每个转发设备,同时向发送转发设备返回单播二层SDN协议报文,其中,应用在任一转发设备上的带内控制流表项指示了从控制器到其它转发设备的报文在本转发设备上的转发端口,或者指示了从其它转发设备到控制器的报文在本转发设备上的转发端口。
一种软件定义网络SDN中的控制器,包括:
带内组网拓扑学习模块,用于:
接收直连转发设备发来的目的MAC地址为预设标识地址的Hello报文,从该报文学习到直连转发设备的MAC地址,并学习到本控制器到直连转发设备的带内组网拓扑,所述预设标识地址指向本控制器;
接收直连转发设备发来的Packet-in报文,从该报文中解析出二层SDN协议Hello报文,若Hello报文的目的MAC地址为指向本控制器的预设标识地址,则从Hello报文的源MAC地址中获取Hello报文的发送设备的MAC地址,从Packet-in报文的源MAC地址中获取Hello报文的发送设备的下一跳设备的MAC地址,同时从Packet-in报文中获取所述下一跳设备到所述发送设备的出接口,记录所述下一跳设备的MAC地址、所述发送设备与所述下一跳设备到所述发送设备的出接口之间的对应关系,将该对应关系作为所述下一跳设备到所述发送设备的带内组网拓扑。
可见,本发明可以通过二层网络实现SDN中的转发设备和控制器自动建立带内控制连接,同时可以实现带内组网拓扑发现。
附图说明
图1为本发明实施例提供的SDN中的带内控制连接建立方法流程图;
图2为本发明又一实施例提供的SDN中的带内控制连接建立方法流程图;
图3为以Openflow为例,本发明又一实施例提供的SDN中的带内控制连接建立方法流程图;
图4为本发明应用示例图;
图5为以Openflow为例,本发明又一实施例提供的SDN中的带内控制连接建立方法流程图;
图6为本发明实施例提供的SDN中的带内组网拓扑学习方法流程图;
图7为本发明实施例提供的SDN中的转发设备的组成示意图;
图8为本发明实施例提供的SDN中的控制器的组成示意图。
具体实施方式
下面结合附图及具体实施例对本申请再作进一步详细的说明。
为清楚起见,首先对本发明中出现的以下术语进行解释:
Packet-in:转发设备将其接收到的报文封装在Packet-in报文内,并通过SDN控制链路将Packet-in报文发送到控制器,该报文会标示转发设备收到的报文的入端口。
Packet-out:控制器将报文封装在Packet-out报文内,并通过SDN控制链路将Packet-out报文发送到转发设备,并通过该报文告知转发设备如何处理Packet-out报文中封装的报文。
图1为本发明实施例提供的SDN中的带内控制连接建立方法流程图,如图1所示,其具体步骤如下:
步骤101:对于SDN中使能带内控制器的转发设备,该设备启动后,在本地生成第一流表项:目的MAC地址为预设标识地址,动作为输出到控制器。
步骤102:转发设备周期性地从自身各SDN协议端口向外发送二层SDN协议Hello报文,报文的目的MAC地址为所述预设标识地址。
步骤103:当转发设备接收到控制器发来的目的MAC地址为本转发设备MAC地址的单播二层SDN协议报文后,记录自身到控制器的二层带内接口。
步骤104:当转发设备接收到来自其它转发设备的目的MAC地址为预设标识地址的二层SDN协议Hello报文后,按照第一流表项通过自身到控制器的二层带内接口将报文转发给控制器。
实际应用中,当转发设备接收到来自其它转发设备的目的MAC地址为预设标识地址的二层SDN协议Hello报文之后,要先判断是否已记录自身到控制器的二层带内接口,若是,将该二层SDN协议Hello报文封装到Packet-in报文中,将该Packet-in报文按照第一流表项通过自身到控制器的二层带内接口将报文转发给控制器;否则,丢弃该二层SDN协议Hello报文。
步骤105:转发设备接收控制器下发的带内控制流表项,所述表项指示了从控制器到其它转发设备的二层单播报文在本转发设备上的转发端口,或者指示了从其它转发设备到控制器的二层单播报文在本转发设备上的转发端口。
步骤106:转发设备接收到控制器发来的目的MAC地址为其它转发设备的单播二层SDN协议报文,按照控制器下发的带内控制流表项,将报文转发给其它转发设备,或者转发设备接收到其它转发设备发来的目的MAC地址为控制器的单播二层SDN协议报文,按照控制器下发的带内控制流表项,将报文转发给控制器。
实际应用中,步骤102中,转发设备周期性地从自身各SDN协议端口向外发送二层SDN协议Hello报文可以为:对于自身的每个SDN协议端口,分别针对该端口使能的每个VLAN周期性地从该端口发送二层SDN协议Hello报文;
同时,步骤103中,当转发设备接收到控制器发来的目的MAC地址为本转发设备MAC地址的单播二层SDN协议报文可包括:转发设备接收到控制器发来的目的MAC地址为本转发设备MAC地址、且包含VLAN标识的单播二层SDN协议Hello报文和单播二层Packet-out报文,将Hello报文中的VLAN标识对应VLAN作为此后发送除Packet-out和Packet-in报文外的SDN协议报文所使用的VLAN,将Packet-out报文中的VLAN标识对应VLAN作为此后发送Packet-out和Packet-in报文所使用的VLAN。
另外,转发设备可周期性地针对Packet-out和Packet-in报文所使用的VLAN,以及除Packet-out和Packet-in报文外的SDN协议报文所使用的VLAN与控制器进行保活报文交互,若针对其中一个VLAN保活失败,则将该VLAN上的报文转移到另一VLAN上传输,并与控制器重新协商出一个替换VLAN,协商成功后,将保活失败的VLAN上的报文再转移到替换VLAN上传输。
图2为本发明又一实施例提供的SDN中的带内控制连接建立方法流程图,如图2所示,其具体步骤如下:
步骤201:控制器接收直连转发设备发来的目的MAC地址为预设标识地址的Hello报文,从该报文学习到直连转发设备的MAC地址,并学习到本控制器到直连转发设备的带内组网拓扑,向直连转发设备返回单播二层SDN协议报文。
步骤202:控制器接收直连转发设备发来的Packet-in报文,若从该报文中解析出目的MAC地址为预设标识地址的Hello报文,则从该Packet-in报文学习到该Hello报文的发送转发设备的下一跳转发设备到该发送转发设备的带内组网拓扑,并学习到分别应用在本控制器与该发送转发设备之间的每个转发设备上的带内控制流表项,将学习到的各带内控制流表项对应发送给每个转发设备,同时向发送转发设备返回单播二层SDN协议报文,其中,应用在任一转发设备上的带内控制流表项指示了从控制器到其它转发设备的报文在本转发设备上的转发端口,或者指示了从其它转发设备到控制器的报文在本转发设备上的转发端口。
实际应用中,步骤202中,控制器学习到分别应用在本控制器与该发送转发设备之间的每个转发设备上的带内控制流表项可包括:
控制器根据已学习到的带内组网拓扑,确定从所述Packet-in报文中解析出的Hello报文在发送转发设备与本控制器之间的转发路径,且,若该确定的转发路径优于自身已学习到的该发送转发设备与本控制器之间的所有其它转发路径,则根据该确定的转发路径学习到分别应用在本控制器与该发送转发设备之间的每个转发设备上的带内控制流表项。
实际应用中,步骤201中,控制器接收直连转发设备发来的目的MAC地址为预设标识地址的Hello报文可包括:控制器收到该转发设备发来的针对多个VLAN的所述Hello报文,则从该多个VLAN中选择两个VLAN;
且,步骤201中,控制器向直连转发设备返回单播二层SDN协议报文可为:
控制器将选择的一个VLAN的标识携带在单播二层SDN协议Hello报文中,将另一个VLAN的标识携带在单播二层SDN协议Packet-out报文中发送给直连转发设备,以便:此后直连转发设备使用Hello报文中的VLAN标识对应VLAN发送除Packet-out和Packet-in报文之外的SDN协议报文,使用Packet-out报文中的VLAN标识对应VLAN发送Packet-out和Packet-in报文。
步骤202中,控制器接收直连转发设备发来的Packet-in报文,若从该报文中解析出目的MAC地址为预设标识地址的Hello报文可包括:
控制器接收直连转发设备发来的多个Packet-in报文,从该多个Packet-in报文中都解析出目的MAC地址为预设标识地址的Hello报文,且该多个Hello报文的源MAC地址相同,且该多个Hello报文分别携带不同的VLAN标识,则从该多个VLAN中选择两个VLAN;
且,步骤202中,控制器向发送转发设备返回单播二层SDN协议报文可为:
控制器将选择的一个VLAN的标识携带在单播二层SDN协议Hello报文中,将另一个VLAN的标识携带在单播二层SDN协议Packet-out报文中发送给发送转发设备,以便:此后发送转发设备使用Hello报文中的VLAN标识对应VLAN发送除Packet-out和Packet-in报文之外的SDN协议报文,使用Packet-out报文中的VLAN标识对应VLAN发送Packet-out和Packet-in报文。
Openflow协议是SDN协议的常见协议,以下以Openflow协议为例进行说明:
图3为以Openflow为例,本发明又一实施例提供的SDN中的带内控制连接建立方法流程图,本实施例中,OpenFlow交换机与Controller直连,如图3所示,其具体步骤如下:
步骤301:使能带内控制器的OpenFlow交换机启动后自动生成如下低优先级流表项:
流表项A:目的MAC地址为预设的指向Controller的标识地址,如:OpenFlow二层控制网络组播MAC地址,动作为output到Controller;
流表项B:目的MAC地址为本交换机,动作为output到本地(local),即上送本交换机的中央处理单元(CPU,Central Processing Unit)。
步骤302:OpenFlow交换机周期性地从自身各OpenFlow协议端口向外发送二层OpenFlow协议Hello报文,报文的源MAC地址为本交换机,目的MAC地址为设定的OpenFlow二层控制网络组播MAC地址。
图4为本发明应用示例图,如图4中的Switch A,周期性地从端口A1、A2、A3向外发送二层OpenFlow协议Hello报文,报文的目的MAC地址为设定的OpenFlow二层控制网络组播MAC地址。
步骤303:Controller收到OpenFlow交换机发送的二层Hello报文,从该报文学习到OpenFlow交换机的MAC地址,同时学习到本Controller直连到该OpenFlow交换机的带内组网拓扑,并向该交换机发送单播二层OpenFlow协议报文,报文的源MAC地址为本Controller的MAC地址,目的MAC地址为该交换机的MAC地址。
这里,Controller学习到本Controller直连到该OpenFlow交换机的带内组网拓扑具体为:学习到本Controller直连到该OpenFlow交换机的端口,该端口即为本步骤中接收到OpenFlow交换机发来的二层Hello报文的端口。如图4,Controller从端口M收到Switch A发送的目的MAC地址为设定的OpenFlow二层控制网络组播MAC地址的Hello报文,学习到:本Controller通过端口M直连到Switch A。
步骤304:OpenFlow交换机收到Controller发送的单播二层OpenFlow协议报文后,建立MAC表项:源MAC地址为Controller的MAC地址,目的MAC地址为本交换机的MAC地址,入端口为该单播二层OpenFlow协议报文的入端口,并与Controller协商出OpenFlow协议版本,后续使用该版本进行OpenFlow协议交互。
如图4中的Switch A,Switch A收到Controller发来的单播二层OpenFlow协议报文后,建立的MAC表项为:源MAC地址为Controller的MAC地址,目的MAC地址为Switch A的MAC地址,入端口为A1,则此后Switch A通过端口A1与Controller进行带内控制交互。
其中,步骤302中,OpenFlow交换机周期性地从自身各OpenFlow协议端口向外发送二层OpenFlow协议Hello报文时,可以针对端口使能的每个VLAN分别发出一个Hello报文;同时,步骤303中,Controller可以在Hello报文携带的所有VLAN中选择两个VLAN,使用其中一个VLAN向OpenFlow交换机发送单播二层Hello报文,使用另一个VLAN向OpenFlow交换机发送单播二层Packet-out报文;步骤304中,OpenFlow交换机收到单播二层Hello报文后,将报文中的VLAN作为后续发送除Packet-out和Packet-in报文外的OpenFlow协议报文使用的VLAN,收到单播二层Packet-out报文后,将报文中的VLAN作为后续发送Packet-out和Packet-in报文使用的VLAN。
且,OpenFlow交换机和Controller针对上述两VLAN进行周期性保活报文交互,若针对其中任一个VLAN,未能在预设保活周期内保活成功,则OpenFlow交换机从与Controller连接的端口上发送携带除保活失败VLAN的其它所有VLAN的标识的OpenFlow协议报文,以便Controller在这些VLAN中选择一个VLAN用于代替保活失败的VLAN。若两个VLAN同时在预设保活周期内保活失败,则OpenFlow交换机进入fail-open模式,并从与Controller连接的端口上发送携带除保活失败VLAN的其它所有VLAN的标识的OpenFlow协议报文,以便Controller在这些VLAN中重新选择两个VLAN用于代替保活失败的两个VLAN。
图5为以Openflow为例,本发明又一实施例提供的SDN中的带内连接建立方法流程图,本实施例中,OpenFlow交换机与Controller间接相连,即OpenFlow交换机与Controller之间还连接了一个或多个OpenFlow交换机,如图5所示,其具体步骤如下:
步骤501:使能带内控制器的OpenFlow交换机启动后自动生成如下低优先级流表项:
流表项A:目的MAC地址为预设的指向Controller的标识地址,如:OpenFlow二层控制网络组播MAC地址,动作为output到Controller;
流表项B:目的MAC地址为本交换机,动作为output到本地(local),即上送本交换机的中央处理单元(CPU,Central Processing Unit)
步骤502:OpenFlow交换机周期性地从自身各OpenFlow协议端口向外发送二层OpenFlow协议Hello报文,报文的源MAC地址为本交换机,目的MAC地址为设定的OpenFlow二层控制网络组播MAC地址。
如图4中的Switch B,周期性地从端口B1、B2向外发送Hello报文,报文目的MAC地址为OpenFlow二层控制网络组播MAC地址。
步骤503:当其它OpenFlow交换机收到该Hello报文后,发现该报文与本地的流表项A匹配上,则若本交换机已经与Controller建立了二层带内连接,则根据流表项A中的动作,将该报文封装到packet-in报文中并通过二层带内连接转发到Controller。
其中,Hello报文到达下一跳OpenFlow交换机时,下一跳OpenFlow交换机发现报文与本地的流表项A匹配上,且本交换机已经与Controller建立了二层带内连接,则将Hello报文封装到packet-in报文中,packet-in报文的源MAC地址为该下一跳OpenFlow交换机的MAC地址,目的MAC地址为Hello报文的目的MAC地址(即OpenFlow二层控制网络组播MAC地址),同时,packet-in报文中封装了Hello报文在该下一跳OpenFlow交换机上的入端口。
如图4中,设Switch B从B1口发出的Hello报文到达Switch A后,Switch A会将Hello报文封装到packet-in报文中,并根据步骤104中建立的MAC表项中的入端口A1,将packet-in报文从A1口转发到Controller。
若该其它OpenFlow交换机还未与Controller建立二层带内连接,即未查找到Controller的MAC地址对应的MAC表项,则丢弃该Hello报文。
若Hello报文的发送者与Controller之间要经过多个OpenFlow交换机,则发送者的下一跳OpenFlow交换机发出的Packet-in报文到达其它OpenFlow交换机后,该其它OpenFlow交换机会将报文与本地流表项A匹配上,此时,若已与Controller建立二层带内连接,则会查找到Controller的MAC地址对应的MAC表项,则根据该表项将报文转发出去,否则,丢弃该Packet-in报文。
步骤504:Controller收到该Packet-in报文后,从该报文中解析出Hello报文,从Hello报文中学习到该Hello报文的发送者的MAC地址,同时学习到该Hello报文的发送者的下一跳OpenFlow交换机的MAC地址,以及该Hello报文的发送者的下一跳OpenFlow交换机到该发送者的出端口,即学习到了Hello报文的发送者的下一跳OpenFlow交换机到该发送者的带内组网拓扑。
步骤505:Controller根据已学习到的带内组网拓扑以及该Packet-in报文,学习到分别应用在本Controller与发送者之间的每个OpenFlow交换机上的带内控制流表项,将学习到的各带内控制流表项分别发送给对应的各转发设备,同时向发送者发送单播二层OpenFlow协议报文,报文的源MAC地址为本Controller的MAC地址,目的MAC地址为发送者的MAC地址。
带内控制流表项主要指示了从Controller到发送者所经过的带内转发端口,以及从发送者到Controller所经过的带内转发端口,每个转发端口分别位于Controller与发送者之间的一个OpenFlow交换机上。
带内控制流表项的建立主要依赖于Controller从接收到的所有包含目的MAC地址为设定的OpenFlow二层控制网络组播MAC地址的Packet-in报文学习到的带内组网拓扑。由于该Packet-in报文包含了Hello报文的发送者的下一跳到该发送者的直连端口,因此,随着各OpenFlow交换机逐层与Controller建立连接,最终Controller会学习到整个带内组网拓扑,这里的逐层指的是,与Controller直连的OpenFlow交换机最先与Controller建立连接,此时,Controller学习到本Controller与各直连OpenFlow交换机(设为第一层交换机)之间的带内组网拓扑,然后,与第一层交换机直连的OpenFlow交换机(设为第二层交换机)通过第一层交换机与Controller建立连接,Controller学习到第一层交换机与第二层交换机之间的带内组网拓扑,然后,与第二层交换机直连的OpenFlow交换机(设为第三层交换机)通过第二层交换机与Controller建立连接,Controller学习到第二层交换机与第二层交换机之间的带内组网拓扑,依此类推,直到所有交换机与Controller建立连接,Controller学习到整个带内组网拓扑。
这里,需要说明的是,由于Hello报文的发送者到Controller之间可能存在多条路径,因此,Controller可能会收到针对同一发送者的多个Packet-in报文,该多个Packet-in报文中的Hello报文的目的MAC地址都为预设的开放流二层控制网络组播MAC地址,且源MAC地址相同,此时Controller在接收到一个Packet-in报文后,会根据从该报文学习到的发送者到下一跳转发设备的带内组网拓扑以及之前学习到的带内组网拓扑,确定该Packet-in报文中的Hello报文在发送者与本Controller之间的转发路径,并根据已学习到的带内组网拓扑判断发送者与本Controller之间是否还有其它转发路径,若有,且当前Hello报文对应的转发路径优于所有其它转发路径,则根据当前Packet-in报文学习到分别应用在本Controller与发送者之间的每个转发设备上的带内控制流表项,将各带内控制流表项分别下发给对应的转发设备。
步骤506:发出Hello报文的OpenFlow交换机收到Controller发送的单播二层OpenFlow协议报文后,建立MAC表项:源MAC地址为Controller的MAC地址,目的MAC地址为本交换机的MAC地址,入端口为该单播二层OpenFlow协议报文的入端口,并与Controller协商出OpenFlow协议版本,后续使用该版本进行OpenFlow协议交互。
如图4中的Switch B,Switch B收到Switch A转发的来自Controller的单播二层OpenFlow协议报文后,建立的MAC表项为:源MAC地址为Controller的MAC地址,目的MAC地址为Switch B的MAC地址,入端口为B1,则此后Switch A通过端口B1与Controller进行带内控制交互。
其中,由于Controller与Hello报文的发送者之间还有其它OpenFlow交换机,此时,其它OpenFlow交换机收到Controller发给发送者的单播二层OpenFlow协议报文后,会查找本地带内控制流表项,匹配到源MAC地址为Controller的MAC地址,目的MAC地址为发送者的MAC地址的表项,根据该表项的动作将Hello报文转发出去。
其中,步骤502中,OpenFlow交换机周期性地从自身各OpenFlow协议端口向外发送二层OpenFlow协议Hello报文时,可以针对端口使能的每个VLAN分别发出一个Hello报文;同时,步骤505中,Controller可以在Hello报文携带的所有VLAN中选择两个VLAN,使用其中一个VLAN向OpenFlow交换机发送单播二层Hello报文,使用另一个VLAN向OpenFlow交换机发送单播二层Packet-out报文;步骤506中,OpenFlow交换机收到单播二层Hello报文后,将报文中的VLAN作为后续发送除Packet-out和Packet-in报文外的OpenFlow协议报文使用的VLAN,收到单播二层Packet-out报文后,将报文中的VLAN作为后续发送Packet-out和Packet-in报文使用的VLAN。
图6为本发明实施例提供的SDN中的带内组网拓扑学习方法流程图,如图6所示,其具体步骤如下:
步骤601:控制器接收直连转发设备发来的目的MAC地址为预设标识地址的Hello报文,从该报文学习到直连转发设备的MAC地址,并学习到本控制器到直连转发设备的带内组网拓扑,所述预设标识地址指向本控制器。
步骤602:控制器接收直连转发设备发来的Packet-in报文,从该报文中解析出二层SDN协议Hello报文,若Hello报文的目的MAC地址为指向本控制器的预设标识地址,则从Hello报文的源MAC地址中获取Hello报文的发送设备的MAC地址,从Packet-in报文的源MAC地址中获取Hello报文的发送设备的下一跳设备的MAC地址,同时从Packet-in报文中获取所述发送设备接收所述下一跳设备报文的入接口,记录所述发送设备与所述下一跳设备的MAC地址、以及所述下一跳设备与所述发送设备接收所述下一跳设备的报文入接口之间的对应关系,将该对应关系作为所述下一跳设备到所述发送设备的带内组网拓扑。
以下给出本发明的应用示例:
如图4所示,OpenFlow交换机:Switch A~D使能带内控制器,其中,Switch A和Controller直连,Switch B、Switch C、Switch D和Controller间接相连。
首先,Switch A~D启动后,自动生成如下低优先级流表项:
流表项A:目的MAC地址为设定的OpenFlow二层控制网络组播MAC地址,动作为output到Controller;
流表项B:目的MAC地址为本交换机的MAC地址,动作为output到本地(local)。
以下给出Switch A~D与Controller建立连接的过程:
一)对于Switch A
Switch A周期性地从自身的各OpenFlow协议端口,即A1、A2、A3端口向外发送二层OpenFlow协议Hello报文,报文的源MAC地址为自身的MAC地址,目的MAC地址为设定的OpenFlow二层控制网络组播MAC地址;
Switch B、Switch C收到Switch A发送的二层Hello报文后,根据报文的目的MAC地址匹配到流表项A,但是由于都还未与Controller建立连接,即未查找到Controller的MAC地址对应的MAC表项,因此丢弃该报文;
Controller收到Switch A发送的二层Hello报文后,学习到Switch A的MAC地址,同时学习到本Controller到Switch A的带内组网拓扑:本Controller通过端口M直连到Switch A,并向Switch A发送单播二层OpenFlow协议报文,报文的源MAC地址为Controller的MAC地址,目的MAC地址为Switch A的MAC地址;
Switch A收到Controller发送的单播二层OpenFlow协议报文后,生成MAC表项:源MAC地址为Controller的MAC地址,目的MAC地址为Switch A的MAC地址,入端口为A1,并与Controller协商OpenFlow协议版本,此后使用协商出的版本进行OpenFlow协议交互。
后续,当Switch A发送目的MAC地址为Controller的MAC地址,源MAC地址为Switch A的MAC地址的OpenFlow协议报文时,根据建立的MAC表项从A1口发出该报文,实现了与Controller的带内控制交互。
二)对于Switch B(设定Switch A已通过上述过程一)与Controller建立连接)
Switch B周期性地从自身的各OpenFlow协议端口,即端口B1、B2向外发送二层OpenFlow协议Hello报文,报文的目的MAC地址为设定的OpenFlow二层控制网络组播MAC地址;
Switch C收到Switch B发送的二层Hello报文后,根据报文的目的MAC地址匹配到流表项A,但是由于自身还未与Controller建立二层带内连接,即未查找到Controller的MAC地址对应的MAC表项,因此丢弃该报文;
Switch A收到Switch B发送的二层Hello报文后,根据报文的目的MAC地址匹配到流表项A,按照流表项A的动作:output到Controller,先将hello报文封装到packet-in报文中,packet-in报文的源MAC地址为Switch A的MAC地址,目的MAC地址为Controller的MAC地址,且携带入端口A2,然后根据一)中建立的MAC表项:源MAC地址为Controller的MAC地址,目的MAC地址为Switch A的MAC地址,入端口为A1,将Packet-in报文从A1口通过二层带内连接转发到Controller;
Controller收到Switch A发送的Packet-in报文后,从报文中解析出Switch B发送的Hello报文,从Hello报文中学习到Switch B的MAC地址,从Packet-in报文中学习到Hello报文在Switch A上的入端口A2,向Switch A下发流表项C和D,其中,流表项C:优先级高于流表项A,源MAC地址是Switch B的MAC地址,目的MAC地址是Controller的MAC地址,入端口是A2,动作为从A1口转发;流表项D:优先级高于流表项A,源MAC地址是Controller的MAC地址,目的MAC地址是Switch B的MAC地址,入端口是A1,动作为从A2口转发;同时,Controller学习到Switch A到Switch B的带内组网拓扑:Switch A通过端口A2直连到Switch B;
然后,Controller向Switch B发送单播二层OpenFlow协议报文,报文的源MAC地址为Controller的MAC地址,目的MAC地址为Switch B的MAC地址;Switch A收到该Hello报文,根据流表项D转发到Switch B,Switch B收到该单播二层OpenFlow协议报文,生成MAC表项:源MAC地址为Controller的MAC地址,目的MAC地址为Switch B的MAC地址,入端口为B1,并与Controller协商OpenFlow协议版本,此后使用协商出的版本进行OpenFlow协议交互。
后续,当Switch B发送目的MAC地址为Controller的MAC地址,源MAC地址为Switch B的MAC地址的OpenFlow协议报文时,根据建立的MAC表项从B1口发出该报文,当该报文到达Switch A后,Switch A根据流表项C进行转发,实现了与Controller的带内控制交互。
三)对于Switch C(设定Switch A和Switch B已与Controller建立连接)
Switch C周期性地从自身的各OpenFlow协议端口,即端口C1、C2、C3向外发送二层OpenFlow协议Hello报文,报文的目的MAC地址为OpenFlow二层控制网络组播MAC地址;
Switch D收到Switch C发送的二层Hello报文后,根据报文的目的MAC地址匹配到流表项A,但由于自身还未与Controller建立二层带内连接,即未查找到Controller的MAC地址对应的MAC表项,因此丢弃该报文;
Switch A收到Switch C发送的二层Hello报文后,根据报文的目的MAC地址匹配到流表项A,按照流表项A的动作:output到Controller,先将Hello报文封装到Packet-in报文中,packet-in报文的源MAC地址为Switch A的MAC地址,目的MAC地址为Controller的MAC地址,且携带入端口A3,然后根据一)中建立的MAC表项:源MAC地址为Controller的MAC地址,目的MAC地址为Switch A的MAC地址,入端口为A1,将Packet-in报文从A1口通过二层带内连接转发到Controller;
Switch B收到Switch C发送的二层Hello报文后,根据报文的目的MAC地址匹配到流表项A,按照流表项A的动作:output到Controller,先将hello报文封装为Packet-in报文,packet-in报文的源MAC地址为Switch B的MAC地址,目的MAC地址为Controller的MAC地址,且携带入端口B2,然后根据二)中建立的MAC表项:源MAC地址为Controller的MAC地址,目的MAC地址为Switch B的MAC地址,入端口为B1,将Packet-in报文从B1口转发到Switch A,Switch A接收到该Packet-in报文,根据报文的目的MAC地址查找到对应的MAC表项,直接从A1口转发到Controller;
Controller收到Switch A和Switch B发来的packet-in报文后,从该两报文中解析出Switch C发来的Hello报文,得知该两Hello报文为同一Switch,即Switch C发来的,同时根据该两Packet-in报文的源MAC地址,得知该两Hello报文分别由Switch A和Switch B转发,则根据一)和二)中学习到的带内组网拓扑:本Controller通过端口M直连到Switch A,Switch A通过端口A2直连到Switch B,得知Switch C与本Controller之间的报文通过SwitchA转发更合适;
Controller对Switch A发来的Packet-in报文进行解析,根据该报文中的Hello报文学习到Switch C的MAC地址,根据该Packet-in报文学习到该Hello报文在Switch A上的入端口A3;同时学习到Switch A到Switch C的带内组网拓扑:Switch A通过端口A3直连到Switch C;同时,Controller对Switch B发来的Packet-in报文进行解析,学习到Switch B到Switch C的带内组网拓扑:Switch B通过端口B2直连到Switch C;
Controller向Switch A下发流表项E和F,其中,流表项E:优先级高于流表项A,源MAC地址是Switch C的MAC地址,目的MAC地址是Controller的MAC地址,入端口是A3,动作为从A1口转发;流表项F:优先级高于流表项A,源MAC地址是Controller的MAC地址,目的MAC地址是Switch C的MAC地址,入端口是A1,动作为从A3口转发;
同时,Controller向Switch C发送单播二层OpenFlow协议报文,报文的源MAC地址为Controller的MAC地址,目的MAC地址为Switch C的MAC地址;Switch A收到该Hello报文,根据流表项F转发到Switch C,Switch C收到该报文,生成MAC表项:源MAC地址为Controller的MAC地址,目的MAC地址为Switch C的MAC地址,入端口为C1,并与Controller协商OpenFlow协议版本,此后使用协商出的版本进行OpenFlow协议交互;
后续,当Switch C发送目的MAC地址为Controller的MAC地址,源MAC地址为Switch C的MAC地址的OpenFlow协议报文时,根据建立的MAC表项从C1口发出该报文,当该报文到达Switch A后,Switch A根据流表项E转发该报文。
四)对于Switch D(设定Switch A、B、C已与Controller建立连接)
Switch D周期性地从自身的各OpenFlow协议端口,即端口D1向外发送二层OpenFlow协议Hello报文,报文的目的MAC地址为OpenFlow二层控制网络组播MAC地址;
Switch C收到Switch D发送的二层Hello报文后,根据报文的目的MAC地址匹配到流表项A,按照流表项A的动作:output到Controller,先将hello报文封装到Packet-in报文中,packet-in报文的源MAC地址为Switch C的MAC地址,目的MAC地址为Controller的MAC地址,且携带入端口C3,然后根据三)中建立的MAC表项:源MAC地址为Controller的MAC地址,目的MAC地址为Switch C的MAC地址,入端口为C1,将Packet-in报文从C1口通过带内链路转发到Switch A,Switch A接收到该Packet-in报文,根据报文的目的MAC地址,直接从A1口通过带内链路转发到Controller;
Controller收到Switch C发来的packet-in报文后,从报文的Hello报文中解析出Switch D的MAC地址,从Packet-in报文的源MAC地址解析出Switch C的MAC地址,根据一)、三)中学习到的带内组网拓扑:本Controller通过端口M直连到Switch A,Switch A通过端口A3直连到SwitchC,得知:Switch D需要通过Switch C、A连接到本Controller;Controller从Packet-in报文中解析出Hello报文在Switch C上的入端口C3;同时,Controller从Packet-in报文学习到Switch C到Switch D的带内组网拓扑:Switch C通过端口C3直连到Switch D;
Controller向Switch A下发流表项G和H,其中,流表项G:优先级高于流表项A,源MAC地址是Switch D的MAC地址,目的MAC地址是Controller的MAC地址,入端口是A3,动作为从A1口转发;流表项H:优先级高于流表项A,源MAC地址是Controller的MAC地址,目的MAC地址是Switch D的MAC地址,入端口是A1,动作为从A3口转发(流表项G、H的建立需要依赖Controller、Switch A、Switch C之间的带内组网拓扑);
同时,Controller向Switch C下发流表项C和D,其中,流表项C:源MAC地址是Switch D的MAC地址,目的MAC地址是Controller的MAC地址,入端口是C3,动作为从C1口转发;流表项D:源MAC地址是Controller的MAC地址,目的MAC地址是Switch D的MAC地址,入端口是C1,动作为从C3口转发;
这里,需要说明的是,由于每个Switch都会周期性地从自身的各OpenFlow协议端口向外发送目的MAC地址为设定的OpenFlow二层控制网络组播MAC地址的二层OpenFlow协议Hello报文,因此,最终Controller会学习到整个OpenFlow网络的带内组网拓扑。例如:对于Switch C通过端口C1直连到Switch A这个带内组网拓扑,是在Switch A、C与Controller建立连接后,Switch A通过端口A3发出的目的MAC地址为设定的OpenFlow二层控制网络组播MAC地址的二层OpenFlow协议Hello报文到达Switch C后,Switch C将该Hello报文封装到Packet-in报文中,该Packet-in报文的源MAC地址为Switch C的MAC地址,目的MAC地址为Controller的MAC地址,且包含了入端口C1,再根据三)中建立的MAC表项,将该报文通过端口C1再发送给Switch A,Switch A收到该Packet-in报文后,再根据一)中建立的MAC表项通过端口A1发送给Controller,这样Controller就从该Packet-in报文学习到了:Switch C通过端口C1直连到Switch A。
同时,Controller向Switch D发送单播二层OpenFlow协议报文,报文的源MAC地址为Controller的MAC地址,目的MAC地址为Switch D的MAC地址;Switch A收到该Hello报文,根据流表项H转发到Switch C,Switch C收到该报文,根据流表项D转发到Switch D,Switch D根据该报文生成MAC表项:源MAC地址为Controller的MAC地址,目的MAC地址为Switch D的MAC地址,入端口为D1。
后续,当Switch D发送目的MAC地址为Controller的MAC地址,源MAC地址为Switch D的MAC地址的OpenFlow协议报文时,根据建立的MAC表项从D1口发出该报文,并通过Switch C和Switch A的流表项转发,实现了与Controller的带内控制交互。
此时,Switch A生成的带内控制流表项如表1所示,其中,备注不属于流表项内容:
Figure BDA0000463718390000221
Figure BDA0000463718390000231
表1Switch A生成的带内控制流表项
图7为本发明实施例提供的SDN中的转发设备的组成示意图,该转发设备使能带内控制器,如图7所示,该转发设备包括:第一流表项生成模块、带内连接建立模块和带内转发模块,其中:
第一流表项生成模块:启动后,在本地生成第一流表项:目的MAC地址为预设的指向控制器的标识地址,如:开放流二层控制网络组播MAC地址,动作为输出到控制器。
带内连接建立模块:周期性地从本设备各开放流协议端口向外发送二层开放流协议Hello报文,报文的目的MAC地址为第一流表项生成模块中的预设的开放流二层控制网络组播MAC地址;当接收到控制器发来的目的MAC地址为本转发设备MAC地址的单播二层开放流协议报文后,确认与控制器建立二层带内连接,记录本设备到控制器的二层带内接口。
带内转发模块:当接收到来自其它转发设备的目的MAC地址为预设的开放流二层控制网络组播MAC地址的Hello报文后,按照第一流表项生成模块中的第一流表项,通过带内连接建立模块记录的本设备到控制器的二层带内接口将报文转发给控制器;接收控制器下发的带内控制流表项,所述表项指示了从控制器到其它转发设备的二层单播报文在本转发设备上的转发端口,或者指示了从其它转发设备到控制器的二层单播报文在本转发设备上的转发端口;接收到控制器发来的目的MAC地址为其它转发设备的单播二层开放流协议Hello报文,按照控制器下发的带内控制流表项,将报文转发给其它转发设备,或者接收到其它转发设备发来的目的MAC地址为控制器的单播二层开放流协议报文,按照控制器下发的带内控制流表项,将报文转发给控制器。
其中,带内转发模块接收到来自其它转发设备的目的MAC地址为预设的开放流二层控制网络组播MAC地址的Hello报文后,通过带内连接建立模块记录的本设备到控制器的二层带内接口将报文转发给控制器包括:
转发设备判断是否已记录本设备到控制器的二层带内接口,若是,将该Hello报文封装到Packet-in报文中,将该Packet-in报文通过二层带内连接转发给控制器;否则,丢弃该Hello报文。
其中,带内连接建立模块周期性地从本设备各开放流协议端口向外发送二层开放流协议Hello报文为:
对于本设备的每个开放流协议端口,分别针对该端口使能的每个VLAN周期性地从该端口发送一个二层开放流协议Hello报文;
且,所述带内连接建立模块接收到控制器发来的目的MAC地址为本转发设备MAC地址的单播二层开放流协议报文包括:
接收到控制器发来的目的MAC地址为本转发设备MAC地址、且包含VLAN标识的单播二层开放流协议Hello报文和单播二层Packet-out报文,将Hello报文中的VLAN标识对应VLAN作为此后发送除Packet-out和Packet-in报文外的开放流协议报文所使用的VLAN,将Packet-out报文中的VLAN标识对应VLAN作为此后发送Packet-out和Packet-in报文所使用的VLAN。
其中,带内连接建立模块将Packet-in报文中的VLAN标识对应VLAN作为此后发送Packet-out和Packet-in报文所使用的VLAN之后进一步包括:
周期性地针对Packet-out和Packet-in报文所使用的VLAN,以及除Packet-out和Packet-in报文外的开放流协议报文所使用的VLAN与控制器进行保活报文交互,若针对其中一个VLAN保活失败,则将该VLAN上的报文转移到另一VLAN上传输,并与控制器重新协商出一个替换VLAN,协商成功后,将保活失败的VLAN上的报文再转移到替换VLAN上传输。
图8为本发明实施例提供的SDN中的控制器的组成示意图,如图8所示,其主要包括:第一带内连接建立模块和第二带内连接建立模块,其中:
第一带内连接建立模块:接收直连转发设备发来的目的MAC地址为预设的指向本控制器的标识地址,如:开放流二层控制网络组播MAC地址的Hello报文,从该报文学习到直连转发设备的MAC地址,并学习到本控制器到直连转发设备的带内组网拓扑,向直连转发设备返回单播二层开放流协议报文。
第二带内连接建立模块:接收直连转发设备发来的Packet-in报文,若从该报文中解析出目的MAC地址为预设的开放流二层控制网络组播MAC地址的Hello报文,则从该Packet-in报文学习到该Hello报文的发送转发设备的下一跳转发设备到该发送转发设备的带内组网拓扑,并学习到分别应用在本控制器与该发送转发设备之间的每个转发设备上的带内控制流表项,将学习到的各带内控制流表项对应发送给每个转发设备,同时向发送转发设备返回单播二层开放流协议报文,其中,应用在任一转发设备上的带内控制流表项指示了从控制器到其它转发设备的报文在本转发设备上的转发端口,或者指示了从其它转发设备到控制器的报文在本转发设备上的转发端口。
其中,第二带内连接建立模块从该Packet-in报文学习到分别应用在本控制器与该发送转发设备之间的每个转发设备上的带内控制流表项包括:
根据已学习到的带内组网拓扑,确定从所述Packet-in报文中解析出的Hello报文在发送转发设备与本控制器之间的转发路径,且,若该确定的转发路径优于已学习到的该发送转发设备与本控制器之间的所有其它转发路径,则根据该确定的转发路径学习到分别应用在本控制器与该发送转发设备之间的每个转发设备上的带内控制流表项。
其中,第一带内连接建立模块接收直连转发设备发来的目的MAC地址为预设的开放流二层控制网络组播MAC地址的Hello报文包括:
收到该转发设备发来的针对多个VLAN的所述Hello报文,则从该多个VLAN中选择两个VLAN;
且,第一带内连接建立模块向直连转发设备返回单播二层开放流协议报文为:
将选择的一个VLAN的标识携带在单播二层开放流协议Hello报文中,将另一个VLAN的标识携带在单播二层开放流协议Packet-out报文中发送给直连转发设备,以便:此后直连转发设备使用Hello报文中的VLAN标识对应VLAN发送除Packet-out和Packet-in报文之外的开放流协议报文,使用Packet-out报文中的VLAN标识对应VLAN发送Packet-out和Packet-in报文;
第二带内连接建立模块接收直连转发设备发来的Packet-in报文,若从该报文中解析出目的MAC地址为预设的开放流二层控制网络组播MAC地址的Hello报文包括:
接收直连转发设备发来的多个Packet-in报文,从该多个Packet-in报文中都解析出目的MAC地址为预设的开放流二层控制网络组播MAC地址的Hello报文,且该多个Hello报文的源MAC地址相同,且该多个Hello报文分别携带不同的VLAN标识,则从该多个VLAN中选择两个VLAN;
且,第二带内连接建立模块向发送转发设备返回单播二层开放流协议报文为:
将选择的一个VLAN的标识携带在单播二层开放流协议Hello报文中,将另一个VLAN的标识携带在单播二层开放流协议Packet-out报文中发送给发送转发设备,以便:此后发送转发设备使用Hello报文中的VLAN标识对应VLAN发送除Packet-out和Packet-in报文之外的开放流协议报文,使用Packet-out报文中的VLAN标识对应VLAN发送Packet-out和Packet-in报文。
以下给出本发明另一实施例提供的SDN中的控制器的组成,该控制器主要包括:带内组网拓扑学习模块,用于:
接收直连转发设备发来的目的MAC地址为预设标识地址的Hello报文,从该报文学习到直连转发设备的MAC地址,并学习到本控制器到直连转发设备的带内组网拓扑,所述预设标识地址指向本控制器;同时用于,
接收直连转发设备发来的Packet-in报文,从该报文中解析出二层开放流协议Hello报文,若Hello报文的目的MAC地址为指向本控制器的预设标识地址,则从Hello报文的源MAC地址中获取Hello报文的发送设备的MAC地址,从Packet-in报文的源MAC地址中获取Hello报文的发送设备的下一跳设备的MAC地址,同时从Packet-in报文中获取所述下一跳设备到所述发送设备的出接口,记录所述下一跳设备的MAC地址、所述发送设备与所述下一跳设备到所述发送设备的出接口之间的对应关系,将该对应关系作为所述下一跳设备到所述发送设备的带内组网拓扑。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (16)

1.一种软件定义网络SDN中的带内控制连接建立方法,其特征在于,该方法包括:
对于SDN中使能带内控制器的转发设备,该设备启动后,在本地生成第一流表项:目的MAC地址为预设标识地址,动作为输出到控制器;
转发设备周期性地从自身各SDN协议端口向外发送二层SDN协议Hello报文,报文的目的MAC地址为所述预设标识地址;
当转发设备接收到控制器发来的目的MAC地址为本转发设备MAC地址的单播二层SDN协议报文后,记录自身到控制器的二层带内接口;
当转发设备接收到来自其它转发设备的目的MAC地址为预设标识地址的二层SDN协议Hello报文后,按照第一流表项通过自身到控制器的二层带内接口将报文转发给控制器;
转发设备接收控制器下发的带内控制流表项,所述表项指示了从控制器到其它转发设备的二层单播报文在本转发设备上的转发端口,或者指示了从其它转发设备到控制器的二层单播报文在本转发设备上的转发端口;
转发设备接收到控制器发来的目的MAC地址为其它转发设备的单播二层SDN协议报文,按照控制器下发的带内控制流表项,将报文转发给其它转发设备,或者转发设备接收到其它转发设备发来的目的MAC地址为控制器的单播二层SDN协议报文,按照控制器下发的带内控制流表项,将报文转发给控制器。
2.根据权利要求1所述的方法,其特征在于,当转发设备接收到来自其它转发设备的目的MAC地址为预设标识地址的二层SDN协议Hello报文后,所述按照第一流表项通过自身到控制器的二层带内接口将报文转发给控制器包括:
转发设备判断是否已记录自身到控制器的二层带内接口,若是,将该二层SDN协议Hello报文封装到Packet-in报文中,将该Packet-in报文通过自身到控制器的二层带内接口转发给控制器;否则,丢弃该二层SDN协议Hello报文。
3.根据权利要求1所述的方法,其特征在于,所述转发设备周期性地从自身各SDN协议端口向外发送二层SDN协议Hello报文为:
对于自身的每个SDN协议端口,分别针对该端口使能的每个VLAN周期性地从该端口发送二层SDN协议Hello报文;
且,所述当转发设备接收到控制器发来的目的MAC地址为本转发设备MAC地址的单播二层SDN协议报文包括:
转发设备接收到控制器发来的目的MAC地址为本转发设备MAC地址、且包含VLAN标识的单播二层SDN协议Hello报文和单播二层Packet-out报文,将Hello报文中的VLAN标识对应VLAN作为此后发送除Packet-out和Packet-in报文外的SDN协议报文所使用的VLAN,将Packet-out报文中的VLAN标识对应VLAN作为此后发送Packet-out和Packet-in报文所使用的VLAN。
4.根据权利要求3所述的方法,其特征在于,所述将Packet-out报文中的VLAN标识对应VLAN作为此后发送Packet-out和Packet-in报文所使用的VLAN之后进一步包括:
转发设备周期性地针对Packet-out和Packet-in报文所使用的VLAN,以及除Packet-out和Packet-in报文外的SDN协议报文所使用的VLAN与控制器进行保活报文交互,若针对其中一个VLAN保活失败,则将该VLAN上的报文转移到另一VLAN上传输,并与控制器重新协商出一个替换VLAN,协商成功后,将保活失败的VLAN上的报文再转移到替换VLAN上传输。
5.一种软件定义网络SDN中的带内控制连接建立方法,其特征在于,该方法包括:
控制器接收直连转发设备发来的目的MAC地址为预设标识地址的Hello报文,从该报文学习到直连转发设备的MAC地址,并学习到本控制器到直连转发设备的带内组网拓扑,向直连转发设备返回单播二层SDN协议报文;
控制器接收直连转发设备发来的Packet-in报文,若从该报文中解析出目的MAC地址为预设标识地址的Hello报文,则从该Packet-in报文学习到该Hello报文的发送转发设备的下一跳转发设备到该发送转发设备的带内组网拓扑,并学习到分别应用在本控制器与该发送转发设备之间的每个转发设备上的带内控制流表项,将学习到的各带内控制流表项对应发送给每个转发设备,同时向发送转发设备返回单播二层SDN协议报文,其中,应用在任一转发设备上的带内控制流表项指示了从控制器到其它转发设备的报文在本转发设备上的转发端口,或者指示了从其它转发设备到控制器的报文在本转发设备上的转发端口。
6.根据权利要求5所述的方法,其特征在于,所述控制器学习到分别应用在本控制器与该发送转发设备之间的每个转发设备上的带内控制流表项包括:
控制器根据已学习到的带内组网拓扑,确定从所述Packet-in报文中解析出的Hello报文在发送转发设备与本控制器之间的转发路径,且,若该确定的转发路径优于自身已学习到的该发送转发设备与本控制器之间的所有其它转发路径,则根据该确定的转发路径学习到分别应用在本控制器与该发送转发设备之间的每个转发设备上的带内控制流表项。
7.根据权利要求5所述的方法,其特征在于,所述控制器接收直连转发设备发来的目的MAC地址为预设标识地址的Hello报文包括:
控制器收到该转发设备发来的针对多个VLAN的所述Hello报文,则从该多个VLAN中选择两个VLAN;
且,所述控制器向直连转发设备返回单播二层SDN协议报文为:
控制器将选择的一个VLAN的标识携带在单播二层SDN协议Hello报文中,将另一个VLAN的标识携带在单播二层SDN协议Packet-out报文中发送给直连转发设备,以便:此后直连转发设备使用Hello报文中的VLAN标识对应VLAN发送除Packet-out和Packet-in报文之外的SDN协议报文,使用Packet-out报文中的VLAN标识对应VLAN发送Packet-out和Packet-in报文;
所述控制器接收直连转发设备发来的Packet-in报文,若从该报文中解析出目的MAC地址为预设标识地址的Hello报文包括:
控制器接收直连转发设备发来的多个Packet-in报文,从该多个Packet-in报文中都解析出目的MAC地址为预设标识地址的Hello报文,且该多个Hello报文的源MAC地址相同,且该多个Hello报文分别携带不同的VLAN标识,则从该多个VLAN中选择两个VLAN;
且,所述控制器向发送转发设备返回单播二层SDN协议报文为:
控制器将选择的一个VLAN的标识携带在单播二层SDN协议Hello报文中,将另一个VLAN的标识携带在单播二层SDN协议Packet-out报文中发送给发送转发设备,以便:此后发送转发设备使用Hello报文中的VLAN标识对应VLAN发送除Packet-out和Packet-in报文之外的SDN协议报文,使用Packet-out报文中的VLAN标识对应VLAN发送Packet-out和Packet-in报文。
8.一种软件定义网络SDN中的带内组网拓扑学习方法,其特征在于,该方法包括:
控制器接收直连转发设备发来的目的MAC地址为预设标识地址的Hello报文,从该报文学习到直连转发设备的MAC地址,并学习到本控制器到直连转发设备的带内组网拓扑,所述预设标识地址指向本控制器;
控制器接收直连转发设备发来的Packet-in报文,从该报文中解析出二层SDN协议Hello报文,若Hello报文的目的MAC地址为指向本控制器的预设标识地址,则从Hello报文的源MAC地址中获取Hello报文的发送设备的MAC地址,从Packet-in报文的源MAC地址中获取Hello报文的发送设备的下一跳设备的MAC地址,同时从Packet-in报文中获取所述发送设备接收所述下一跳设备报文的入接口,记录所述发送设备与所述下一跳设备的MAC地址、以及所述下一跳设备与所述发送设备接收所述下一跳设备的报文入接口之间的对应关系,将该对应关系作为所述下一跳设备到所述发送设备的带内组网拓扑。
9.一种软件定义网络SDN中的转发设备,该转发设备使能带内控制器,其特征在于,该转发设备包括:
第一流表项生成模块:启动后,在本地生成第一流表项:目的MAC地址为预设标识地址,动作为输出到控制器;
带内连接建立模块:周期性地从本设备各SDN协议端口向外发送二层SDN协议Hello报文,报文的目的MAC地址为所述预设标识地址;当接收到控制器发来的目的MAC地址为本转发设备MAC地址的单播二层SDN协议报文后,记录本设备到控制器的二层带内接口;
带内转发模块:当接收到来自其它转发设备的目的MAC地址为预设标识地址的Hello报文后,按照第一流表项生成模块中的第一流表项,通过带内连接建立模块记录的本设备到控制器的二层带内接口将报文转发给控制器;接收控制器下发的带内控制流表项,所述表项指示了从控制器到其它转发设备的二层单播报文在本转发设备上的转发端口,或者指示了从其它转发设备到控制器的二层单播报文在本转发设备上的转发端口;接收到控制器发来的目的MAC地址为其它转发设备的单播二层SDN协议Hello报文,按照控制器下发的带内控制流表项,将报文转发给其它转发设备,或者接收到其它转发设备发来的目的MAC地址为控制器的单播二层SDN协议报文,按照控制器下发的带内控制流表项,将报文转发给控制器。
10.根据权利要求9所述的转发设备,其特征在于,所述带内转发模块接收到来自其它转发设备的目的MAC地址为预设标识地址的Hello报文后,通过带内连接建立模块记录的本设备到控制器的二层带内接口将报文转发给控制器包括:
转发设备判断是否已记录自身到控制器的二层带内接口,若是,将该二层SDN协议Hello报文封装到Packet-in报文中,将该Packet-in报文通过本设备到控制器的二层带内接口转发给控制器;否则,丢弃该二层SDN协议Hello报文。
11.根据权利要求9所述的转发设备,其特征在于,所述带内连接建立模块周期性地从本设备各SDN协议端口向外发送二层SDN协议Hello报文为:
对于本设备的每个SDN协议端口,分别针对该端口使能的每个VLAN周期性地从该端口发送一个二层SDN协议Hello报文;
且,所述带内连接建立模块接收到控制器发来的目的MAC地址为本转发设备MAC地址的单播二层SDN协议报文包括:
接收到控制器发来的目的MAC地址为本转发设备MAC地址、且包含VLAN标识的单播二层SDN协议Hello报文和单播二层Packet-out报文,将Hello报文中的VLAN标识对应VLAN作为此后发送除Packet-out和Packet-in报文外的SDN协议报文所使用的VLAN,将Packet-out报文中的VLAN标识对应VLAN作为此后发送Packet-out和Packet-in报文所使用的VLAN。
12.根据权利要求11所述的转发设备,其特征在于,所述带内连接建立模块将Packet-out报文中的VLAN标识对应VLAN作为此后发送Packet-out和Packet-in报文所使用的VLAN之后进一步包括:
周期性地针对Packet-out和Packet-in报文所使用的VLAN,以及除Packet-out和Packet-in报文外的SDN协议报文所使用的VLAN与控制器进行保活报文交互,若针对其中一个VLAN保活失败,则将该VLAN上的报文转移到另一VLAN上传输,并与控制器重新协商出一个替换VLAN,协商成功后,将保活失败的VLAN上的报文再转移到替换VLAN上传输。
13.一种软件定义网络SDN中的控制器,其特征在于,包括:
第一带内连接建立模块:接收直连转发设备发来的目的MAC地址为预设标识地址的Hello报文,从该报文学习到直连转发设备的MAC地址,并学习到本控制器到直连转发设备的带内组网拓扑,向直连转发设备返回单播二层SDN协议报文,所述预设标识地址指向本控制器;
第二带内连接建立模块:接收直连转发设备发来的Packet-in报文,若从该报文中解析出目的MAC地址为预设标识地址的Hello报文,则从该Packet-in报文学习到该Hello报文的发送转发设备的下一跳转发设备到该发送转发设备的带内组网拓扑,并学习到分别应用在本控制器与该发送转发设备之间的每个转发设备上的带内控制流表项,将学习到的各带内控制流表项对应发送给每个转发设备,同时向发送转发设备返回单播二层SDN协议报文,其中,应用在任一转发设备上的带内控制流表项指示了从控制器到其它转发设备的报文在本转发设备上的转发端口,或者指示了从其它转发设备到控制器的报文在本转发设备上的转发端口。
14.根据权利要求13所述的控制器,其特征在于,所述第二带内连接建立模块从该Packet-in报文学习到分别应用在本控制器与该发送转发设备之间的每个转发设备上的带内控制流表项包括:
根据已学习到的带内组网拓扑,确定从所述Packet-in报文中解析出的Hello报文在发送转发设备与本控制器之间的转发路径,且,若该确定的转发路径优于已学习到的该发送转发设备与本控制器之间的所有其它转发路径,则根据该确定的转发路径学习到分别应用在本控制器与该发送转发设备之间的每个转发设备上的带内控制流表项。
15.根据权利要求13所述的控制器,其特征在于,所述第一带内连接建立模块接收直连转发设备发来的目的MAC地址为预设标识地址的Hello报文包括:
收到该转发设备发来的针对多个VLAN的所述Hello报文,则从该多个VLAN中选择两个VLAN;
且,所述第一带内连接建立模块向直连转发设备返回单播二层SDN协议报文为:
将选择的一个VLAN的标识携带在单播二层SDN协议Hello报文中,将另一个VLAN的标识携带在单播二层SDN协议Packet-out报文中发送给直连转发设备,以便:此后直连转发设备使用Hello报文中的VLAN标识对应VLAN发送除Packet-out和Packet-in报文之外的SDN协议报文,使用Packet-out报文中的VLAN标识对应VLAN发送Packet-out和Packet-in报文;
所述第二带内连接建立模块接收直连转发设备发来的Packet-in报文,若从该报文中解析出目的MAC地址为预设标识地址的Hello报文包括:
接收直连转发设备发来的多个Packet-in报文,从该多个Packet-in报文中都解析出目的MAC地址为预设标识地址的Hello报文,且该多个Hello报文的源MAC地址相同,且该多个Hello报文分别携带不同的VLAN标识,则从该多个VLAN中选择两个VLAN;
且,所述第二带内连接建立模块向发送转发设备返回单播二层SDN协议报文为:
将选择的一个VLAN的标识携带在单播二层SDN协议Hello报文中,将另一个VLAN的标识携带在单播二层SDN协议Packet-out报文中发送给发送转发设备,以便:此后发送转发设备使用Hello报文中的VLAN标识对应VLAN发送除Packet-out和Packet-in报文之外的SDN协议报文,使用Packet-out报文中的VLAN标识对应VLAN发送Packet-out和Packet-in报文。
16.一种软件定义网络SDN中的控制器,其特征在于,包括:
带内组网拓扑学习模块,用于:
接收直连转发设备发来的目的MAC地址为预设标识地址的Hello报文,从该报文学习到直连转发设备的MAC地址,并学习到本控制器到直连转发设备的带内组网拓扑,所述预设标识地址指向本控制器;
接收直连转发设备发来的Packet-in报文,从该报文中解析出二层SDN协议Hello报文,若Hello报文的目的MAC地址为指向本控制器的预设标识地址,则从Hello报文的源MAC地址中获取Hello报文的发送设备的MAC地址,从Packet-in报文的源MAC地址中获取Hello报文的发送设备的下一跳设备的MAC地址,同时从Packet-in报文中获取所述下一跳设备到所述发送设备的出接口,记录所述下一跳设备的MAC地址、所述发送设备与所述下一跳设备到所述发送设备的出接口之间的对应关系,将该对应关系作为所述下一跳设备到所述发送设备的带内组网拓扑。
CN201410043236.3A 2014-01-29 2014-01-29 软件定义网络中的带内控制连接建立方法及设备 Active CN103763207B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410043236.3A CN103763207B (zh) 2014-01-29 2014-01-29 软件定义网络中的带内控制连接建立方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410043236.3A CN103763207B (zh) 2014-01-29 2014-01-29 软件定义网络中的带内控制连接建立方法及设备

Publications (2)

Publication Number Publication Date
CN103763207A true CN103763207A (zh) 2014-04-30
CN103763207B CN103763207B (zh) 2017-03-15

Family

ID=50530369

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410043236.3A Active CN103763207B (zh) 2014-01-29 2014-01-29 软件定义网络中的带内控制连接建立方法及设备

Country Status (1)

Country Link
CN (1) CN103763207B (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104283802A (zh) * 2014-10-09 2015-01-14 杭州华三通信技术有限公司 邻居发现方法和设备
CN104283722A (zh) * 2014-10-29 2015-01-14 杭州华三通信技术有限公司 Sdn链路状态信息收集方法及装置
CN104301230A (zh) * 2014-10-10 2015-01-21 杭州华三通信技术有限公司 报文转发方法和装置
CN104506404A (zh) * 2014-12-17 2015-04-08 杭州华三通信技术有限公司 建立虚拟局域网转发通道的方法和装置
CN104618475A (zh) * 2015-01-28 2015-05-13 清华大学 用于异构sdn网络的水平方向通信方法和sdn系统
CN105409169A (zh) * 2014-05-30 2016-03-16 华为技术有限公司 一种多路径转发规则的构造方法、装置及系统
CN105591938A (zh) * 2015-10-12 2016-05-18 杭州华三通信技术有限公司 保活报文处理方法及装置
CN105591963A (zh) * 2015-08-27 2016-05-18 杭州华三通信技术有限公司 Sdn中报文转发方法和设备
CN105871624A (zh) * 2016-05-24 2016-08-17 中国电子科技集团公司第三十研究所 不依赖于控制专网的动态sdn控制信令带内传输方法
CN107302496A (zh) * 2017-05-26 2017-10-27 重庆邮电大学 一种基于带内控制的软件定义网络链路故障恢复方法
CN107786441A (zh) * 2016-08-30 2018-03-09 迈普通信技术股份有限公司 一种通信方法、OpenFlow交换机及通信系统
CN107911297A (zh) * 2017-11-21 2018-04-13 迈普通信技术股份有限公司 一种sdn网络带内控制通道建立方法及设备
CN108512763A (zh) * 2018-04-16 2018-09-07 广州市品高软件股份有限公司 一种流表规则生成过程的跟踪方法
CN110380973A (zh) * 2019-06-18 2019-10-25 南京理工大学 软件定义网络拓扑探测方法
CN110891020A (zh) * 2019-12-24 2020-03-17 中国电子科技集团公司第五十四研究所 一种sdn带内控制网络的流表数量优化方法
CN111130928A (zh) * 2019-12-10 2020-05-08 网络通信与安全紫金山实验室 广域网中基于带内探测的网络测量方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103209121A (zh) * 2013-03-15 2013-07-17 中兴通讯股份有限公司 基于开放流协议的控制面设备的发现处理方法及装置
CN103259728A (zh) * 2013-05-24 2013-08-21 华为技术有限公司 一种ofs带内通信方法及ofs
JP2014003392A (ja) * 2012-06-15 2014-01-09 Ntt Docomo Inc 制御ノード及び通信制御方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014003392A (ja) * 2012-06-15 2014-01-09 Ntt Docomo Inc 制御ノード及び通信制御方法
CN103209121A (zh) * 2013-03-15 2013-07-17 中兴通讯股份有限公司 基于开放流协议的控制面设备的发现处理方法及装置
CN103259728A (zh) * 2013-05-24 2013-08-21 华为技术有限公司 一种ofs带内通信方法及ofs

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ONF: "Software-Defined Networking:The New Norm for Networks", 《ONF WHITE PAPER》 *

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105409169A (zh) * 2014-05-30 2016-03-16 华为技术有限公司 一种多路径转发规则的构造方法、装置及系统
CN105409169B (zh) * 2014-05-30 2019-01-18 华为技术有限公司 一种多路径转发规则的构造方法、装置及系统
CN104283802A (zh) * 2014-10-09 2015-01-14 杭州华三通信技术有限公司 邻居发现方法和设备
CN104301230A (zh) * 2014-10-10 2015-01-21 杭州华三通信技术有限公司 报文转发方法和装置
CN104283722A (zh) * 2014-10-29 2015-01-14 杭州华三通信技术有限公司 Sdn链路状态信息收集方法及装置
CN104283722B (zh) * 2014-10-29 2018-05-08 新华三技术有限公司 Sdn链路状态信息收集方法及装置
CN104506404B (zh) * 2014-12-17 2018-03-16 新华三技术有限公司 建立虚拟局域网转发通道的方法和装置
CN104506404A (zh) * 2014-12-17 2015-04-08 杭州华三通信技术有限公司 建立虚拟局域网转发通道的方法和装置
CN104618475A (zh) * 2015-01-28 2015-05-13 清华大学 用于异构sdn网络的水平方向通信方法和sdn系统
CN105591963A (zh) * 2015-08-27 2016-05-18 杭州华三通信技术有限公司 Sdn中报文转发方法和设备
CN105591963B (zh) * 2015-08-27 2018-10-12 新华三技术有限公司 Sdn中报文转发方法和设备
CN105591938B (zh) * 2015-10-12 2019-05-17 新华三技术有限公司 保活报文处理方法及装置
CN105591938A (zh) * 2015-10-12 2016-05-18 杭州华三通信技术有限公司 保活报文处理方法及装置
CN105871624B (zh) * 2016-05-24 2019-07-16 中国电子科技集团公司第三十研究所 不依赖于控制专网的动态sdn控制信令带内传输方法
CN105871624A (zh) * 2016-05-24 2016-08-17 中国电子科技集团公司第三十研究所 不依赖于控制专网的动态sdn控制信令带内传输方法
CN107786441A (zh) * 2016-08-30 2018-03-09 迈普通信技术股份有限公司 一种通信方法、OpenFlow交换机及通信系统
CN107786441B (zh) * 2016-08-30 2020-09-11 迈普通信技术股份有限公司 一种通信方法、OpenFlow交换机及通信系统
CN107302496A (zh) * 2017-05-26 2017-10-27 重庆邮电大学 一种基于带内控制的软件定义网络链路故障恢复方法
CN107302496B (zh) * 2017-05-26 2020-03-17 重庆邮电大学 一种基于带内控制的软件定义网络链路故障恢复方法
CN107911297A (zh) * 2017-11-21 2018-04-13 迈普通信技术股份有限公司 一种sdn网络带内控制通道建立方法及设备
CN107911297B (zh) * 2017-11-21 2020-03-24 迈普通信技术股份有限公司 一种sdn网络带内控制通道建立方法及设备
CN108512763B (zh) * 2018-04-16 2019-03-29 广州市品高软件股份有限公司 一种流表规则生成过程的跟踪方法
CN108512763A (zh) * 2018-04-16 2018-09-07 广州市品高软件股份有限公司 一种流表规则生成过程的跟踪方法
CN110380973A (zh) * 2019-06-18 2019-10-25 南京理工大学 软件定义网络拓扑探测方法
CN111130928A (zh) * 2019-12-10 2020-05-08 网络通信与安全紫金山实验室 广域网中基于带内探测的网络测量方法
CN111130928B (zh) * 2019-12-10 2022-12-23 网络通信与安全紫金山实验室 广域网中基于带内探测的网络测量方法
CN110891020A (zh) * 2019-12-24 2020-03-17 中国电子科技集团公司第五十四研究所 一种sdn带内控制网络的流表数量优化方法

Also Published As

Publication number Publication date
CN103763207B (zh) 2017-03-15

Similar Documents

Publication Publication Date Title
CN103763207A (zh) 软件定义网络中的带内控制连接建立方法及设备
EP3313025B1 (en) Data packet forwarding
EP2974133B1 (en) Method and system for controlling an underlying physical network by a software defined network
CN101616014B (zh) 一种实现跨虚拟专用局域网组播的方法
JP6544401B2 (ja) パケット転送装置、制御装置、通信システム、通信方法及びプログラム
JP5987971B2 (ja) 通信システム、スイッチ、制御装置、制御用チャネルの構築方法及びプログラム
CN104243270A (zh) 一种建立隧道的方法和装置
CN104426789A (zh) 软件定义网络中的转发设备控制方法及设备
CN106330727A (zh) Sdn网络设备建链方法、设备和系统
WO2016206741A1 (en) Forwarding device, controller and method
CN104378297A (zh) 一种报文转发方法及设备
CN110430114B (zh) 一种虚拟路由器及实现sdn网络与传统ip网络互联的方法
CN102638389A (zh) 一种trill网络的冗余备份方法及系统
CN101257447A (zh) 一种负载分担的方法、系统及路由装置
US9929993B2 (en) Method for transmitting messages in an energy automation network, energy automation component and substation
WO2013035604A1 (ja) パケット転送装置及び無線通信システム
CN104980355A (zh) 一种sdn环境下的源端可控组播数据传输方法及系统
WO2017157206A1 (zh) 云数据中心互联方法及装置
CN102984070B (zh) 一种以太网无编号接口实现数据转发的方法
WO2020220459A1 (zh) 基于VXLAN和OpenFlow的虚拟家庭网络共享方法及系统
CN104092684A (zh) 一种OpenFlow协议支持VPN的方法及设备
CN104601428A (zh) 虚拟机之间的通信方法
JP2019519146A (ja) ルーティング確立、パケット送信
CN104539539B (zh) 一种ac设备多业务板数据转发方法
WO2013176262A1 (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
C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Patentee 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

Patentee before: Huasan Communication Technology Co., Ltd.