基于OpenFlow的云计算分布式网络实现方法、系统技术方案

技术编号:15794867 阅读:302 留言:0更新日期:2017-07-10 10:13
一种基于OpenFlow的云计算分布式网络实现方法、系统,包括:云计算网络平台将消息通知发送给虚拟交换机和/或OpenFlow交换机;当计算节点或网络节点上的所述虚拟交换机收到所述消息通知时,下发用于指示虚拟机流量进出的流表;当所述OpenFlow交换机收到所述消息通知时,根据配置数据下发以下7张流表:用于处理广播报文的流表、用于识别网络的流表、用于生成2层转发信息的流表、用于安全组过滤的流表、用于生成3层分布式转发信息的流表、用于防火墙过滤的流表、用于转发的流表。

【技术实现步骤摘要】
基于OpenFlow的云计算分布式网络实现方法、系统
本专利技术涉及云计算技术及OpenFlow技术,尤其涉及一种基于OpenFlow的云计算分布式网络实现方法、系统。
技术介绍
云计算(CloudComputing)是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机和其他设备。云计算网络是云计算的重要组成部分,云计算网络的基本核心包括虚拟2层交换机、虚拟路由器、安全组以及虚拟防火墙等,需要能够为租户虚拟网络提供互相隔离、安全功能、以及按照要求实现2、3层互通的功能。云计算网络上的虚拟设备是基于底层真实物理设备虚拟出来的;目前底层物理分为2种:一种是通过网络节点服务器上的系统自带的模块来实现的,如ip表(iptables)、ip路由(iproute)、ip命名空间(ipnamespace)等;另一种是通过把报文转发到专用的外部物理设备来实现的,如能够提供虚拟化的交换机、路由器。对于外部物理设备,目前大多数支持虚拟化的交换机、路由器的方式是基于传统交换机。传统交换机的报文转发功能和转发策略在同一台硬件上,并且每台交换机各自为政,不是统一管理。开流(OpenFlow)技术将传统交换机上的报文转发和转发策略分离开来,用专门的一台控制器(controller),一般为服务器通过网线和交换机连接。这样,原来同在一台交换机设备上的报文转发功能(硬件芯片实现)和报文转发策略(各种软件协议)被分开到了不同的硬件设备上。而一台控制器还可以控制多台OpenFlow交换机,从而实现了统一的转发控制端,更有效地控制了网络。目前,涉及到云计算分布式网络的方案主要有:方案一:在计算节点上为每个虚拟路由器创建了单独的虚拟网络空间,通过系统自带的路由功能来实现分布式虚拟路由器的3层路由转发功能。在计算节点上还创建了内部网桥,并把虚拟机连接到了内部网桥上,通过流表规则和内部虚拟局域网(VLAN,VirtualLocalAreaNetwork)转换,实现虚拟机之前的2层隔离和转发。内部网桥与内网网桥通过vethpair连接,并通过外网网桥连接其他节点。解决了虚拟机网络单点故障和大负载问题;可用于云计算的分布式路由器实现。方案二:分布式虚拟交换机由多个Openflow虚拟交换机、OpenFlow控制器、物理交换机端口组成;所述Openflow虚拟交换机与所述OpenFlow控制器根据预设策略,进行通信。该方法基于软件定义网络(SDN,SoftwareDefinedNetwork)思想构建分布式虚拟交换机,分布式虚拟交换机具体通过OpenFlow协议实现;分布式虚拟交换机通过OpenFlow控制器集中配置整个数据中心的虚拟交换机,从而简化了虚拟机网络连接,实现了对云数据中心虚拟网络环境的集中管理和智能监控。上述方案一至少存在如下技术问题:1)通常在计算节点的虚拟交换机上配置很多复杂的流表,做各种隧道封装、解封装、跨越多个namespace以及3个网桥,这个连接及配置很复杂,而且是在计算节点上进行这些路由、跨namespace、跨网桥的软件处理,速度会很慢,而计算节点应该把更多的资源留给虚拟机使用。2)没有解决机架间节点流量转发的效率问题和VLAN网络有4094的规模限制问题。上述方案二至少存在如下技术问题:1)OpenFlow控制器以及控制器上的应用软件(APP)通常是单独放在一台专用服务器上的,容易产生单点故障。2)未解决如何处理广播报文的问题。3)未涉及如何解决云计算网络中常用的安全组和防火墙等安全过滤功能。
技术实现思路
为解决上述技术问题,本专利技术实施例提供了一种基于OpenFlow的云计算分布式网络实现方法、系统。本专利技术实施例提供的基于OpenFlow的云计算分布式网络实现方法,包括:云计算网络平台将消息通知发送给虚拟交换机和/或OpenFlow交换机;当计算节点或网络节点上的所述虚拟交换机收到所述消息通知时,下发用于指示虚拟机流量进出的流表;当所述OpenFlow交换机收到所述消息通知时,根据配置数据下发以下7张流表:用于处理广播报文的流表、用于识别网络的流表、用于生成2层转发信息的流表、用于安全组过滤的流表、用于生成3层分布式转发信息的流表、用于防火墙过滤的流表、用于转发的流表。本专利技术实施例中,所述方法还包括:所述云计算网络平台将获得的配置数据发送给所述OpenFlow交换机;其中,所述配置数据包括:所述云计算网络平台根据下联的OpenFlow交换机个数,为各交换机建立逻辑上的全网状隧道;当配置虚拟网络时,为每个计算节点上分配本地有效的虚拟网络ID:VLAN_ID,以及为虚拟网络分配全局唯一的隧道ID:TUN_ID,并保存各节点上的本地VLAN_ID和全局TUN_ID之间的映射关系;为每个计算节点分配标识符:HOST_ID,该标识符全局有效;为每个虚拟机分配标识符:VM_ID,该标识符本HOST主机有效,并保存虚拟机和网口的映射关系;为每个虚拟路由器分配标识符:ROUTER_ID,该标识符全局有效;虚拟机所属的计算节点、虚拟机网口的物理mac地址和名称、以及对应的OpenFlow端口号、虚拟机属于哪个网络和子网的无类别域间路由CIDR信息;虚拟路由器的配置、连接的子网、接口IP地址信息、以及连接的外部网络接口信息;交换机和计算节点的连接关系。本专利技术实施例中,所述虚拟交换机收到所述消息通知时,下发用于指示虚拟机流量进出的流表,包括:所述虚拟交换机收到用于创建虚拟机的消息通知时,下发用于指示虚拟机流量进出的流表;其中,所述流表包括:表项1:优先级32768,匹配:虚拟机网口,动作:添加VLAN标签,配置vlanid为所述分配的本地VLAN_ID,转发到连接OpenFlow交换机的端口;表项2:优先级32767,匹配:连接OpenFlow交换机的端口,虚拟机MAC_DA地址,动作:剥除VLAN标签,发送给虚拟机网口;表项3:优先级0,匹配:任意报文,动作:丢弃。本专利技术实施例中,所述用于处理广播报文的流表,包括:表项1:优先级32768,匹配:MAC_DA为FF:FF:FF:FF:FF:FF,DL_TYPE为0x0806,ARP_OP=1,动作:设置ARP_OP=2,复制MAC_SA到MAC_DA,复制ARP_SHA字段到ARP_THA字段,复制ARP_SPA字段到ARP_TPA字段,复制ARP_TPA字段到ARP_SPA,通过PACKET_IN消息上送所述OpenFlow交换机;表项2:优先级32767,匹配:MAC_DA为FF:FF:FF:FF:FF:FF,且UDP端口号为67的广播报文,动作:通过PACKET_IN消息上送所述OpenFlow交换机;表项3:优先级1,匹配:MAC_DA地址为FF:FF:FF:FF:FF:FF的广播报文,动作:丢弃;表项4:优先级0,匹配:任意报文,动作:跳转到用于识别网络的流表。本专利技术实施例中,所述用于识别网络的流表,包括:表项1:优先级32768,匹配:VLANID,动作:设置METADATA值为HOST_ID和VLAN_ID的拼接:HOST_ID<<13|VLAN_ID;表项2:优先级32767,匹配:TUN_ID,动作:剥除TUN本文档来自技高网
...
基于OpenFlow的云计算分布式网络实现方法、系统

【技术保护点】
一种基于OpenFlow的云计算分布式网络实现方法,其特征在于,所述方法包括:云计算网络平台将消息通知发送给虚拟交换机和/或OpenFlow交换机;当计算节点或网络节点上的所述虚拟交换机收到所述消息通知时,下发用于指示虚拟机流量进出的流表;当所述OpenFlow交换机收到所述消息通知时,根据配置数据下发以下7张流表:用于处理广播报文的流表、用于识别网络的流表、用于生成2层转发信息的流表、用于安全组过滤的流表、用于生成3层分布式转发信息的流表、用于防火墙过滤的流表、用于转发的流表。

【技术特征摘要】
1.一种基于OpenFlow的云计算分布式网络实现方法,其特征在于,所述方法包括:云计算网络平台将消息通知发送给虚拟交换机和/或OpenFlow交换机;当计算节点或网络节点上的所述虚拟交换机收到所述消息通知时,下发用于指示虚拟机流量进出的流表;当所述OpenFlow交换机收到所述消息通知时,根据配置数据下发以下7张流表:用于处理广播报文的流表、用于识别网络的流表、用于生成2层转发信息的流表、用于安全组过滤的流表、用于生成3层分布式转发信息的流表、用于防火墙过滤的流表、用于转发的流表。2.根据权利要求1所述的基于OpenFlow的云计算分布式网络实现方法,其特征在于,所述方法还包括:所述云计算网络平台将获得的配置数据发送给所述OpenFlow交换机;其中,所述配置数据包括:所述云计算网络平台根据下联的OpenFlow交换机个数,为各交换机建立逻辑上的全网状隧道;当配置虚拟网络时,为每个计算节点上分配本地有效的虚拟网络ID:VLAN_ID,以及为虚拟网络分配全局唯一的隧道ID:TUN_ID,并保存各节点上的本地VLAN_ID和全局TUN_ID之间的映射关系;为每个计算节点分配标识符:HOST_ID,该标识符全局有效;为每个虚拟机分配标识符:VM_ID,该标识符本HOST主机有效,并保存虚拟机和网口的映射关系;为每个虚拟路由器分配标识符:ROUTER_ID,该标识符全局有效;虚拟机所属的计算节点、虚拟机网口的物理mac地址和名称、以及对应的OpenFlow端口号、虚拟机属于哪个网络和子网的无类别域间路由CIDR信息;虚拟路由器的配置、连接的子网、接口IP地址信息、以及连接的外部网络接口信息;交换机和计算节点的连接关系。3.根据权利要求1所述的基于OpenFlow的云计算分布式网络实现方法,其特征在于,所述虚拟交换机收到所述消息通知时,下发用于指示虚拟机流量进出的流表,包括:所述虚拟交换机收到用于创建虚拟机的消息通知时,下发用于指示虚拟机流量进出的流表;其中,所述流表包括:表项1:优先级32768,匹配:虚拟机网口,动作:添加VLAN标签,配置vlanid为所述分配的本地VLAN_ID,转发到连接OpenFlow交换机的端口;表项2:优先级32767,匹配:连接OpenFlow交换机的端口,虚拟机MAC_DA地址,动作:剥除VLAN标签,发送给虚拟机网口;表项3:优先级0,匹配:任意报文,动作:丢弃。4.根据权利要求1所述的基于OpenFlow的云计算分布式网络实现方法,其特征在于,所述用于处理广播报文的流表,包括:表项1:优先级32768,匹配:MAC_DA为FF:FF:FF:FF:FF:FF,DL_TYPE为0x0806,ARP_OP=1,动作:设置ARP_OP=2,复制MAC_SA到MAC_DA,复制ARP_SHA字段到ARP_THA字段,复制ARP_SPA字段到ARP_TPA字段,复制ARP_TPA字段到ARP_SPA,通过PACKET_IN消息上送所述OpenFlow交换机;表项2:优先级32767,匹配:MAC_DA为FF:FF:FF:FF:FF:FF,且UDP端口号为67的广播报文,动作:通过PACKET_IN消息上送所述OpenFlow交换机;表项3:优先级1,匹配:MAC_DA地址为FF:FF:FF:FF:FF:FF的广播报文,动作:丢弃;表项4:优先级0,匹配:任意报文,动作:跳转到用于识别网络的流表。5.根据权利要求1所述的基于OpenFlow的云计算分布式网络实现方法,其特征在于,所述用于识别网络的流表,包括:表项1:优先级32768,匹配:VLANID,动作:设置METADATA值为HOST_ID和VLAN_ID的拼接:HOST_ID<<13|VLAN_ID;表项2:优先级32767,匹配:TUN_ID,动作:剥除TUNNEL头,根据映射关系,添加VLAN标签,配置本地VLAN_ID,设置METADATA值为HOST_ID和VLAN_ID的拼接:HOST_ID<<13|VLAN_ID;表项3:优先级0,匹配:任意报文,动作:跳转到用于生成2层转发信息的流表。6.根据权利要求1所述的基于OpenFlow的云计算分布式网络实现方法,其特征在于,所述用于生成2层转发信息的流表,包括:表项1:优先级32768,匹配MAC_DA为交换机直连节点的虚拟机MAC地址,动作:根据查找出的映射关系,设置METADATA的VM_ID字段;根据连接虚拟机所在节点的交换机端口号,设置METADATA的OUT_PORT字段,跳转到用于安全组过滤的流表;表项2:优先级32767,匹配MAC_DA为交换机跨机架连接的虚拟机MAC地址,动作:剥除VLAN标签,并根据映射关系设置对应的TUN_ID,发送给跨机架虚拟机所在节点的隧道端口;表项3:优先级0,匹配:任意报文,动作:跳转到用于安全组过滤的流表。7.根据权利要求1所述的基于OpenFlow的云计算分布式网络实现方法,其特征在于,所述用于安全组过滤的流表,包括:表项1:优先级32768,匹配:通过掩码匹配出METADATA的VM_ID为虚拟机ID,匹配安全组表项的各过滤字段,动作:丢弃;表项2:优先级0,匹配:任意报文,动作:跳转到用于生成3层分布式转发信息的流表。8.根据权利要求1所述的基于OpenFlow的云计算分布式网络实现方法,其特征在于,所述用于生成3层分布式转发信息的流表,包括:表项1:优先级32768,匹配:IP_DA为本交换机直连节点上的虚拟机,动作:配置METADATA中的ROUTER_ID字段为虚拟机所连的虚拟路由器的ID;设置MAC_DA为目的虚拟机的MAC地址;根据连接虚拟机所在节点的交换机端口号,设置METADATA的OUT_PORT字段;表项2:优先级32767,匹配:IP_DA为跨机架连接的节点上的虚拟机,动作:设置METADATA中的ROUTER_ID字段为虚拟机所连的虚拟路由器的ID;配置MAC_DA为目的虚拟机的MAC地址;剥除VLAN标签,根据映射关系设置对应的TUN_ID,发送给跨机架目的虚拟机所在节点的隧道端口。表项3:优先级0,匹配:任意报文,动作:跳转到用于防火墙过滤的流表。9.根据权利要求1所述的基于OpenFlow的云计算分布式网络实现方法,其特征在于,所述用于防火墙过滤的流表,包括:表项1:优先级32768,匹配:通过掩码匹配出METADATA的ROUTER_ID字段为防火墙绑定的虚拟路由器,匹配防火墙规则的各过滤字段,动作:丢弃;表项2:优先级0,匹配:任意报文,动作:跳转到用于转发的流表。10.根据权利要求1所述的基于OpenFlow的云计算分布式网络实现方法,其特征在于,所述用于转发的流表,包括:表项1:优先级32768,匹配:通过掩码匹配出METADATA的OUT_PORT字段不为0,动作:转发到OUT_PORT字段所表示的端口;表项2:优先级0,匹配:任意报文,动作:丢弃。11.根据权利要求4所述的基于OpenFlow的云计算分布式网络实现方法,其特征在于,所述方法还包括:当所述OpenFlow交换机收到PACKET_IN消息时,从所述云计算网络平台获得如下信息:网络节点上DHCP服务的端口MAC地址、OpenFlow端口、网络节点是否和所述OpenFlow交换机在同个机架上、以及端口连接关系。12.根据权利要求11所述的基于OpenFlow的云计算分布式网络实现方法,其特征在于,所述方法还包括:当收到DHCP报文时,将MAC_DA改为网络节点上DHCP服务端口的MAC地址;当网络节点和所述OpenFlow交换机在同个机架上时,通过PACKET_OUT消息把该报文发送到和网络节点相连接的端口上;当网络节点和所述OpenFlow交换机在不同机架上时,剥除VLAN标签,打上对应的TUN_ID,通过PACKET_OUT消息发送到和网络节点相连接的隧道端口上;当收到ARP报文时,通过ARP_SPA查找到对应端口的MAC地址,并配置到报文的MAC_SA和ARP_SHA中,发送该报文到OpenFlow虚拟端口IN_PORT。13.一种基于OpenFl...

【专利技术属性】
技术研发人员:赵怡
申请(专利权)人:中移苏州软件技术有限公司中国移动通信集团公司
类型:发明
国别省市:江苏,32

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

1