本发明涉及计算机技术领域,具体地说是一种sdn流表下发系统及方法。
背景技术:
sdn即软件定义网络(softwaredefinednetworking,sdn),是以openflow协议为基础的网络架构,通过虚拟化技术并采用集中式的控制方式,将网络设备的控制面和数据面分离,易于资源的灵活调度。包含sdn交换机和sdn控制器,其中,sdn控制器负责网络的拓扑管理,并配置转发流表;openflow交换机只需按照sdn控制器的设置来完成数据包的转发。
异构计算主要是指使用不同体系的计算单元(cpu、gpu、fpga等)组成计算系统的方式。专有的计算单元工作频率较低,但是具备更高的并行计算能力,总体性能和功耗较低。
当sdn控制器下发流表至sdn交互机,并进行数据转发时,下发的流表是基于openflow协议且是明文,安全性较差,易被恶意攻击和篡改,基于此,本专利提供一种可解决上述问题的sdn流表下发系统及方法。
技术实现要素:
本发明的技术任务是针对以上不足之处,提供一种sdn流表下发系统及方法。
一种sdn流表下发系统,包括sdn控制器、sdn交换机、及与该sdn交换机连接的访问计算机,其中sdn控制器内置异构加速卡,该异构加速卡与sdn控制器的cpu相连,所述sdn控制器用于生成流表,并经异构加速卡进行加密,加速后的流表信息发送至sdn交换机中进行解密,并将解密后的流表发送至访问计算机中。
所述sdn控制器通过openflow协议与sdn交换机进性网络控制。
所述异构加速卡采用fpga芯片,该fpga芯片采用pcie接口与sdn控制器的cpu相连。
所述sdn控制器配置有一个,sdn交换机配置有n个,相对应的,访问计算机配置有n个,这里的n为大于等于1的自然数。
一种sdn流表下发方法,其实现过程为,
首先通过sdn控制器生成流表;
然后通过异构加速卡进行加密,并由sdn控制器将流表文件发送至sdn交换机;
sdn交互机接收到的流表信息后,解密该信息并以预设的网络访问方式从sdn控制器获取所述流文件中的流表项,根据获取的流表项配置并下发流表至访问计算机中。
所述sdn控制器产生流表时,通过调用opencl协议接口将数据传入至异构加速卡中,并在该异构加速卡中设定加密算法对流表文件进行加密,并将加密后的文件发送至sdn交换机中。
所述异构加速卡采用fpga芯片,sdn控制器启动后并产生流表文件时,通过调用opencl协议接口传入待加密流表文件和核函数将数据,在fpga芯片中进行加密;相对应的,sdn交换机收到sdn控制器下发的流表文件时,再通过调用opencl协议接口传入待解密的流表文件和核函数将数据传入至fpga芯片对用户进行加密对文件进行解密,进行数据转发,完成网络交换。
本发明的一种sdn流表下发系统及方法和现有技术相比,具有以下有益效果:
本发明的一种sdn流表下发系统及方法,通过对流表文件的加密,能够保证sdn网络控制通信的安全性,同时,由于异构加速卡具有低功耗、并行处理和高吞吐量的优势,能够降低系统cpu占用率,提高整个sdn控制器的稳定性,实用性强,适用范围广泛,易于推广。
附图说明
附图1为本发明系统的具体实施方式示意图。
附图2为本发明方法的具体实施方式流程图。
具体实施方式
为了使本技术领域的人员更好地理解本发明的方案,下面结合具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如附图1所示,一种sdn流表下发系统,包括sdn控制器、sdn交换机、及与该sdn交换机连接的访问计算机,其中sdn控制器内置异构加速卡,该异构加速卡与sdn控制器的cpu相连,所述sdn控制器用于生成流表,并经异构加速卡进行加密,加速后的流表信息发送至sdn交换机中进行解密,并将解密后的流表发送至访问计算机中。
所述sdn控制器通过openflow协议与sdn交换机进性网络控制。
所述异构加速卡采用fpga芯片,该fpga芯片采用pcie接口与sdn控制器的cpu相连。
所述sdn控制器配置有一个,sdn交换机配置有n个,相对应的,访问计算机配置有n个,这里的n为大于等于1的自然数。
一种sdn流表下发方法,本发明的实质:当sdn控制器需要产生流表时,通过调用opencl接口将数据传入至如fpga芯片的异构加速卡对流表文件进行加密,完成数据的加密,并将加密后的文件发送至sdn交换机中,sdn交换机收到该加密流文件后,解密该文件,通过流表对数据进行转发,完成网络交换,保证其sdn网络通信的安全性,同时由于fpga具备的高并行计算能力,能够降低系统的cpu占用了,提高整个sdn控制器的稳定性。
其实现过程为,
首先通过sdn控制器生成流表;
然后通过异构加速卡进行加密,并由sdn控制器将流表文件发送至sdn交换机;
sdn交互机接收到的流表信息后,解密该信息并以预设的网络访问方式从sdn控制器获取所述流文件中的流表项,根据获取的流表项配置并下发流表至访问计算机中。
所述sdn控制器产生流表时,通过调用opencl协议接口将数据传入至异构加速卡中,并在该异构加速卡中设定加密算法对流表文件进行加密,并将加密后的文件发送至sdn交换机中。
下面给出一个实施例:
所述异构加速卡采用fpga芯片,sdn控制器启动后并产生流表文件时,通过调用opencl接口clenqueuendrange传入待加密流表文件和核函数将数据传入至fpga进行加密,其中,核函数为fpga设定的加密算法(aes),完成结束话单数据加密存储调用生成的秘钥对流表文件进行加密。
sdn交换机收到控制器下发的流表文件时,再通过调用opencl接口clenqueuendrange传入待解密的流表文件和核函数将数据传入至fpga对用户进行加密对文件进行解密,进行数据转发,完成网络交换。
本发明通过对流表文件的加密,能够保证sdn网络控制通信的安全性。
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。