软件定义交换网的通信方法/系统、可读存储介质及设备与流程

文档序号:14725352发布日期:2018-06-19 06:11阅读:127来源:国知局

本发明属于云计算和计算机网络领域,涉及一种通信方法和系统,特别是涉及一种软件定义交换网的通信方法/系统、可读存储介质及设备。



背景技术:

OpenStack是现在实现云计算平台非常热门的一种技术实现方式,成为了业界公认的最成功的开源项目之一,同时也成为了业内公认的私有云标准。市场上有非常多的基于OpenStack二次开发的云平台产品。

作为OpenStack云平台中的三大关键基础资源之一,Neutron网络的管理相当复杂,各种网络功能和配置对用户的要求很高,而且出现问题以后非常难以定位原因,而且开源社区版本的虚拟网络性能表现不是很理想。因此,依靠其内在的高灵活性和可编程性,开发可对接OpenStack Neutron的SDN网络就成为了一个技术上的必然选择和当前主流趋势。然而,由于Neutron网络功能众多,各种功能特性也具有很大区别,导致了设计开发在功能和性能上能满足要求的SDN网络难度很大。这其中,如何设计一种高效的多流表方案以达到灵活性和性能的统一就成为了一个关键因素。

因此,如何提供一种软件定义交换网的通信方法/系统、可读存储介质及设备,以解决现有技术在功能和性能上无法满足要求的SDN网络难度,导致灵活性和性能的不统一等缺陷,实已成为本领域技术人员亟待解决的技术问题。



技术实现要素:

鉴于以上所述现有技术的缺点,本发明的目的在于提供一种软件定义交换网的通信方法/系统、可读存储介质及设备,用于解决现有技术在功能和性能上无法满足要求的SDN网络难度,导致灵活性和性能的不统一的问题。

为实现上述目的及其他相关目的,本发明一方面提供一种软件定义交换网的通信方法,所述软件定义交互网包括与控制器连接的虚拟交换机、转发交换机、外网出口交换机及与所述虚拟交换机连接的虚拟机;所述软件定义交换网的通信方法包括:待所述软件定义交换网中出现网络通信请求时,计算所述虚拟交换机、转发交换机、外网出口交换机之间的通信路径;为所述虚拟交换机、转发交换机、外网出口交换机分配用于路由交换的标签;根据所述通信路径,建立基于所述标签的、与所述虚拟交换机、转发交换机、外网出口交换机对应的数据流表,并予以下发所述数据流表。

于本发明的一实施例中,所述标签为基于虚拟局域网的标识号码的标签。

于本发明的一实施例中,与所述虚拟交换机对应的数据流表包括:对应于处理本地虚拟机发送的数据包的流水线和对应于处理其他交换机转换的带有标签的数据包的流水线。

于本发明的一实施例中,对应于处理本地虚拟机发送的数据包的流水线包括0号出口分发表、1号输出防火墙表、2号输出QoS表、3至10号的网络功能区表、11号虚拟机间通信会话表和12号标签转发表,最终由12号标签转发表输出至不同的交换机上联端口;对应于处理其他交换机转换的带有标签的数据包的流水线包括13至20号的网络功能区表、21号入口防火墙表、22号入口QoS表和30号本地主机转发表,最终由30号本地主机转发表输出至不同本地虚拟机。

于本发明的一实施例中,与所述转发交换机对应的数据流表包括0号标签转发表,该0号标签转发表根据数据包中的不同标签转发至不同的端口。

于本发明的一实施例中,与所述外网出口交换机对应的数据流表包括对应于处理其他交换机转发过来的由虚拟机发出的数据包的流水线和外连网口发送过来的数据包的流水线。

于本发明的一实施例中,所述对应于处理其他交换机转发过来的由虚拟机发出的数据包的流水线包括0号流表会根据数据包的实际情况选择不同的流水线进行处理。外连网口发送过来的数据包流经的流水线包括0号出口分发表、1号输入防火墙表、2号输入QoS表、3至10号的网络功能区表和12号标签转发表,最终由12号标签转发表通过不同的内联端口输出至内部交换机;所述外连网口发送过来的数据包的流水线包括21号外连输出防火墙表、22号外连输出QoS表和30号外部网关MAC转发表,最终由30号外部网关MAC转发表输出至不同的外联端口。

本发明另一方面提供一种软件定义交换网的通信系统,所述软件定义交互网包括与控制器连接的虚拟交换机、转发交换机、外网出口交换机及与所述虚拟交换机连接的虚拟机;所述软件定义交换网的通信系统包括:计算模块,用于待所述软件定义交换网中出现网络通信请求时,计算所述虚拟交换机、转发交换机、外网出口交换机之间的通信路径;分配模块,用于为所述虚拟交换机、转发交换机、外网出口交换机分配用于路由交换的标签;流表建立模块,用于根据所述通信路径,建立基于所述标签的、与所述虚拟交换机、转发交换机、外网出口交换机对应的数据流表;通信模块,用于下发所述数据流表。

本发明又一方面提供一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现所述软件定义交换网的通信方法。

本发明最后一方面提供一种设备,包括:处理器及存储器;所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述设备执行所述软件定义交换网的通信方法。

如上所述,本发明的软件定义交换网的通信方法/系统、可读存储介质及设备,具有以下

有益效果:

第一,本发明通过多流表分级有效降低SDN网络流表数量,可有效提高交换机的性能;

第二,本发明通过基于标签进行交换网中的数据包转发,可大大降低一次通信的路径计算时间以及流表下发数量,有效提高数据通信的速度,并可支持现有物理SDN交换机组网;

第三,本发明可支持网络功能的扩展,具备适应不同云计算平台的能力,解决了现有云计算环境中网络灵活性和性能方面的矛盾。

附图说明

图1显示为本发明的软件定义交换网的架构图。

图2显示为本发明的软件定义交换网的通信方法于一实施例中的流程示意图。

图3显示为本发明的与所述虚拟交换机对应的数据流表的两个流水线示意图。

图4显示为本发明的与所述转发交换机对应的数据流表示意图。

图5显示为本发明的与所述外网出口交换机对应的数据流表的两个流水线示意图。

图6显示为本发明的软件定义交换网的通信系统于一实施例中的原理结构示意图。

元件标号说明

1 软件定义交换网

11 OVS虚拟交换机

12 虚拟机

13 转发交换机

14 外网出口交换机

15 控制器

6 软件定义交换网的通信系统

61 计算模块

62 分配模块

63 流表建立模块

64 通信模块

S21~S23 步骤

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

本发明所提供的软件定义交换网的通信方法/系统、可读存储介质及设备的技术原理:

基于标准OpenFlow流表实现OpenStack中虚拟机的内外网所有网络通信,交换网中的交换机分为计算节点OVS虚拟交换机、转发交换机、外网出口交换机三种角色,根据其角色分别下发不同的流表。转发交换机和出口交换机都可以采用支持OpenFlow协议的物理交换机。

通过控制器计算交换机之间的通信路径,每个交换机分配一个唯一的基于Vlan ID的标签,根据路径建立基于Vlan ID标签的数据流表,当有网络通信请求时候,在通信两端点所在交换机上分别建立两个流表,在起点处数据加上Vlan ID的标签并放在路径上,在终点把数据拆解标签并转发到指定的通信端点上,完成数据通信。交换机间的通信路径都基于标签下发OpenFlow流表。转发交换机上只要基于标签进行路由的流表,因此流量数量会得以大大降低。

实施例一

本实施例提供一种软件定义交换网的通信方法,所述软件定义交互网包括与控制器连接的虚拟交换机、转发交换机、外网出口交换机及与所述虚拟交换机连接的虚拟机;所述软件定义交换网的通信方法包括:

待所述软件定义交换网中出现网络通信请求时,计算所述虚拟交换机、转发交换机、外网出口交换机之间的通信路径;

为所述虚拟交换机、转发交换机、外网出口交换机分配用于路由交换的标签;

根据所述通信路径,建立基于所述标签的、与所述虚拟交换机、转发交换机、外网出口交换机对应的数据流表,并予以下发所述数据流表。

以下将结合图示对本实施例所提供的软件定义交换网的通信方法进行详细描述。请参阅图1,显示为软件定义交换网的架构图。如图1所示,所述软件定义交换网1包括若干连接在虚拟交换机11(于本实施例中,所述虚拟交换11为OVS虚拟交换机)上的虚拟机12、与虚拟交换机11通信链接的转发交换机13、与所述转发交换机13通信链接的外网出口交换机14,及与所述虚拟交换机11、转发交换机13、外网出口交换机14通信链接的控制器15。所述外网出口交换机14上设置外网出口1,外网出口2…。其中,所述OVS虚拟交换机为支持openflow协议的交换机,负载下发与其连接的虚拟机12待发送的数据包。所述转发交换机将接收从所OVS虚拟交换机接收到的数据包转发至所述外网出口交换机14,以通过所述外网出口交换机14将所述数据包发送至目的地。

请参阅图2,显示为软件定义交换网的通信方法于一实施例中的流程示意图。如图2所示,所述软件定义交换网的通信方法具体包括以下步骤:

S21,待所述软件定义交换网中出现网络通信请求时,计算所述虚拟交换机、转发交换机、外网出口交换机之间的通信路径。在本实施例中,采用最短路径算法,从一起始点出发,沿交换机连接边到达目的地所经过的路径中,各边上权值之和最小的一条路径叫做最短路径。解决最短路的问题有以下算法,Dijkstra算法,Bellman-Ford算法,Floyd算法和SPFA算法等。

例如,确定起点的最短路径问题-即已知起始结点,求最短路径的问题。适合使用Dijkstra算法。

确定终点的最短路径问题-与确定起点的问题相反,该问题是已知终结结点,求最短路径的问题。在无向图中该问题与确定起点的问题完全等同,在有向图中该问题等同于把所有路径方向反转的确定起点的问题。

确定起点终点的最短路径问题-即已知起点和终点,求两结点之间的最短路径。

全局最短路径问题-求图中所有的最短路径。适合使用Floyd-Warshall算法。

S22,为所述虚拟交换机、转发交换机、外网出口交换机分配用于路由交换的标签。在本实施例中,所述标签为基于虚拟局域网的标识号码(即Vlan ID)的标签。

本实施例使用VLAN ID作为数据包标签,标签转发表上面的流表都是类似于如下的流表模式:

IP,dl_vlan=x,actions=output:y。

S23,根据所述通信路径,建立基于所述标签的、与所述虚拟交换机、转发交换机、外网出口交换机对应的数据流表,并予以下发所述数据流表。

具体地,根据通信路径建立基于Vlan ID的标签的数据流表,当有网络通信请求时候,在通信两端点所在交换机上分别建立两个数据流表,在起点处数据加上Vlan ID的标签并放在通信路径上,在终点把数据拆解标签并转发到指定的通信端点上,完成数据通信。

请参阅图3,显示为与所述虚拟交换机对应的数据流表的两个流水线示意图。如图3所示,与所述虚拟交换机对应的数据流表包括对应于处理本地虚拟机发送的数据包的流水线和对应于处理其他交换机转换的带有标签的数据包的流水线。对应于处理本地虚拟机发送的数据包的流水线包括0号出口分发表、1号输出防火墙表、2号输出QoS表、3至10号的网络功能区表、11号虚拟机间通信会话表和12号标签转发表,最终由12号标签转发表输出至不同的交换机上联端口1…n。对应于处理其他交换机转换的带有标签的数据包的流水线包括13至20号的网络功能区表、21号入口防火墙表、22号入口QoS表和30号本地主机转发表,最终由30号本地主机转发表输出至不同本地虚拟机。

如图3中所示虚线框图为网络功能区,所述网络功能区中的每一个流表都对应于一个单独的网络功能,多个网络功能之间彼此隔离,可以根据实际需求增加或删除网络功能,以适应不能的云平台环境,而且可以根据其功能特性分别支持反应式和预先式两种下发策略。例如,对于Floating IP流表,其中的流表下发方式为预先下发式,当用户在OpenStack平台中更新相应配置以后可以直接在5号和15号表中下发相应的流表。但是对于NAT流表,就要求在每次NAT会话时才能以反应式的方式在4号和14号表中下发相应的流表。

请参阅图4,显示为与所述转发交换机对应的数据流表示意图。在本实施例中,由于所述转发交换机只负责将虚拟交换机发送的数据包转发至外网出口交换机。因此,与所述转发交换机对应的数据流表包括0号标签转发表,该0号标签转发表根据数据包中的不同标签转发至不同的端口。在本实施例中,转发交换机上面的流表只和网络拓扑有关,和主机的通信过程无关,所以只在拓扑发生变化影响到交换机之间的转发路径时才需要进行更新。

请参阅图5,显示为与所述外网出口交换机对应的数据流表的两个流水线示意图。如图5所示,与所述外网出口交换机对应的数据流表包括对应于处理其他交换机转发过来的由虚拟机发出的数据包的流水线和外连网口发送过来的数据包的流水线。所述对应于处理其他交换机转发过来的由虚拟机发出的数据包的流水线包括0号流表会根据数据包的实际情况选择不同的流水线进行处理。外连网口发送过来的数据包流经的流水线包括0号出口分发表、1号输入防火墙表、2号输入QoS表、3至10号的网络功能区表和12号标签转发表,最终由12号标签转发表通过不同的内联端口1…n输出至内部交换机。所述外连网口发送过来的数据包的流水线包括21号外连输出防火墙表、22号外连输出QoS表和30号外部网关MAC转发表,最终由30号外部网关MAC转发表输出至不同的外联端口1…n。

在本实施例中,为了能和OVS虚拟交换机上面的多流表方案保持相对应,将外网出口作为一个连接所有外部主机的本地端口。如图5所示,虚线框所示外网出口交换机的网络功能去,但是和OVS虚拟交换机上面的多流表方案最大的不同是外网出口交换机上的网络功能区流表只有一份,目的是为了减少出口交换机上面的流表数量,而把其实现在了每一个OVS虚拟交换机上面。

本实施例还提供一种可读存储介质(亦称为计算机可读存储介质),其上存储有计算机程序,其特征在于,该程序被处理器执行时实现所述软件定义交换网的通信方法。本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

本实施例所述的软件定义交换网的通信方法,具有以下有益效果:

第一,通过多流表分级有效降低SDN网络流表数量,可有效提高交换机的性能;

第二,通过基于标签进行交换网中的数据包转发,可大大降低一次通信的路径计算时间以及流表下发数量,有效提高数据通信的速度,并可支持现有物理SDN交换机组网;

第三,可支持网络功能的扩展,具备适应不同云计算平台的能力,解决了现有云计算环境中网络灵活性和性能方面的矛盾。

实施例二

本实施例提供一种软件定义交换网的通信系统,所述软件定义交互网包括与控制器连接的虚拟交换机、转发交换机、外网出口交换机及与所述虚拟交换机连接的虚拟机;所述软件定义交换网的通信系统包括:

计算模块,用于待所述软件定义交换网中出现网络通信请求时,计算所述虚拟交换机、转发交换机、外网出口交换机之间的通信路径;

分配模块,用于为所述虚拟交换机、转发交换机、外网出口交换机分配用于路由交换的标签;

流表建立模块,用于根据所述通信路径,建立基于所述标签的、与所述虚拟交换机、转发交换机、外网出口交换机对应的数据流表;

通信模块,用于下发所述数据流表。

以下将结合图示对本实施例所提供的软件定义交换网的通信系统进行详细描述。需要说明的是,应理解以下通信系统的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,x模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上x模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。

例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(ApplicationSpecificIntegratedCircuit,简称ASIC),或,一个或多个微处理器(digitalsingnalprocessor,简称DSP),或,一个或者多个现场可编程门阵列(FieldProgrammableGateArray,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessingUnit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。

请参阅图6,显示为软件定义交换网的通信系统于一实施例中的原理结构示意图。如图6所示,所述软件定义交换网的通信系统6包括:计算模块61、分配模块62、流表建立模块63及通信模块64。

所述计算模块61用于待所述软件定义交换网中出现网络通信请求时,计算所述虚拟交换机、转发交换机、外网出口交换机之间的通信路径。在本实施例中,采用最短路径算法,从一起始点出发,沿交换机连接边到达目的地所经过的路径中,各边上权值之和最小的一条路径叫做最短路径。解决最短路的问题有以下算法,Dijkstra算法,Bellman-Ford算法,Floyd算法和SPFA算法等。

与所述计算模块61耦合的分配模块62用于为所述虚拟交换机、转发交换机、外网出口交换机分配用于路由交换的标签。在本实施例中,所述标签为基于虚拟局域网的标识号码(即Vlan ID)的标签。

本实施例使用VLAN ID作为数据包标签,标签转发表上面的流表都是类似于如下的流表模式:

IP,dl_vlan=x,actions=output:y。

与所述计算模块61和分配模块62耦合的流表建立模块63用于根据所述通信路径,建立基于所述标签的、与所述虚拟交换机、转发交换机、外网出口交换机对应的数据流表,并通过所述通信模块64予以下发所述数据流表。

具体地,根据通信路径建立基于Vlan ID的标签的数据流表,当有网络通信请求时候,在通信两端点所在交换机上分别建立两个数据流表,在起点处数据加上Vlan ID的标签并放在通信路径上,在终点把数据拆解标签并转发到指定的通信端点上,完成数据通信。

在本实施例中,与所述虚拟交换机对应的数据流表包括对应于处理本地虚拟机发送的数据包的流水线和对应于处理其他交换机转换的带有标签的数据包的流水线。对应于处理本地虚拟机发送的数据包的流水线包括0号出口分发表、1号输出防火墙表、2号输出QoS表、3至10号的网络功能区表、11号虚拟机间通信会话表和12号标签转发表,最终由12号标签转发表输出至不同的交换机上联端口1…n。对应于处理其他交换机转换的带有标签的数据包的流水线包括13至20号的网络功能区表、21号入口防火墙表、22号入口QoS表和30号本地主机转发表,最终由30号本地主机转发表输出至不同本地虚拟机。

在本实施例中,由于所述转发交换机只负责将虚拟交换机发送的数据包转发至外网出口交换机。因此,与所述转发交换机对应的数据流表包括0号标签转发表,该0号标签转发表根据数据包中的不同标签转发至不同的端口。在本实施例中,转发交换机上面的流表只和网络拓扑有关,和主机的通信过程无关,所以只在拓扑发生变化影响到交换机之间的转发路径时才需要进行更新。

在本实施例中,与所述外网出口交换机对应的数据流表包括对应于处理其他交换机转发过来的由虚拟机发出的数据包的流水线和外连网口发送过来的数据包的流水线。所述对应于处理其他交换机转发过来的由虚拟机发出的数据包的流水线包括0号流表会根据数据包的实际情况选择不同的流水线进行处理。外连网口发送过来的数据包流经的流水线包括0号出口分发表、1号输入防火墙表、2号输入QoS表、3至10号的网络功能区表和12号标签转发表,最终由12号标签转发表通过不同的内联端口1…n输出至内部交换机。所述外连网口发送过来的数据包的流水线包括21号外连输出防火墙表、22号外连输出QoS表和30号外部网关MAC转发表,最终由30号外部网关MAC转发表输出至不同的外联端口1…n。

实施例三

本实施例提供一种设备,该设备包括:处理器、存储器、收发器、通信接口和系统总线;存储器和通信接口通过系统总线与处理器和收发器连接并完成相互间的通信,存储器用于存储计算机程序,通信接口用于和其他设备进行通信,处理器和收发器用于运行计算机程序,使设备执行如实施例所述软件定义交换网的通信方法的各个步骤。

上述提到的系统总线可以是外设部件互连标准(PeripheralPomponentInterconnect,简称PCI)总线或扩展工业标准结构(ExtendedIndustryStandardArchitecture,简称EISA)总线等。该系统总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于实现数据库访问装置与其他设备(例如客户端、读写库和只读库)之间的通信。存储器可能包含随机存取存储器(RandomAccessMemory,简称RAM),也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

上述的处理器可以是通用处理器,包括中央处理器(CentralProcessingUnit,简称CPU)、网络处理器(NetworkProcessor,简称NP)等;还可以是数字信号处理器(DigitalSignalProcessing,简称DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-ProgrammableGateArray,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

综上所述,本发明所述软件定义交换网的通信方法/系统、可读存储介质及设备,具有以下有益效果:

第一,本发明通过多流表分级有效降低SDN网络流表数量,可有效提高交换机的性能;

第二,本发明通过基于标签进行交换网中的数据包转发,可大大降低一次通信的路径计算时间以及流表下发数量,有效提高数据通信的速度,并可支持现有物理SDN交换机组网;

第三,本发明可支持网络功能的扩展,具备适应不同云计算平台的能力,解决了现有云计算环境中网络灵活性和性能方面的矛盾。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1