专利名称:一种虚拟机互访安全控制方法及装置的制作方法
技术领域:
本发明涉及虚拟化技术,尤其涉及一种虚拟机互访安全控制方法及装置。
背景技术:
数据中心通常包括三个主要的组成部分计算、网络和存储;这三个部分都在向虚拟化方向发展。其中作为计算资源的服务器的虚拟化是云计算中的核心技术之一,也是目前发展最为成熟的虚拟化技术。传统服务器由于服务器性能和网络通信端口的不匹配等问题导致服务器计算性能可能被闲置。而服务器的虚拟化技术,则可以将单台物理服务器虚拟出多台虚拟机并独立安装各自的操作系统和应用程序,从而有效提升服务器本身硬件资源的利用效率。
发明内容
有鉴于此,本发明提供一种虚拟机互访安全控制装置,应用于物理服务器上,其中该物理服务器上预先创建有至少两个虚拟机,该装置包括隧道处理模块、虚拟交换模块以及虚拟过滤模块;其中虚拟过滤模块,用于根据预设的过滤规则对虚拟机发送的二层报文进行过滤,如果该二层报文命中所述过滤规则,则将该二层报文提交隧道处理模块进行处理;虚拟交换模块,用于根据二层报文的目的MAC地址对该二层报文进行转发;隧道处理模块,用于与负责安全处理的外部网络设备建立隧道连接,对收到的二层报文进行隧道封装形成隧道报文,通过隧道连接将该隧道报文发送给所述负责安全处理的外部网络设备;其中该隧道处理模 块进一步用于接收外部网络发送的隧道报文,对该隧道报文进行解封装获得通过安全处理的二层报文,并将该二层报文提交给虚拟交换模块。本发明还提供一种虚拟机互访安全控制方法,应用于物理服务器上,其中该物理服务器上预先创建有至少两个虚拟机,其中该方法包括以下步骤步骤A、根据预设的过滤规则对虚拟机发送的二层报文进行过滤,如果该二层报文命中所述过滤规则,则转步骤C进行处理;步骤B、根据二层报文的目的MAC地址对该二层报文进行转发;步骤C、与负责安全处理的外部网络设备建立隧道连接,对收到的二层报文进行隧道封装形成隧道报文,通过隧道连接将该隧道报文发送给所述负责安全处理的外部网络设备;步骤D、接收外部网络发送的隧道报文,对该隧道报文进行解封装获得通过安全处理的二层报文并转步骤B进行转发。本发明巧妙地利用隧道技术实现将虚拟机互访报文重定向到外部网络设备上进行安全检查,在实现上巧妙利用了各种成熟机制,可以避免对外部网络设备进行修改而引发的实现成本高昂的问题,并且服务器端的设计方案更加简洁且成本更低。
图1是一种典型的物理服务器虚拟化之后的架构示意图。图2是一种实施方式中服务器与外部网络设备逻辑层面交互示意图。图3是一种实施方式中安全控制过程的处理流程图。
具体实施例方式请参考图1,服务器的虚拟化架构是在物理服务器上弓I入虚拟化层,其是一种中间层虚拟化软件,主要用于创建虚拟机(Virtual Machine, VM),并为虚拟机分配合理的硬件资源,比如CPU中的一个或者多个内核(即CPU中集成的一个或多个完整的计算引擎)分配给虚拟机I等。虚拟机从逻辑功能上看,与传统的物理服务器并无区别,拥有自己的操作系统,并可以在操作系统之上安装各种应用。在数据中心的物理服务器被广泛虚拟化后,安全问题也就相应产生了。在计算机网络以及软件技术中,任何新增的功能都可能存在安全问题而需要加以考虑。虚拟化软件相当于在已知传统安全威胁(如针对操作系统和应用程序的攻击)基础上引入了新的安全威胁。例如针对虚拟化软件及对应管理平台的漏洞攻击。在虚拟化环境下,单台物理服务器上的各虚拟机之间可能存在直接的二层流量交换,通常这种二层交换并不需要经过外置的二层交换机,管理员对于该部分报文流量既不可控也不可见。因此管理员面临的挑战是如何确保虚拟机之间的互相访问符合预定的安全策略。如果该虚拟机之间的访问互访被允许,如何判断这些访问是否存在攻击行为。目前针对上述问题有一些解决方案,比如Cisco公司提出的Cisco802.1BR技术,该技术方案的设计思路是将虚拟机互访报文流量重定向到外部接入交换机或其他网络设备上的外置安全模块进行安全控制。在该方案中,将流量重定向到接入交换机的方式需要同时在Hypervisor层面、服务器网卡层面和接入交换机层面做出修改,具体来说802.1BR技术需要在hypervisor层面进行重定向修改,并且每一个虚拟机需要有相应的虚拟通道和位于接入交换机上的虚拟端口,需要接入交换机做较大的修改来支持,技术实现难度大。
请参考图2以及图3,本发明在一个实施方式中提供一种实现虚拟机互访控制装置以及对应的处理方法。该装置应用于物理服务器上,其中该物理服务器可采用当前各种流行的硬件架构,包括CPU、内存、存储器以及网卡等基本硬件。该装置包括隧道处理模块、虚拟过滤模块以及虚拟交换模块。请参考图2的中虚拟机交互内部虚拟网络交互示意,在一种实施方式中,该装置可以理解为对服务器内部的虚拟交换机VSwitch功能的改进,该装置运行在服务器上执行如下的处理过程。步骤101,服务器的虚拟化模块创建一个或者多个虚拟机,为虚拟机分配硬件资源;步骤102,隧道处理模块,与负责安全处理的外部网络设备建立隧道连接;步骤103,从自身的虚拟二层端口接收第一虚拟机发送的二层报文并将该二层报文提交给虚拟过滤模块处理;步骤104,虚拟过滤模块根据预设过滤规则对该二层报文进行过滤,如果该二层报文命中所述过滤规则,则转步骤105由隧道处理模块对该二层报文进行处理,否则丢弃该报文或者转步骤10由虚拟交换模块继续处理。步骤105,隧道处理模块,用于对二层报文进行隧道封装形成隧道报文,并通过隧道连接发送给所述负责安全处理的外部网络设备;步骤106,外部网络设备从隧道上接收到来自服务器的隧道报文,对该隧道报文中进行解封装获得其中的二层报文;步骤107,外部网络设备利用自身的安全处理模块按照预定的安全规则对该二层报文进行安全处理;并将通过安全处理的二层报文进行封装形成隧道报文,然后通过隧道连接发送给服务器;步骤108,隧道处理模块接收外部网络发送的隧道报文,对该隧道报文进行解封装获得通过安全处理的二层报文,并将该二层报文提交给虚拟交换模块;步骤109,虚拟交换模块,根据二层报文的目的MAC地址对该二层报文进行转发。在本实施方式中,各个模块以及虚拟结构均可以理解为计算机程序在CPU上运行形成的逻辑模块或者结构,其代表了计算机程序的实体功能。目前,在数据中心中的主流物理服务器通常可以创建多个虚拟机,每个虚拟机所分配到的硬件资源不尽相同,各个虚拟机使用的操作系统以及上层应用也不尽相同。有的虚拟机可以作为Web服务器,有的虚拟机作为数据库服务器,有的虚拟机作为网络应用服务器,比如DNS服务器或者DHCP服务器,有的虚拟机可能作为其他应用服务器。这些虚拟机通常由虚拟化模块来创建,虚拟化模块可以依据用户的需求来分配硬件资源,而其上的操作系统以及应用通常由用户自行安装。在传统网络中,几个物理上相互靠近的物理服务器需要接入网络时,人们通常使用交换机来实现这一目标。由于虚拟机本质功能上与服务器是相同的,虚拟机接入网络则由物理服务器内部虚拟交换机来实现。在本实施方式中,虚拟交换机也由作为中间层虚拟化软件的虚拟化模块创建,其包括虚拟交换模块,连接各个虚拟机的虚拟端口,虚拟过滤过滤模块以及隧道处理模块。虚拟交换机包括了很多普通物理交换机所具有的基础功能。比如说虚拟过滤模块的设 计可以参考物理交换芯片中的ACL机制实现。同一个物理服务器中的各个虚拟机之间存在通信需求,如果虚拟机被划分到不同的二层网络中,比如第一和第二虚拟机归分别被规划在不同的VLAN (Virtual Local AreaNetwork,虚拟局域网)中,那么第一及第二虚拟机之间的互相访问最终是要通过外部的网关设备才能实现的,二者的通信在本质上是三层的IP通信,请参考图2中带有箭头的线条。由于三层通信会经过外部的网络设备,利用中间网络设备(比如接入交换机)上部署的安全控制模块就可以进行安全处理,这样可以确保双方的互访是相对安全可靠的。事实上,管理员可能将多个虚拟机规划在同一个VLAN中。如果第一及第二虚拟机属于同一个VLAN,二者在同一个广播域,此时第一及第二虚拟机之间的通信是不需要经过网关设备的。第一及第二虚拟机可以通过ARP协议知晓对方的MAC地址,于是在发送二层报文时,使用的目的MAC地址就是对方的MAC地址,而三层通信中目的MAC地址通常是网关的MAC地址。第一及第二虚拟交换机互相通信时发送的报文到达虚拟交换机时,虚拟交换机可以查找MAC地址表执行二层转发。如果不做特别处理,这意味着两个虚拟机之间的二层通信过程中交互的报文是没有经过安全处理的。在本发明中,第一虚拟机发送给第二虚拟机的报文到达虚拟交换机的虚拟端口时,虚拟交换机的各个模块可以对此进行控制。首先,可以执行步骤103将所有从虚拟端口(可理解为虚拟交换机的接入端口)收到的二层报文先送到虚拟过滤模块进行过滤。在不少应用场景中,不是所有的二层报文的处理流程都相同的,比如说,有一些类型的报文可以通过虚拟交换模块进行单纯的转发即可,有一些报文需要立即丢弃,还有一些报文则需要送到外部网络设备上进行安全处理。当然,需要说明的是,步骤103对于本发明来说并不是必须的。请参考表I的示例,过滤通常是基于报文的特征进行的,常用的包括源MAC地址、源IP地址、目的IP地址、目的MAC地址、Vlan以及协议类型等。
权利要求
1.一种虚拟机互访安全控制装置,应用于物理服务器上,其中该物理服务器上预先创建有至少两个虚拟机,该装置包括隧道处理模块、虚拟交换模块以及虚拟过滤模块;其特征在于虚拟过滤模块,用于根据预设的过滤规则对虚拟机发送的二层报文进行过滤,如果该二层报文命中所述过滤规则,则将该二层报文提交隧道处理模块进行处理;虚拟交换模块,用于根据二层报文的目的MAC地址对该二层报文进行转发;隧道处理模块,用于与负责安全处理的外部网络设备建立隧道连接,对收到的二层报文进行隧道封装形成隧道报文,通过隧道连接将该隧道报文发送给所述负责安全处理的外部网络设备;其中该隧道处理模块进一步用于接收外部网络发送的隧道报文,对该隧道报文进行解封装获得通过安全处理的二层报文,并将该二层报文提交给虚拟交换模块。
2.如权利要求1所述的装置,其特征在于所述隧道为GRE隧道。
3.如权利要求1所述的装置,其特征在于所述隧道处理单元,进一步用于使用多个隧道接口与负责安全处理的外部网络设备建立多条隧道连接;所述虚拟过滤模块进一步用于将命中不同过滤规则的二层报文提交给对应的隧道接口。
4.如权利要求1所述的装置,其特征在于,虚拟过滤模块进一步用于在所述二层报文没有命中过滤规则时,将该二层报文提交给虚拟交换模块或者将该二层报文丢弃。
5.一种虚拟机互访安全控制方法,应用于物理服务器上,其中该物理服务器上预先创建有至少两个虚拟机,其特征在于,该方法包括以下步骤步骤A、根据预设的过滤规则对虚拟机发送的二层报文进行过滤,如果该二层报文命中所述过滤规则,则转步骤C进行处理;步骤B、根据二层报文的目的MAC地址对该二层报文进行转发;步骤C、与负责安全处理的外部网络设备建立隧道连接,对收到的二层报文进行隧道封装形成隧道报文,通过隧道连接将该隧道报文发送给所述负责安全处理的外部网络设备;步骤D、接收外部网络发送的隧道报文,对该隧道报文进行解封装获得通过安全处理的二层报文并转步骤B进行转发。
6.如权利要求5所述的方法,其特征在于所述隧道为GRE隧道。
7.如权利要求5所述的方法,其特征在于所述步骤C进一步包括使用多个隧道接口与负责安全处理的外部网络设备建立多条隧道连接;所述步骤B进一步包括将命中不同过滤规则的二层报文提交给对应的隧道接口。
8.如权利要求5所述的方法,其特征在于所述步骤B进一步包括在所述二层报文没有命中过滤规则时,转步骤B进行转发或者将该二层报文丢弃。
全文摘要
本发明提供一种虚拟机互访安全控制方法及对应装置,该方法包括A、根据预设的过滤规则对虚拟机发送的二层报文进行过滤,如果该二层报文命中所述过滤规则,则转C进行处理;B、根据二层报文的目的MAC地址对该二层报文进行转发;C、与负责安全处理的外部网络设备建立隧道连接,对收到的二层报文进行隧道封装形成隧道报文,通过隧道连接将该隧道报文发送给所述负责安全处理的外部网络设备;D、接收外部网络发送的隧道报文,对该隧道报文进行解封装获得通过安全处理的二层报文并转B进行转发。本发明可以避免对外部网络设备进行修改而引发的实现成本高昂的问题,并且服务器的改进也很简单。
文档编号H04L29/06GK103067270SQ20131000725
公开日2013年4月24日 申请日期2013年1月8日 优先权日2013年1月8日
发明者孙松儿, 韩小平 申请人:杭州华三通信技术有限公司