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

技术编号:9992971 阅读:100 留言:0更新日期:2014-05-02 11:04
本发明专利技术提出软件定义网络中的带内控制连接建立方法及设备。方法包括:对于SDN中使能带内控制器的转发设备,该转发设备周期性地从自身各SDN协议端口向外发送二层SDN协议Hello报文,报文的目的MAC地址指向控制器;当转发设备接收到控制器发来的目的MAC地址为本转发设备MAC地址的单播二层SDN协议报文后,记录自身到控制器的二层带内接口;当转发设备接收到来自其它转发设备的目的MAC地址指向控制器的Hello报文后,通过二层带内接口将报文转发给控制器。本发明专利技术实现了转发设备与控制器自动建立带内控制连接。

【技术实现步骤摘要】
软件定义网络中的带内控制连接建立方法及设备
本专利技术涉及软件定义网络(SDN,SoftwareDefinedNetwork)
,尤其涉及软件定义网络中的带内控制连接建立方法及转发设备、控制器。
技术介绍
为方便理解,首先给出如下说明:SDN:SDN与传统网络的最大区别,是将控制平面和网络转发平面分离开来,网络转发平面将不再拥有控制功能,将控制平面交给独立于转发平面之外的操作系统,特性则基于操作系统进行定制。开放流(OpenFlow):是一种SDN架构中定义控制器(Controller)和转发层之间的通信接口标准。OpenFlow允许直接访问和操作网络设备的转发平面,这些网络设备可能是物理上的,也可能是虚拟的。OpenFlow的思想是分离控制平面和数据平面,二者之间使用标准的协议通信;数据平面采用基于流的方式进行转发。OpenFlow网络由OpenFlow转发设备(如:OpenFlowSwitch)和控制器(OpenFlowController)通过安全通道(SecureChannel)组成。控制器(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地址本文档来自技高网
...
软件定义网络中的带内控制连接建立方法及设备

【技术保护点】

【技术特征摘要】
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地址为预设标识地址的二层SDN协议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地址为预设标识地址的二层SDN协议Hello报文,从该报文学习到直连转发设备的MAC地址,并学习到本控制器到直连转发设备的带内组网拓扑,所述预设标识地址指向本控制器;控制器接收直连转发设备发来的Packet-in报文,从该报文中解析出二层SDN协议Hello报文,若Hello报文的目的MAC地址为指向本控制器的预设标识地址,则从Hello报文的源MAC地址中获取Hello报文的发送设备的MAC地址,从Packet-in报文的源MAC地址中获取Hello报文的发送设备的下一跳设备的MAC地址,同时从Packet-in报文中获取所述发送设备接收所述下一跳设备报文的入接口,记录所述发送设备与所述下一跳设备的MAC地址、以及所述下一跳设备与所述发送设备接收所述下一跳设备的报文入接口之间的对应关系,将该对应关系作为所述下一跳设备到所述发送设备的带内组网拓扑。9.一种软件定义网络SDN中的转发设备,该转发设备使能带内控制器,其...

【专利技术属性】
技术研发人员:王云毅
申请(专利权)人:杭州华三通信技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1