本申请涉及计算机技术领域,具体涉及一种网络策略的实现方法和装置。
背景技术:
近年来,云计算技术发展迅速,云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供。云计算技术大大提高了计算效率和敏捷性。
云主机是采用虚拟化技术提供云计算的基础设施即服务(infrastructure-as-a-service,简称iaas)模式服务的产品,云主机具有资源利用率高、高可用性以及快速部署能力,用户可以像使用一台物理服务器一样使用云主机,与租用物理服务器相比,同等性能的云主机具备更低的成本、更好的扩展性和更强的安全可靠性。
用户租用云主机后,通常都有指定网络访问策略以对云主机进行网络访问控制的需求,现有技术网络策略控制是在虚拟机监视器hypervisor上实现的,由于不同厂商的虚拟机监视器hypervisor的类型不同,这导致网络策略控制实现时通用性差,开发成本高,不能满足用户的需求。
技术实现要素:
本申请提供了一种网络策略的实现方法和装置,以解决或部分解决现有技术的问题。
根据本申请的一个方面,提供了一种网络策略的实现方法,应用于分布式虚拟网络设备上运行的云平台的虚拟机中,所述虚拟机与处于混杂模式的第一网络连接,所述第一网络与至少一个租户网络连接,所述租户网络不与物理网络设备连接;包括:
获取与租户网络连接的云主机对应的网络策略;
从所述第一网络接收来自所述租户网络的报文,或者从分布式虚拟网络设备上的数据网络接收发送至所述云主机的报文;其中,所述数据网络与物理网络设备连接;
对所述报文应用所述网络策略。
根据本申请的另一个方面,提供了一种网络策略的实现装置,应用于分布式虚拟网络设备上运行的云平台的虚拟机中,所述虚拟机与处于混杂模式的第一网络连接,所述第一网络与至少一个租户网络连接,所述租户网络不与物理网络设备连接,包括:
策略获取模块,用于获取与租户网络连接的云主机对应的网络策略;
报文接收模块,用于从所述第一网络接收来自所述租户网络的报文,或者从分布式虚拟网络设备上的数据网络接收发送至所述云主机的报文;
其中,所述数据网络与物理网络设备连接;
策略应用模块,用于对所述报文应用所述网络策略。
本申请实施例的有益效果是:本申请提供的网络策略的实现方法和装置,应用于云平台的虚拟机中,由于虚拟机运行在虚拟机监视器hypervisor的上层,利用虚拟机接收云主机的流量,并进行网络策略控制,与现有在虚拟机监视器hypervisor进行网络策略控制相比,屏蔽了不同类型的hypervisor之间的差异,方便了用户定义各种网络策略,提高了网络策略控制的通用性和开发效率,降低了开发成本,满足了用户需求。
附图说明
图1是一种网络策略实现装置的框图;
图2是本申请一个实施例的一种网络策略实现装置的框图;
图3是应用本申请一个实施例的网络策略实现装置的组网图;
图4是本申请一个实施例的网络策略实现装置的应用场景示意图;
图5是应用本申请一个实施例的网络策略实现装置的虚拟机所在的物理服务器的结构图;
图6是本申请一个实施例的网络策略实现装置的功能框图;
图7是本申请一个实施例的网络策略实现方法的流程图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请实施例的应用环境为云平台,一般的,云计算基于大规模的服务器来赋予用户前所未有的计算能力。在云计算对应的服务器集群中各物理服务器都可以支持虚拟化,以提高物理服务器的工作效率。虚拟化,是指通过虚拟化技术将一台物理服务器虚拟为多台逻辑服务器(即,虚拟机)。这样可以在一台物理服务器上同时运行多个逻辑服务器,每个逻辑服务器可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响。
参见图1,虚拟化的一种常用的实现方式是在虚拟服务器和物理服务器的底层硬件之间建立一个抽象层,即hypervisor层。hypervisor或称虚拟机监视器(virtualmachinemonitor,简称vmm)支持多个操作系统和应用共享硬件。hypervisor不但协调着这些硬件资源的访问,也同时在各个虚拟机之间施加防护。当物理服务器启动并执行hypervisor时,它会加载所有虚拟机的操作系统,同时会分配给每一台虚拟机适量的内存,cpu,网络和磁盘。
图1所示的网络策略实现装置的工作过程是:运行在hypervisor层的网络策略实现装置,从网络策略控制器中获取各个云主机的网络策略,然后发送到hypervisor层的相应接口,网络策略实现装置在hypervisor层接收物理服务器上的各个云主机的流量然后应用网络策略,对云主机执行网络访问控制。这里的,网络策略控制器设置在云平台中,用于记录云平台上所有云主机的网络策略。
在多虚拟化环境的云平台下,不同物理服务器中的虚拟化环境(即hypervisor类型)可能不同,例如,物理服务器a采用h3c公司的cas虚拟化程序实现虚拟化,物理服务器b采用vmware公司的vsphere虚拟化程序实现虚拟化。在同一个云平台中,由于这两个物理服务器的虚拟化环境不同,不同的虚拟化厂商的虚拟化程序的编程接口不同,这就需要针对每种虚拟化环境编写相应的网络策略实现代码,将相应的网络策略实现装置嵌入在hypervisor中,这使得对多虚拟化环境的云平台的每一种hypervisor,当进行网络策略实现时,需要根据每个hypervisor厂商的编程接口,编写一套代码,费时费力,如果云平台中存在许多种虚拟化环境时,导致大量的重复劳动,开发效率较低,不能满足用户需求。
参见图2和图3,本实施例提供了一种网络策略实现装置,图2中,在底层硬件之上设置有hypervisor,在hypervisor的上层设置有五个虚拟机,其中四个虚拟机是云主机,是供用户使用并提供服务的。另一个虚拟机(即第五个虚拟机)是用于进行网络策略实现的,即该虚拟机中运行网络策略实现装置。
这四个云主机中,两个云主机连接到了一个租户网络即附图3中的第一虚拟化网络,另外两个云主机连接到了另一个租户网络即附图3中的第二虚拟化网络。运行有网络策略实现装置的虚拟机连接到第三虚拟化网络,第三虚拟化网络与租户网络的区别在于,第三虚拟化网络是设置了混杂模式的网络,能够监听租户网络的所有流量,并且租户网络没有实际的网络出口(即,不与物理网络设备连接),而第三虚拟化网络是能接收云主机的所有流量的广播网络,并且与连接有物理网络设备的网络连接。
需要说明的是,本发明实施例的云主机和虚拟化网络的连接关系不限于此,例如,在其他实施例中,四个云主机都可以连接在一个租户网络上,或者其中三个云主机都连接在一个租户网络上等等。
图2和图3所示的网络策略实现装置的工作过程是:运行在hypervisor层的上层的虚拟机中的网络策略实现装置,从网络策略控制器中获取各个云主机的网络策略,然后从第一网络中接收与租户网络连接的各个云主机的网络流量,对各个云主机的流量应用网络策略,执行网络访问控制。这里的网络策略控制器设置在云平台中,用于记录云平台上所有云主机的网络策略。
下面以一个具体的实例对本申请的网络策略实现装置的结构进行说明。
参见图4,应用本申请的网络策略实现装置的组网示意,云平台中有两个分布式虚拟网络设备,这里以分布式虚拟交换机(vspheredistributedswitch)vds1和vds2为例,一个云主机接入到vds1的租户网络上,vds1上的特殊网络设置了混杂模式(混杂模式是指一个网络能够接收所有经过它的数据流,而不论其目的地址是否该网络),这样特殊网络就可以监听到所有租户网络的流量。需要说明的是,vmware组网模型中的虚拟网络提供了混杂模式的设置选项,因此可以将特殊网络(一种虚拟网络)设置为混杂模式,这里的特殊网络即为处于混杂模式的第一网络。网络策略实现装置与特殊网络连接,并且与vds2的管理网络和数据网络连接,vds2的管理网络和数据网络与物理网卡连接,物理网卡与物理交换机连接。网络策略控制器与物理交换机连接。
由图4所示可知,本实施例的vds1上有两个租户网络,实际应用中,一个物理交换机上可以虚拟出多个分布式虚拟交换,并通过将分布式虚拟交换机的部分端口配置相同的属性后接入同一个虚拟网络中即形成一个租户网络,实际应用中可以根据需要进行设置,不限于此。
本实施例中,租户网络是指:与云主机直接连接的网络,并且租户网络不与物理网络设备连接,即租户网络是不能直接把云主机的流量发送到物理网络上的网络,租户网络先将云主机的流量发送到网络策略实现装置。
管理网络是指:是为完成对云平台的各个组件的管理目的的网络,在本实施例中,管理网络是网络策略实现装置和网络策略控制器进行通信的网络。
数据网络:是云主机的流量和物理网络的出入口,本实施例中,网络策略实现装置从数据网络中接收访问云主机的流量,并且云主机访问外部的流量也经数据网络发送出去。
实际应用时,首先,输入云主机对应的网络策略,将云主机对应的存储在网络策略控制器上。这里的网络策略,例如,允许哪个或哪些ip(internetprotocol,因特网协议)地址,通过什么协议访问该云主机,或者不允许哪个或哪些ip地址,通过什么协议访问该云主机。可以理解,网络策略应根据实际需求进行定义和配置,本申请对此不作限制。
接着,在云平台的物理服务器上实现虚拟化,即部署hypervisor层,并在hypervisor层的上层创建云主机。当网络策略实现装置通过hypervisor提供的应用编程接口查询或者事件感知到有云主机在hypervisor上创建时,网络策略实现装置从网络策略控制器上获取该云主机对应的网络策略供后续应用。
然后,当创建的云主机启动后,该云主机发送的报文先流到租户网络上,由于分布式虚拟交换vds1上的租户网络没有物理出口,即不与物理网络设备连接,该云主机的流量不会被发送出去,并且又由于特殊网络设置了混杂模式,所以特殊网络能通过租户网络接收到云主机发送的报文。
接着,网络策略实现装置对从特殊网络中接收的云主机的报文应用网络策略,将报文和网络策略中的规则进行比较,如果规则允许,则发送到数据网络,通过数据网络将报文发送到物理网络设备(即物理网卡和物理交换机),由物理网络设备将云主机的报文发送到外部网络。同样的,当有外部流量来访问云主机的时候,网络策略实现装置从数据网络接收到访问云主机的报文,对该报文应用网络策略,将报文和网络策略中的规则进行比较,如果规则允许则发送到特殊网络,如果不允许则丢弃报文。
这里,访问云主机的外部流量分为两种情况,一种是外部设备主动访问云主机而发送的流量,另一种是外部设备对云主机发送的报文的响应,即响应云主机的报文的流量。
网络策略实现装置比较后允许通过的报文,被网络策略实现装置发送到特殊网络后,由于特殊网络和租户网络是连接的,所以特殊网络可以将该报文发送到租户网络,这样经租户网络接收报文后发送给云主机。
至此,网络策略实现装置对于云主机发送的报文或者访问云主机的报文进行接收并应用该云主机的网络策略进行控制,保证了租户网络的隔离性,提高了网络的安全性,满足了用户需求。
由上述可知,由于本实施例的网络策略实现装置应用于虚拟机中,虚拟机运行在hypervisor的上层,从而当该网络策略实现装置对接其他类型的hypervisor时,无需重复开发网络策略实现装置的实现代码,只需调整外部网络组网模型,节省了开发成本,提高了效率。
需要说明的是,本实施例中仅以一个云主机的报文接管和网络策略的应用为例进行了说明,可以理解,云平台中云主机的数量是根据用户需求动态变化的,并且数量远不止一个,当有多个云主机时,各云主机的网络策略的应用参见前述处理过程,不再重复。
本公开提供了一种网络策略的实现装置应用于分布式虚拟网络设备上运行的云平台的虚拟机,虚拟机运行在物理服务器上,本申请提供的网络策略的实现装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。
以软件实现为例,可通过处理器10将非易失性存储器50中与网络策略的实现装置对应的机器可执行指令读取到易失性存储器40中运行。
从硬件层面而言,如图5所示,为本申请的物理服务器的一种结构图,除了图5所示的处理器10、内部总线20、网络接口30、易失性存储器40、以及非易失性存储器50之外,根据该物理服务器的实际功能,还可以包括其他硬件,对此不再赘述。
在不同的实施例中,所述非易失性存储器50可以是:存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。所述易失性存储器40可以是:ram(radomaccessmemory,随机存取存储器)等。
进一步,非易失性存储器50和易失性存储器40作为机器可读存储介质,其上可存储由处理器10执行的网络策略的实现装置60对应的机器可执行指令。
请参考图6,从功能上划分,网络策略的实现装置60应用于分布式虚拟网络设备上运行的云平台的虚拟机中,所述虚拟机与处于混杂模式的第一网络连接,所述第一网络与至少一个租户网络连接,所述租户网络不与物理网络设备连接,包括:
策略获取模块601,用于获取与租户网络连接的云主机对应的网络策略;
报文接收模块602,用于从所述第一网络接收来自所述租户网络的报文,或者从分布式虚拟网络设备上的数据网络接收发送至所述云主机的报文;
其中,所述数据网络与物理网络设备连接;
策略应用模块603,用于对所述报文应用所述网络策略。
一个实施例中,策略应用模块603,具体用于判断所述报文是否符合所述网络策略,若符合,则将所述报文经所述数据网络发送出去,或者,将所述报文经所述第一网络发送至所述云主机;若不符合,则丢弃所述报文。
一个实施例中,策略获取模块601,具体用于当通过虚拟机监视器hypervisor提供的应用编程接口确定出有新创建的云主机时,通过分布式虚拟网络设备上的管理网络获取新创建的云主机对应的网络策略;所述管理网络与物理网络设备连接。
本实施例的网络策略的实现装置的工作过程可以参见前述说明,这里不再赘述。
另外,与前述网络策略的实现装置相对应,本申请实施例还提供了网络策略的实现方法,参见图7,网络策略的实现方法,应用于分布式虚拟网络设备上运行的云平台的虚拟机中,所述虚拟机与处于混杂模式的第一网络连接,所述第一网络与至少一个租户网络连接,所述租户网络不与物理网络设备连接;包括:
步骤s701,获取与租户网络连接的云主机对应的网络策略;
步骤s702,从所述第一网络接收来自所述租户网络的报文,或者从分布式虚拟网络设备上的数据网络接收发送至所述云主机的报文;其中,所述数据网络与物理网络设备连接;
步骤s703,对所述报文应用所述网络策略。
一个实施例中,步骤s703中对所述报文应用所述网络策略包括:
判断所述报文是否符合所述网络策略,
若符合,则将所述报文经所述数据网络发送出去,或者,将所述报文经所述第一网络发送至所述云主机;
若不符合,则丢弃所述报文。
一个实施例中,步骤s701中的获取与租户网络连接的云主机对应的网络策略包括:
当通过虚拟机监视器hypervisor提供的应用编程接口确定出有新创建的云主机时,通过分布式虚拟网络设备上的管理网络获取新创建的云主机对应的网络策略;
所述管理网络与物理网络设备连接。
对于方法实施例而言,由于其基本对应于装置实施例,所以相关之处参见装置实施例的部分说明即可。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述,仅为本申请的具体实施方式,在本申请的上述教导下,本领域技术人员可以在上述实施例的基础上进行其他的改进或变形。本领域技术人员应该明白,上述的具体描述只是更好的解释本申请的目的,本申请的保护范围以权利要求的保护范围为准。