基于软件定义网络的北向接口接入系统及方法

文档序号:7780995阅读:160来源:国知局
基于软件定义网络的北向接口接入系统及方法
【专利摘要】本发明提供一种基于软件定义网络的北向接口接入系统,其用于支持不同协议规范的控制器接入软件定义网络与上层网络服务通信,该系统包括会话模块及可动态加载的适配引擎模块,会话模块获取并记录上层网络服务的特征及具有已知北向接口的控制器的特征,适配引擎模块接收上层网络服务的消息并进行解析处理,会话模块将解析处理的消息根据记录的控制器信息依据目标控制器的协议进行格式转换后下发,适配引擎模块解析控制器发送的消息并处理成上层网络服务识别的格式后经会话模块根据记录的上层网络服务的特征转发。该系统利用适配引擎模块实现上层网络服务与不同协议控制器通信,适配引擎模块的可动态加载,扩展性较高。本发明还提供了一种接入方法。
【专利说明】基于软件定义网络的北向接口接入系统及方法
【技术领域】
[0001]本发明涉及软件定义网络技术,尤其涉及一种基于软件定义网络的北向接口接入系统。
【背景技术】
[0002]目前,很多技术应用都会使用软件定义网络(Software Defined Network, SDN)如数据中心的各种网络需求环境、云计算IaaS层中使用虚拟网络的需求环境、城域网中融合型网络节点的设备维护的需求环境,骨干网中虚拟化/抽象化、规划优化、通道计算、流量工程、集中运维和增值业务等需求环境,在软件定义网络(Software DefinedNetwork, SDN)中,SDN控制器往上到网络服务应用层的北向应用程序接口(ApplicationProgramming Interface, API)尚未有定义,现阶段SDN控制器北向应用程序接口(Application Programming Interface, API)的协议都使用自有方式而并没有标准化,各控制器厂商按照自己的需求定义北向接口 API。
[0003]然而,由于SDN协议架构没有成为业内的标准,在未来相当长的一段时间内,SDN控制器会有多种,现有的SDN网络无法保证所有上层网络服务接入到各种不同协议规范的SDN网络中以及不同协议的SDN控制器接入SDN网络,操作不方便、扩展性较低。

【发明内容】

[0004]有鉴于此,本发明提供一种能提高SDN网络的北向接口扩展性的基于软件定义网络的北向接口接入系统及方法。
[0005]一种基于软件定义网络的北向接口接入系统,其用于支持各种不同协议规范的软件定义网络(Software Defined Network, SDN)控制器的接入以使至少一个SDN控制器与至少一个上层网络服务通信,所述基于软件定义网络的北向接口接入系统包括一个会话模块及至少一个可动态加载的适配引擎模块,所述会话模块获取并记录所述至少一个上层网络服务的网络特征及网络中所述至少一个具有已知北向接口的SDN控制器的特征信息,所述至少一个适配引擎模块接收所述至少一个上层网络服务的消息并进行解析处理转换为内部格式后发送到所述会话模块,所述会话模块将解析处理的消息根据记录的SDN控制器特征信息依据目标SDN控制器的协议进行格式转换后下发到目标SDN控制器,所述至少一个适配引擎模块解析所述至少一个SDN控制器发送的消息并处理成上层网络服务识别的格式后经所述会话模块根据记录的上层网络服务的网络特征转发到相应的上层网络服务。
[0006]一种基于软件定义网络的北向接口接入方法,其用于支持各种不同协议规范的软件定义网络(Software Defined Network, SDN)控制器的接入以使至少一个SDN控制器与至少一个上层网络服务通信,所述基于软件定义网络的北向接口接入方法包括以下步骤:
[0007]获取并记录所述至少一个上层网络服务的网络特征及网络中具有已知北向接口的SDN控制器的特征信息;
[0008]接收所述至少一个上层网络服务的消息并进行解析处理后根据记录的SDN控制器特征信息依据目标SDN控制器的协议进行格式转换后下发到目标SDN控制器;
[0009]解析所述至少一个SDN控制器发送的消息并处理成上层网络服务识别的格式后根据记录的上层网络服务的网络特征转发到相应的上层网络服务。
[0010]与现有技术相比,本发明提供的基于软件定义网络的北向接口接入系统及方法中,利用适配引擎模块解析处理上层网络服务与下层SDN控制器通信的消息,从而保证所有上层网络服务接入到各种不同协议规范的SDN网络中,不同协议的SDN控制器也可接入SDN网络,由于适配引擎模块可动态的加载,从而可支持未知的多种控制器的接入,操作方便、扩展性较高。
【专利附图】

【附图说明】
[0011]图1是本发明提供的应用基于软件定义网络的北向接口接入系统的网络位置示意图。 [0012]图2是本发明提供的基于软件定义网络的北向接口接入系统的模块示意图。
[0013]图3是本发明提供的基于软件定义网络的北向接口接入方法的流程图。
[0014]主要元件符号说明
[0015]基于软件定义网络的北向接口接入系统 100
[0016]会话模块110
[0017]适配引擎模块120
[0018]应用层200
[0019]编配层300
[0020]如下【具体实施方式】将结合上述附图进一步说明本发明。
【具体实施方式】
[0021]请参阅图1及图2,本发明实施方式提供的一种基于软件定义网络的北向接口接入系统100用于支持各种不同协议规范的软件定义网络(Software Defined Network, SDN)控制器的接入以使至少一个SDN控制器与应用层200中的至少一个上层网络服务通信,所述北向接口接入系统100可设置在编配层(orchestration layer) 300中、SDN控制器运行的服务器中或单独的服务器中,本实施方式中,北向接口接入系统100设置在orchestration layer中。基于软件定义网络的北向接口接入系统100包括一个会话模块110及至少一个适配引擎模块120,本实施方式中,应用层200中的η个网络服务分别对应η个适配引擎模块120,η个SDN控制器分别对应η个适配引擎模块120及η个交换机。
[0022]所述会话模块110用于获取并记录上层网络服务的网络特征及网络中至少一个具有已知北向接口的SDN控制器的特征信息,会话模块记录的η个SDN控制信息包括唯一的身份标识识别码(Identity, ID)、控制器协议(Internet Protocol Address, IP)地址、控制器名称及网络名称等。本实施方式中,注册到北向接口接入系统中的网络服务的特征信息及SDN控制器的特征信息分别记录存储在网络服务命名空间目录与控制器命名空间目录中。
[0023]可以理解的是,上层网络和下层SDN控制器都是动态变化的,会话模块110会不定期的读取和修改所记录的信息,在会话模块110中使用类似Ping的方式进行轮询以对网络服务和SDN控制器监控,根据不同的SDN协议规范来定义keep alive消息,在网络服务或者SDN控制器离线后,会话模块110会自动将相应记录的信息在对应命名空间目录中删除,用户可根据需要通过会话模块110查询运行状态或者某个SDN控制器下交换机的状态。
[0024]可以理解的是,用户也可根据需要手动加入SDN控制器的信息,对于未知协议的SDN控制器,用户可根据适配引擎模块120放开的对外接口进行二次开发适配引擎模块,SP根据放开的接口编写代码生成用户自己的适配引擎模块。
[0025]所述适配引擎模块120面对多个上层网络服务和多个下层控制器并根据上下层来的消息进行解析和处理。本实施方式中,适配引擎模块120的北向接口使用REST API和SOAP API的方式发送消息。
[0026]当某个网络服务需要SDN网络时,适配引擎模块120接收该上层网络服务的消息并进行解析处理转换为内部格式后发送到会话模块110,会话模块110得到该上层网络服务进行注册的通知后和网络服务通过相应协议如http协议进行握手注册,返回确认消息,此时会话模块110将该网络的特征记录到网络服务命名空间目录中用于以后控制器给该网络发送消息。同时,会话模块110将解析处理得到的消息功能、参数、发送目的等一系列要求,组装成目标SDN控制器的协议进行格式转换后下发到目标SDN控制器。
[0027]可以理解的是,若多个网络服务要访问多个SDN网络,会话模块110根据记录的网络特征根据网络服务的需要自动路由信息给SDN控制器,给不同的SDN控制器发送修改流表的指令以修改控制器下交换机转发数据的路径来达到该网络服务的需求。若多个网络服务需访问不同控制器,则多线程的处理,若多个网络服务需访问同一个控制器,则进行队列处理。
[0028]SDN控制器无论是运行在forwarding模式即由交换机修改控制器的流表还是运行在proactive模式即控制器控制流表的修改,交换机根据流表定义的转发路径进行数据转发下,本系统100都会根据上层应用的需要转发修改控制器流表的消息,若发生流表修改的冲突,本系统会向上层应用返回错误消息,并不会影响到SDN控制器对数据的转发。
[0029]在SDN控制器需发送消息至相应的上层网络时,适配引擎模块120解析SDN控制器发送的消息并处理成上层网络服务识别的格式后,再经会话模块110根据记录的上层网络服务的网络特征转发到相应的上层网络服务。
[0030]可以理解的是,为增加某个不同的网络服务或者SDN控制器通信时,可编写适合的适配引擎模块后在系统运行时动态加载这些模块来实现,例如,用户的某个网络想使用新买的Cisco控制器,并接入其网络,根据Cisco提供的北向接口的协议规范编写适合Cisco SDN网络的适配引擎模块编译后形成一个jar文件,系统动态的将这个适配引擎模块加入到系统运行中,用户的网络可以不需要进行任何的修改就能使用Cisco提供的SDN网络,同时之前其他厂商的SDN网络同样可以使用,如果想创建跨SDN网络的虚拟网络环境,用户几乎不需要修改任何网络设置和拓扑。
[0031]本系统100用高级语言java和脚本python实现,用户可以根据不同的SDN协议规范使用脚本语言给予定制不同的接口,也可根据系统定义的接口使用高级语言实现接入方式,接口功能由java具体实现。对于用户自定义的适配引擎模块,N-adapter系统支持OFTest (基于openf low协议规范)架构标准提供单元和系统测试框架为用户提供方便的二次开发环境。[0032]为了提高传输效率,本系统100采用短URL或者压缩xml的方式传递数据。在本系统运行的同时会按照一定时间间隔定时向邻居系统发送keep alive消息确认相互是否存在并同步系统信息。
[0033]请参阅图3,其为本发明实施方式提供的一种基于软件定义网络的北向接口接入方法,所述基于软件定义网络的北向接口接入方法用于支持各种不同协议规范的软件定义网络(Software Defined Network, SDN)控制器的接入以使至少一个SDN控制器与至少一个上层网络服务通信,所述基于软件定义网络的北向接口接入方法包括以下步骤:
[0034]SlOO:获取并记录至少一个上层网络服务的网络特征及网络中具有已知北向接口的SDN控制器的特征信息;
[0035]S200:接收至少一个上层网络服务的消息并进行解析处理后根据SDN控制器特征信息依据目标SDN控制器的协议转换格式后下发;
[0036]S300:解析至少一个SDN控制器发送的消息并处理成上层网络服务识别的格式后根据上层网络服务的网络特征转发。
[0037]在步骤SlOO中,利用会话模块110获取并记录上层网络服务的网络特征及SDN控制器的唯一 ID、控制器IP地址、名称、网络名称等。上层网络和下层SDN控制器都是动态变化的,在网络服务或者SDN控制器离线后,会话模块110会自动将记录的对应信息删除。可以理解的是,用户也可根据需要手动加入SDN控制器的信息,对于未知协议的SDN控制器用户可进行二次开发适配弓I擎模块。
[0038]在步骤S200中,利用适配引擎模块120接收某个需要SDN网络的上层网络服务的消息并进行解析处理,会话模块110得到上层网络服务进行注册的通知后和网络服务通过相应协议如http协议进行握手注册后会话模块110将该网络的特征记录到网络服务命名空间目录中用于以后控制器方便给该网络发送消息,同时,会话模块110将解析处理得到的消息功能、参数、发送目的等一系列要求,组装成目标SDN控制器的协议进行格式转换后下发到目标SDN控制器。
[0039]可以理解的是,若多个网络服务需访问不同控制器,则多线程的处理,若多个网络服务需访问同一个控制器,则进行队列处理。SDN控制器无论是运行在forwarding模式还是运行在proactive模式下,本系统100都会根据上层应用的需要转发修改控制器流表的消息。
[0040]在步骤S300中,利用适配引擎模块120解析SDN控制器发送的消息并处理成上层网络服务识别的格式后,再经会话模块110根据记录的上层网络服务的网络特征转发到相应的上层网络服务。
[0041]可以理解的是,步骤S200与步骤S300的顺序可以互换。
[0042]本发明提供的基于软件定义网络的北向接口接入系统及方法中,利用适配引擎模块120解析处理上层网络服务与下层SDN控制器通信的消息,使所有上层网络服务在不修改当前代码和环境的情况下接入到各种不同协议规范的SDN网络中,不同协议的SDN控制器也可接入SDN网络,同时,由于适配引擎模块120可动态的加载,从而可支持未知的多种控制器的接入,对SDN控制器和协议标准发展不确定性的预留了空间,操作方便、扩展性较闻。
[0043]可以理解的是,对于本领域的普通技术人员来说,可以根据本发明的技术构思做出其他各种相应的改变与变形,而所有这些改变与变形都应属于本发明权利要求的保护范围。
【权利要求】
1.一种基于软件定义网络的北向接口接入系统,其用于支持各种不同协议规范的软件定义网络(Software Defined Network, SDN)控制器的接入以使至少一个SDN控制器与至少一个上层网络服务通信,所述基于软件定义网络的北向接口接入系统包括一个会话模块及至少一个可动态加载的适配引擎模块,所述会话模块获取并记录所述至少一个上层网络服务的网络特征及网络中所述至少一个具有已知北向接口的SDN控制器的特征信息,所述至少一个适配引擎模块接收所述至少一个上层网络服务的消息并进行解析处理转换为内部格式后发送到所述会话模块,所述会话模块将解析处理的消息根据记录的SDN控制器特征信息依据目标SDN控制器的协议进行格式转换后下发到目标SDN控制器,所述至少一个适配引擎模块解析所述至少一个SDN控制器发送的消息并处理成上层网络服务识别的格式后经所述会话模块根据记录的上层网络服务的网络特征转发到相应的上层网络服务。
2.如权利要求1所述的基于软件定义网络的北向接口接入系统,其特征在于,所述基于软件定义网络的北向接口接入系统可设置在编配层中、SDN控制器运行的服务器中或单独的服务器中。
3.如权利要求1所述的基于软件定义网络的北向接口接入系统,其特征在于,所述适配引擎模块的北向接口使用REST API和S0APAPI的方式发送消息。
4.如权利要求1所述的基于软件定义网络的北向接口接入系统,其特征在于,所述会话模块记录的具有已知的北向接口 SDN控制器信息包括唯一的身份标识识别码、控制器协议地址、控制器名称及网络名称等。
5.如权利要求1所述的基于软件定义网络的北向接口接入系统,其特征在于,所述会话模块在网络服务或者SDN控制器离线后自动将记录的对应信息删除。
6.一种基于软件定义网络的北向接口接入方法,其用于支持各种不同协议规范的SDN控制器的接入以使至少一个SDN控制器与至少一个上层网络服务通信,所述基于软件定义网络的北向接口接入方法包括以下步骤: 获取并记录所述至少一个上层网络服务的网络特征及网络中具有已知北向接口的SDN控制器的特征信息; 接收所述至少一个上层网络服务的消息并进行解析处理后根据记录的SDN控制器特征信息依据目标SDN控制器的协议进行格式转换后下发到目标SDN控制器; 解析所述至少一个SDN控制器发送的消息并处理成上层网络服务识别的格式后根据记录的上层网络服务的网络特征转发到相应的上层网络服务。
7.如权利要求6所述的基于软件定义网络的北向接口接入方法,其特征在于,所记录的具有已知的北向接口 SDN控制信息包括唯一的身份标识识别码、控制器协议地址、控制器名称及网络名称等。
8.如权利要求6所述的基于软件定义网络的北向接口接入系统,其特征在于,在获取并记录信息步骤中,在网络服务或者SDN控制器离线后自动将记录的对应信息删除。
【文档编号】H04L29/10GK103685580SQ201310697866
【公开日】2014年3月26日 申请日期:2013年12月18日 优先权日:2013年12月18日
【发明者】陈亮, 秦伟, 周训宙, 何炜, 余少华 申请人:武汉邮电科学研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1