一种SDN网络与传统IP网络互通的方法及系统
技术领域
本发明涉及数据通信领域的SDN技术,尤其涉及一种SDN网络与传统IP网络互通的方法及系统。
背景技术
传统IP数据通信网络中各网元均是独立自治系统,分别拥有自己的管理平面、控制平面和转发平面,随着近年来网络规模变大和网元功能日趋丰富,运维传统IP数据网络变得十分繁琐且容易出错。为了改善这种局面,学术界和工业界已开始软件定义网络(Software Defined Networks,简称SDN)的研究和部署。
SDN网络是一种新兴的组网方式,使网络可编程化,依靠应用程序对网络运维管理,SDN网络能够以抽象化的方式解决网络的复杂性问题,正在逐步改变着数据中心的部署方式和管理方式,将会逐渐推广到其它应用领域;OpenFlow是SDN技术体系中控制器与转发器之间的标准管理协议,最初用于校园内网络研究,研究人员以其创新网络架构和协议,后继完善架构提出了控制和转发分离的架构,将控制逻辑从网络设备盒子中引出来,研究者可以对其进行任意的编程从而实现新型的网络协议、拓扑架构,而无需改动网络设备本身。
开放性是SDN网络的关键所在,开放的SDN网络有如下优点:
(1)任何一名开发人员都可编写软件,在网络的使用方式、操作方式上实现灵活性;
(2)用户能够以更快的速度获得想要的功能,快速重构网络;
(3)可以降低操作费用和减少错误的数量,从而减少了网络的故障时间;
(4)能实现网络的虚拟化,可以把网络、计算和存储融为一体;
(5)可容易地与计算功能整合,便于开展资源管理和维护;
(6)是一种把流量表信息传递至网络的标准方式,可促进形成一个容纳各种供应商的开放式市场。
SDN的推广应用类似于IPv6对IPv4的替代,是一个渐进的过程,在推广应用初期不可避免地涉及到与传统IP网络互联互通,SDN的组网方案应尽量减小对原有IP网络路由规划的影响,使其能较为容易地部署,进而帮助其获得大量应用以加快取代传统IP网络,如图1是SDN阶段性推广部署示意;SDN网络的推广应用通常需要从大网中某个功能相对独立的区域着手,如数据中心的接入网/汇聚网等,因而必然会涉到该区域与其它区域如何互联互通的问题,若仅利用SDN网络自身的特性来实现IP报文的传送,那么必然会面临重新进行网络路由规划设计的问题,这将给非SDN域带来较大的影响,从而影响SDN组网技术的推广应用。
对于SDN网络与外部网络的互联互通,目前的研究仅涉及SDN域控制器之间的信息交互即SDN域间通信,并未涉及SDN网络与传统IP网络互联互通的方案;SDN域间通信仅能交互控制器及应用程序需要通信的信息,并不能按原有路由规划实现路由协议的平滑过渡,如图2是SDN域间通信拓扑,图3是SDN域间通信逻辑。
因此,急需研究一种SDN网络与传统IP网络互联互通的方法,既能使SDN网络与传统IP网络互联互通,又保证SDN网络的加入不会对原IP网络的路由规划造成较大影响,这将极大的提高SDN网络部署实施的适应能力,并促进SDN组网方式的推广应用。
发明内容
为解决上述问题,本发明提供一种SDN网络与传统IP网络互通的方法及系统。
为达到上述目的,本发明采用的技术方案:
一种SDN网络与传统IP网络互通的方法,包括以下步骤:
A、为SDN网络指定边界接口并为该边界接口指定MAC地址与IP地址,以及根据指定的边界接口与指定路由协议报文特征创建指定路由协议流表项并保存于流表中;
B、依据流表,将通过边界接口接收的报文进行分流:如果是与边界接口匹配的报文,则发送至SDN控制层;如果否,则执行转发流程;
C、依据流表,将SDN控制层接收到的报文进行分流:如果是与流表中的指定路由协议流表项匹配的报文,则按照步骤D执行;如果否,则执行SDN控制层处理流程;
D、将与流表中的指定路由协议流表项匹配的报文,由路由协议模块进行运算生成核心路由表;生成的核心路由表以带掩码的方式并入所述流表中,并根据SDN控制层的转发器拓扑结构计算出到达该路由目的地在SDN域内部的路径,生成路径上每个转发器针对该条路由的流表项;并将生成的流表项下发至SDN数据平面。
进一步的,步骤A中,所述边界接口是通过SDN应用程序或SDN管理配置方法指定;所述步骤A还包括:建立SDN控制层和SDN数据平面之间的安全通道,用于传输与边界接口匹配的协议报文。
更进一步的,步骤B中,所述依据流表,将通过边界接口接收的报文进行分流的具体方法为,按OpenFlow标准管理协议查找流表,从而将边界接口接收的报文进行分流。
更进一步的,步骤C中,所述依据流表,将SDN控制层接收到的报文进行分流的具体方法为,按OpenFlow标准管理协议查找流表,从而将SDN控制层接收的报文进行分流。
为解决技术问题,本发明还提供基于上述方法的一种SDN网络与传统IP网络互通的系统,该系统包括:
初始化装置,用于进行初始化,该初始化装置具体包括:边界接口定义模块,用于为SDN网络指定边界接口并为该边界接口指定MAC地址与IP地址;流表项创建模块,用于根据指定的边界接口与指定路由协议报文特征创建指定路由协议流表项;
数据转发装置,用于依据流表,将通过边界接口接收的报文进行分流:如果是与边界接口匹配的报文,则发送至SDN控制层;如果否,则执行转发流程;
数据分流装置,用于依据流表,将SDN控制层接收到的报文进行分流:如果是与流表中的指定路由协议流表项匹配的报文,则由路由协议处理装置处理;如果否,则执行SDN控制器处理流程;
路由协议处理装置,用于将与流表中的指定路由协议流表项匹配的报文,由路由协议模块进行运算生成核心路由表;生成的核心路由表以带掩码的方式并入所述流表中,并根据SDN控制层的转发器拓扑结构计算出到达该路由目的地在SDN域内部的路径,生成路径上每个转发器针对该条路由的流表项;并将生成的流表项下发至SDN数据平面。
进一步的,所述边界接口定义模块定义边界接口时,是通过SDN应用程序或SDN管理配置方法指定。
进一步的,初始化装置还包括:安全通道创建模块,用于建立数据分流装置和数据转发装置之间的安全通道,该安全通道用于传输与边界接口匹配的报文。
更进一步的,所述数据转发装置依据流表,将通过边界接口接收的报文进行分流具体为,所述数据转发装置按OpenFlow标准管理协议查找流表,将边界接口接收的报文进行分流。
更进一步的,所述数据分流装置依据流表,将SDN控制层接收到的报文进行分流具体为,所述数据分流装置按OpenFlow标准管理协议查找流表,从而将SDN控制层接收的报文进行分流。
采用本发明技术方案的有益效果:
本发明中,路由协议需要进行的报文交互由SDN控制层进行收发,并利用SDN控制层与SDN数据平面间的安全通道在SDN网内传递,最终由SDN网络的边界接口发出给协议邻居;对路由协议的处理则由SDN控制层扩展完成,即由路由协议处理装置完成;路由协议处理后的结果即核心路由表合并入流表后,计算出到达该路由目的地在SDN域内部的路径,生成路径上每个转发器针对该条路由的流表项;并将生成的流表项下发至SDN数据平面。因而,本发明使SDN网络能无缝地与传统IP网络互联互通并对原网络路由规划的影响减到最低,这将极大的提高SDN网络部署实施的适应能力,有助于SDN技术组网方案的推广应用,加速SDN网络对传统IP网络替代的节奏。
附图说明
图1是SDN阶段性推广部署示意;
图2是SDN域间通信拓扑;
图3是SDN域间通信逻辑;
图4是本发明方法的流程示意图;
图5是本发明系统的架构示意图;
图6是初始化装置的示意图;
图7是路由协议处理装置的示意图。
具体实施方式
为了更好的理解本发明,下面结合附图对本发明作进一步阐述。
一种SDN网络与传统IP网络互通的方法,如图4所示,包括以下步骤:
A、为SDN网络指定边界接口并为该边界接口指定MAC地址与IP地址,以及根据指定的边界接口与指定路由协议报文特征创建指定路由协议流表项并保存于流表中。
初始化过程中,优选的,边界接口是通过应用程序或SDN管理配置方法指定,该边界接口在SDN数据平面,是与外部进行互联的端口;流表项的创建依据是指定的边界接口与具体路由协议报文特征,如OSPF路由协议报文则按照IP报文的协议号89来区分,RIP路由协议报文按照IP-UDP-目的端口520来进行区分;优选的,在指定边界接口之前,还需建立SDN控制层和SDN数据平面之间的安全通道,用于传输与边界接口匹配的路由协议报文,以及,还需完成发现网络拓扑、建立table-miss表项等基本工作。
B、依据流表,将通过边界接口接收的报文进行分流:如果是与边界接口匹配的报文,则发送至SDN控制层;如果否,则执行转发流程;优选的,依据流表查找时,按OpenFlow标准管理协议查找。
C、依据流表,将SDN控制层接收到的报文进行分流:如果是与流表中的指定路由协议流表项匹配的报文,则按照步骤D执行;如果否,则执行SDN控制层处理流程;优选的,依据流表查找时,按OpenFlow标准管理协议查找。
D、将与流表中的指定路由协议流表项匹配的报文,由路由协议模块进行运算生成核心路由表;生成的核心路由表以带掩码的方式并入所述流表中,并根据SDN控制层的转发器拓扑结构计算出到达该路由目的地在SDN域内部的路径,生成路径上每个转发器针对该条路由的流表项;并将生成的流表项下发至SDN数据平面,更具体的,分以下步骤进行:
D1、根据路由协议,对与流表中的指定路由协议流表项匹配的报文进行分类处理,获得处理结果,如OSPF报文按OSPF处理、RIP报文按RIP处理、BGP报文按BGP处理;
D2、由处理结果按照传统路由器方法生成系统核心路由表;
D3、生成的核心路由表以带掩码的方式并入所述流表中,并根据SDN控制层的转发器拓扑结构计算出到达该路由目的地在SDN域内部的路径,生成路径上每个转发器针对该条路由的流表项;并将生成的流表项下发至SDN数据平面。
本发明还提供基于上述方法的一种SDN网络与传统IP网络互通的系统,如图5所示,该系统包括:
初始化装置,用于进行初始化,该初始化装置具体包括:边界接口定义模块,用于为SDN网络指定边界接口并为该边界接口指定MAC地址与IP地址;流表项创建模块,用于根据指定的边界接口与指定路由协议报文特征创建指定路由协议流表项,如图6所示。
初始化过程中,优选的,边界接口是通过应用程序或SDN管理配置方法指定,该边界接口在数据转发装置上,是与外部进行互联的端口;流表项的创建依据是指定的边界接口与指定路由协议报文特征,如OSPF路由协议报文则按照IP报文的协议号89来区分,RIP路由协议报文按照IP-UDP-目的端口520来进行区分;优选的,初始化装置还包括:安全通道创建模块,用于建立数据分流装置和数据转发装置之间的安全通道,该安全通道用于传输与边界接口匹配的协议报文,以及其它模块,用于完成发现网络拓扑、建立table-miss表项等基本工作。
数据转发装置,用于依据流表,将通过边界接口接收的报文进行分流:如果是与边界接口匹配的报文,则发送至SDN控制层;如果否,则执行转发流程;优选的,数据转发装置依据流表查找时,是按OpenFlow标准管理协议查找的。
数据分流装置,用于依据流表,将SDN控制层接收到的报文进行分流:如果是与流表中的指定路由协议流表项匹配的报文,则由路由协议处理装置处理;如果否,则执行SDN控制器处理流程;优选的,数据分流装置依据流表查找时,是按OpenFlow标准管理协议查找的。
路由协议处理装置,用于将与流表中的指定路由协议流表项匹配的报文,由路由协议模块进行运算生成核心路由表;生成的核心路由表以带掩码的方式并入所述流表中,并根据SDN控制层的转发器拓扑结构计算出到达该路由目的地在SDN域内部的路径,生成路径上每个转发器针对该条路由的流表项;并将生成的流表项下发至SDN数据平面。如图7所示,具体包括:路由协议报文处理模块,用于根据路由协议,进行分类调用相应路由协议报文处理模块的输入接口,对路由协议报文进行处理,获得路由协议计算结果,如OSPF报文按OSPF处理、RIP报文按RIP处理、BGP报文按BGP处理;生成模块,用于由路由协议计算结果按照传统路由器方法生成系统核心路由表;合并模块,用于将生成的核心路由表以带掩码的方式并入所述流表中,并根据SDN控制层的转发器拓扑结构计算出到达该路由目的地在SDN域内部的路径,生成路径上每个转发器针对该条路由的流表项,并将生成的流表项下发至SDN数据平面。
按本发明方法进行SDN组网改造后网络中可能出现的流量如表1,当源为外部IP网络、目的地为SDN域边界、流量类型为IP路由协议,或是源为SDN域边界、目的地为外部IP网络、流量类型为IP路由协议时,报文会通过安全通道在域内传输并进出SDN控制层,按照本发明给出的路由协议报文处理方法进行处理;而其余四种情况,报文均未到达SDN控制层,不会通过安全通道在域内传输,而是在SDN数据平面就直接被转发,即是步骤B中未与边界接口匹配的协议报文直接执行转发流程的情况。
表1
本发明中,路由协议需要进行的报文交互由SDN控制层进行收发,并利用SDN控制层与SDN数据平面间的安全通道在SDN网内传递,最终由SDN网络的边界接口发出给协议邻居;对路由协议的处理则由SDN控制层扩展完成,即由路由协议处理装置完成;路由协议处理后的结果即核心路由表合并入流表后,计算出到达该路由目的地在SDN域内部的路径,生成路径上每个转发器针对该条路由的流表项;并将生成的流表项下发至SDN数据平面。因而,本发明使SDN网络能无缝地与传统IP网络互联互通并对原网络路由规划的影响减到最低,这将极大的提高SDN网络部署实施的适应能力,有助于SDN技术组网方案的推广应用,加速SDN网络对传统IP网络替代的节奏。
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。