本申请是pct国际申请号为pct/us2013/065806、国际申请日为2013年10月20日、进入中国国家阶段的申请号为201380050646.4,题为“向虚拟云基础结构提供虚拟安全装置架构”的发明专利申请的分案申请。
本公开总体关于虚拟化技术,更具体地说,本公开关于向虚拟云基础结构提供虚拟安全装置架构。
背景技术:
虚拟化技术的演变已与向云计算的发展相一致,并且从某种程度上说,已与向云计算的发展合并。一般而言,虚拟化使得计算平台的硬件特性变得模糊,并且转而呈现了可主管其他平台(包括完整的操作系统)的抽象平台。一种流行的虚拟化技术是部署管理程序(也被称为虚拟机管理器),该管理程序可允许访客软件(包括完整的操作系统)在抽象的主机平台上并发地运行。该管理程序可向其访客软件提供模拟的计算环境(通常被称为“虚拟机”)。因此,多个不同的操作系统可在例如单个物理机器上的管理程序下运行。
云计算通常使用作为诸如因特网之类的网络上的服务被递送的计算资源。在云计算中,各种远程计算机、服务器和数据存储系统可通过存储数据和主管应用来提供服务。最终用户计算机可经由web浏览器或提供对主机的网络访问的其他应用,访问云基础结构中的多个应用。通常,在云基础结构中提供计算、存储和网络资源,从而有效地将工作负荷从本地网络转移到云网络。
应用于云基础结构的虚拟化可提供多个益处。具体而言,虚拟化的云基础结构能够使该基础结构中物理机器的输出最大化;能够使消费者仅购买其使用或想要的资源;并且能够提供响应消费者网络资源要求中的改变的灵活性和速度。然而,随着虚拟化云基础结构的使用继续增长,虚拟机可能变成更受恶意攻击青睐的目标。虽然云虚拟化提供了许多优势,但是,由于虚拟化基础结构的性质是要启用对新资源的快速配置,因此其也呈现出独有的安全挑战。因此,针对提供安全的虚拟化云基础结构,仍存在着许多挑战。
附图说明
为了提供对本公开及本公开的特征和优势的更完整的理解,结合所附附图引用下列描述,其中,相同的附图标记表示相同的部件,其中:
图1是根据本公开的实施例的、用于在虚拟云基础结构中提供虚拟安全装置架构的系统的框图;
图2是根据实施例的虚拟化计算系统的框图;
图3是示出根据实施例的、具有系统的附加细节的示例虚拟化计算系统的框图;
图4是示出根据实施例的、虚拟化计算系统中的系统的高层级实现场景的框图;
图5是示出根据该系统的实施例的、使用介质访问控制(mac)地址的源路由技术的框图;
图6是示出在该系统的实施例中的、使用硬连线端口的源路由技术的框图;
图7是示出根据该系统的实施例的、用于路由源虚拟机的流的方法的简化流程图;
图8是示出根据使用开放流(openflow)交换机的系统的实施例的拦截机制的框图;
图9是示出根据使用开放流交换机的系统的实施例的拦截机制的过程的简化流程图;
图10是示出根据该系统的实施例的、硬连线的拦截机制的示例场景的框图;
图11是示出根据该系统的另一实施例的、硬连线的拦截机制的示例场景的框图;
图12是示出根据该系统的实施例的、硬件拦截机制的过程的简化流程图;
图13是示出根据该系统的实施例的、另一拦截机制的示例场景的框图;
图14是示出该系统的实施例的附加的潜在操作的简化的交互图;
图15是示出根据该系统的实施例的策略管理器的过程的简化流程图;
图16是示出根据该系统的实施例的分配管理器的过程的简化流程图;
图17a-17c是示出在虚拟云基础结构中提供虚拟安全装置架构的系统的实施例的过程的示例操作的框图;以及
图18是示出根据该系统的实施例的分配管理器的过程的简化流程图;
具体实施方式
概述
示例实施例中的方法包括:检测虚拟网络基础结构的虚拟服务器中的虚拟机的改变;确定是否在该虚拟服务器中配置了虚拟安全装置;以及发送在该虚拟服务器中创建该虚拟安全装置的请求。该方法进一步包括:当在该虚拟机中创建该虚拟安全装置时,允许该虚拟机启动。该虚拟安全装置对从该虚拟机发送来的网络分组执行安全检查。在更具体的实施例中,该方法进一步包括:在该虚拟服务器中创建拦截机制以拦截来自该虚拟机的网络分组。在进一步的实施例中,一个或多个安全策略标识用于处理来自该虚拟机的网络分组的一个或多个虚拟安全装置。
在另一示例实施例中的方法包括:轮询虚拟网络基础结构的虚拟服务器中的虚拟安全装置以确定该虚拟安全装置的利用率;如果该利用率高于上阈值量,则向云管理器发送增加该用于该虚拟安全装置的计算资源的请求;以及当该利用率低于下阈值量时,向该云管理器发送减少用于该虚拟安全装置的计算资源的请求。在该方法中,将与该虚拟服务器中的一个或多个虚拟机相关联的多个网络分组路由到该虚拟安全装置中。在更具体的实施例中,在将网络分组路由到该虚拟安全装置中之前,拦截该网络分组。
示例实施例
图1是根据本公开的实施例的、用于在虚拟云基础结构中提供虚拟安全装置架构的通信系统100的示例图示。通信系统100可表示虚拟云基础结构,其包括硬件层110、虚拟化层(一般通过虚拟机管理器(vmm)120来表示)、一组核资源135、虚拟化桌面基础结构(vdi)130和云管理器150。硬件层110可包括服务器112、其他网络设备116和存储114。核资源135可包括用于启用并管理对包括例如内部网络、无线网络、因特网等的各种网络的访问的网络协议。在一个示例实现方案中,核资源135可包括:动态主机配置协议(dhcp)联网协议服务器136;域名服务(dns)137;以及认证、授权、计费(aaa)联网协议服务器138。可提供虚拟安全系统160以实现对通信系统100中虚拟安全装置架构的供应和管理。虚拟安全系统可包括策略层170、安全管理器175、分配层180和拦截层190。
通常,可在任何合适类型的网络或任何合适拓扑结构的网络(例如,内联网、外联网、lan、wan、wlan、man、vlan、vpn、蜂窝网络等)中或在其合适的组合中(包括有线和/或无线通信)实现通信系统100。图1中的多个元件可通过简单的接口或通过提供用于网络通信的可行的路径的任何其他合适的连接(有线的或无线的)彼此耦合。此外,可基于特定的配置需求组合这些元件中的任意一个或多个,或将这些元件中的任意一个或多个从该架构中去除。
网络话务是网络通信的形式,并且其包括分组(packet)、帧、信号、数据等,可根据任何合适的通信消息收发协议对其进行发送和接收。合适的通信消息收发协议可包括多层的方案,例如,开放系统互联(osi)模型及其任意的衍生或变型(如,tcp/ip)。此外,消息、请求、响应和查询是网络话务的多种形式,因此可包括分组、帧、信号和数据等。在诸如tcp/ip之类的某些通信协议中,可将单个消息、请求、响应或查询分解成定义“分组流”的多个分组。本文中也可将分组流(packetstream)称为“流”(flow),该流可包括非字节流交换(例如,ip上语音(voip)或域名服务消息)。此外,也可通过多个特性来标识流,这些特性包括但不限于,5元组(即,源ip地址、目的地ip地址、源端口、目的地端口和ip协议)、装置的物理端口、虚拟端口、vxlan、和/或vlan。如本文中所使用,术语“数据”是指任何类型的二进制、数值、语音、视频、文本、或脚本数据,或者任何类型的源或目标代码,或者可从电子设备和/或网络中的一点传递到另一点的、任何合适的格式的任何其他合适的信息。
出于对通信系统100的某些示例技术进行说明的目的,理解可横跨该虚拟云基础结构的通信是重要的。可将下列基础信息视为可恰当地解释本公开的基础。
具有专用的本地硬件资源的网络正快速地由基于云的虚拟基础结构取代。诸如企业、学校、政府机构之类的组织机构正开始认可将信息技术卸载到基于云的虚拟基础结构中的优势。
一种类型的云虚拟化包括为非虚拟化数据中心中的每个网络分配虚拟网络。也可在虚拟网络上使每个物理机器虚拟化。一般而言,在该实现方案中,该虚拟基础结构与物理基础结构平行。存在着在该配置中提供安全的一些能力,包括简单地维持与在使用虚拟化之前所使用的相同的安全。
另一虚拟化解决方案基于平坦的、非结构化网络,在该网络中,将服务器及其内部网络全部连接在单个的、平坦的网络中,而没有诸如路由器或防火墙之类的网络元件给予该网络与该网络的目的有关的结构。平坦化的网络允许基于特定实体的需求来分配网络的某些部分。例如,信息技术(it)管理员可基于计算、存储和网络要求来分配虚拟化的数据中心的部分。可提供管理控制台以允许该it管理员请求可在虚拟化基础结构中的任何地方创建的所期望数目的网络、所期望数量的处理能力和所期望数量的数据存储。由此,可在该虚拟基础结构中的任何地方创建多个虚拟机,而这对于实体(或用户)而言是透明的。此外,可基于管理该基础结构时的特定需求,在该基础结构之内移动虚拟机、网络和数据存储。此类改变对于实体而言也可以是透明的。该实体可访问其经分配的计算、网络和数据存储资源,而实际上不需要了解其资源的物理位置。
在结构化网络中,网络管理员通常估计或测量网络使用,并决定要在哪里分配安全装备以及要分配什么类型的安全装备。这通常导致安全装置的相对静态而昂贵的部署,因为需要过分配(over-allocate)这些装置以满足随着时间的推移的网络话务的突发性或增长。在平坦化的虚拟云网络之内透明地添加和移动资源的能力可在部署所期望的网络资源时提供显著的灵活性。然而,在网络拓扑结构中的战略点处定位安全设备的通常的实施方式与部署向管理软件提供优越的灵活性的、平坦的、非结构化的网络相冲突。所需要的是取决于载荷来使用系统资源,并且随着安全需求改变而提供灵活性和可伸缩性的安全解决方案。
根据一个示例实施例,通信系统100可解决与在虚拟云基础结构中提供安全相关联的前述问题。更具体地说,通信系统100的虚拟安全系统160包括在前端、网络流层级上的、将网络话务的分组路由到后端安全过程中的分配层。该分配层可执行确定对于特定的数据需要哪些后端安全过程的策略功能。然后,该分配层可执行路由活动,从而按正确的顺序将分组发送至正确的安全过程中。该后端安全过程可对网络话务执行计算密集型安全功能。该分配层可接收分组,这些分组可以是来自源虚拟机而被拦截的,可使用若干不同的拦截技术来实现该拦截。通过使用网络接口卡技术(如,sr-iov)和硬件交换能力的配置或通过整合进开放流交换机架构,可将虚拟安全系统160的拦截层配置成用于拦截往返于虚拟交换机的分组。虚拟交换机422-2也可提供基于api的拦截机制。
使用分配管理器,可在vmm中创建用于以虚拟安全装置(vsa)的形式实现安全控制的弹性(或灵活的)系统。可手动地将话务路由至分配管理器,并且进而路由至vsa。在另一实施例中,拦截机制允许由分配管理器拦截话务,并且不利用手动路由操作而将话务路由至vsa。可将该系统配置成用于监测这些vsa,并且请求改变以增加或减少这些vsa对vmm资源(cpu、存储器、存储)的使用以及/并且增加或减少该vmm中vsa的数量。所请求的改变可基于引入的载荷、所配置的载荷限制和/或该vmm中现有的虚拟机的安全策略。策略层可改善用于随着虚拟基础结构改变而配置所期望的安全控制的弹性(或灵活的)机制的响应性。该策略层可检测对该虚拟基础结构中的虚拟机的改变或针对现有的虚拟机的新的或更新的安全策略,并且可与分配层通信以设置和配置可由策略要求的任何拦截机制和附加的后端安全过程。由此,可根据需要,以虚拟安全装置的形式对后端安全过程进行分配和解除分配。此外,处理功率中的增量可以是小的,使得虚拟安全系统160不需要过分配诸如vsa之类的安全处理资源。相应地,伴随对所呈现的载荷更多和更少的使用,该弹性(或灵活的)安全系统可分别扩大和收缩。
转到图1中的基础结构,图1示出通信系统100,其中提供了虚拟安全系统160的分层的视图。通信系统100表示虚拟云基础结构,该虚拟云基础结构分别向一个或多个实体提供所分配的资源和网络。可由用户通过诸如因特网、另一广域网(wan)、虚拟私有网络(vpn)等之类的合适的公共或私有网络来访问所分配的资源和网络。
可用虚拟云基础结构来配置通信系统100,在该虚拟云基础结构中,将vmm120的层表示在物理网络设备116上的、统一的单个层上,使得该网络的结构平坦化。vmm120表示在硬件层110之上运行,并且管理和监测通信系统100中的虚拟机的vmm或管理程序。平坦化的vmm120允许在通信系统100中容易地创建虚拟机,并且允许在硬件层110的不同的底层硬件组件之间容易地移动虚拟机。
虚拟安全系统160允许用户以弹性虚拟安全装置(vsa)架构的形式分配安全。可根据需要分配和解除分配vsa,从而将策略定义的安全控制应用于虚拟机的网络话务中。策略层170表示通信系统100中所提供的,用于存储针对通信系统100中的虚拟机的用户定义的、系统定义的或默认的安全策略的一个或多个策略管理器。可经由云管理器150创建或移动虚拟机。可将云管理器150配置成用于允许用户请求通信系统100的虚拟云基础结构中所期望的特定的计算、硬件和网络资源。可将策略层170的一个或多个策略管理器配置成用于与云管理器150通信。安全管理器175可使用户能够在经由云管理器150添加或移动虚拟机时,提供针对这些虚拟机的策略;当安全需求改变时,提供针对现有的虚拟机的策略;或者提供针对可能需要应用默认的策略的、还未知的虚拟机的策略。在一些实例中,可整合安全管理器175和云管理器150。可将这些管理器作为全系统范围的管理服务提供给通信系统100中所配置的一个或多个网络。也可在专用硬件(如,专用服务器和存储)上实现这些管理器,并且这些管理器可利用或不利用虚拟化来运行。在实施例中,一个或多个网络可与特定的实体(例如,企业、公司、学校、政府机构或其他组织)相关联。
策略层170也可与分配层180交互。分配层180可包括在每个虚拟化服务器上的、用于设置并配置拦截层190的拦截机制的分配管理器。在拦截层190中,拦截来自虚拟机的网络话务,并将其提供给分配层180。分配层180将网络话务路由至合适的安全控制,这些安全控制可以是虚拟安全装置形式的。也可将分配层180配置成用于与云管理器150交互,从而在需要时分配并配置虚拟安全装置。例如,可在添加或移动虚拟机时,在针对虚拟机的安全策略改变时,以及在基于其他事件(例如,当新类型的虚拟机加入网络时)添加或更新策略时创建虚拟安全装置。
通信系统100也可包括核资源135,该核资源135提供用于启用网络通信的各种联网协议。在实施例中,核资源135可包括aaa服务器138,该aaa服务器138向计算机提供认证、授权和计费管理以供其连接并使用网络服务。用于aaa服务器的一个示例联网协议是远程认证拨号用户服务(radius)联网协议。核资源135也可包括dhcp服务器136,该dhcp服务器136将包括用户端点的网络元件配置成用于启用在网际协议(ip)网络上的通信。dns服务器137可提供目录服务以提供对应于人类可读标识符(如,统一的资源定位符)的内部系统地址。可在虚拟机中或在通信系统100的专用硬件上提供各种核资源。
虚拟化的桌面基础结构(vdi)130可在例如通信系统100的虚拟云基础结构中的远程服务器上启用桌面虚拟化。在一个示例中,可针对每一个物理桌面创建单独的虚拟机。也可针对给定的实体,在虚拟云基础结构中分配并创建其他虚拟机。可在虚拟机中虚拟化通常经由网络所提供的多项服务,并且由vmm120管理这些服务。可在通信系统100的虚拟机中实现的服务的示例包括消息收发服务和业务专用服务(例如,工程应用、计费应用、生产应用、法律应用等)。
在一个示例实现方案中,硬件层110的多个元件是网络元件,其旨在涵盖网络装置、防火墙、服务器、路由器、交换机、网关、桥接器、负载平衡器、处理器、模块或可用于在网络环境中交换信息的任何其他合适的设备、组件、元件或对象。网络元件可包括促进其自身的操作的任何合适的硬件、软件、组件、模块或对象,以及用于在网络环境中接收、发送和/或以其他方式传递数据或信息的合适的接口。这可包括允许有效地交换数据或信息的合适的算法和通信协议。
在和与通信系统100相关联的内部结构有关的方面,硬件层110的多个元件可包括用于存储在本文所概述的操作中所使用的信息的存储元件。硬件层110的元件可将信息保持在任何合适的存储元件(例如,随机存储存储器(ram)、只读存储器(rom)、可擦可编程rom(eprom)、电可擦可编程rom(eeprom)、专用集成电路(asic)等)、软件、硬件,或者在合适时基于特定需求的任何其他合适的组件、设备、元件或对象中。应当将本文所讨论的存储器项(如,存储114)中的任何一项理解为被涵盖在广义术语“存储器元件”之内。可在任何数据库、寄存器、队列、表、高速缓存、控制列表或其他存储结构(可在任何合适的时间范围引用它们全部)中提供由通信系统100使用、跟踪、发送或接收的、并且在虚拟安全系统160中的信息。如本文中所使用的那样,可将任何此类存储选项包括在广义术语“存储器元件”之内。
在某些示例实现方案中,可由在一个或多个有形介质(例如,asic中所提供的嵌入式逻辑、数字信号处理器(dsp)指令、由处理器执行的软件(潜在地包括目标代码和源代码)或其他类似的机器等)中进行编码的逻辑来实现本文中所概括的功能,该有形介质可包括非瞬态介质。在这些实例中的一些中,存储器元件可存储用于本文所描述的操作的数据。这包括能够存储软件、逻辑、代码或处理器指令的存储器元件,可执行这些软件、逻辑、代码或处理器指令以实施本文所描述的各个活动。
在示例实现方案中,通信系统100可包括多个软件模块(例如,在分配层180、策略层170、拦截层190等之内),这些软件模块包括用于实现或促进本文所概述的多个操作的虚拟机。在其他实施例中,可由硬件和固件(在这些元件外部实现的硬件和固件,或者被包括在某个其他网络设备或某个其他虚拟服务器、虚拟机、虚拟交换机或虚拟网络接口卡之内的硬件和固件)实施此类操作以实现预期的功能。或者,这些元件可包括可进行协调以实现本文所概述的多个操作的软件(或互惠软件)。在另一些实施例中,这些设备中的一个或全部可包括促进这些设备的操作的任何合适的算法、硬件、固件、软件、组件、模块、管理器、虚拟机、接口或对象。
此外,硬件层110可包括能够执行软件或算法以执行本文所讨论的多个活动的处理器(例如,在服务器112中,在网络设备116中)。处理器可执行与数据相关联的任何类型的指令以实现本文描述的操作。在一个示例中,处理器可将元件或制品(如,数据)从一种状态或事物变换成另一种状态或事物。在另一示例中,可用固定逻辑或可编程逻辑(如,由处理器执行的软件/计算机指令)实现本文所概述的活动,并且本文所标识的元件可以是某种类型的可编程处理器、可编程数字逻辑(如,现场可编程门阵列(fpga)、eprom、eeprom)或者包括数字逻辑、软件、代码、电子指令的asic或者上述各项的任何合适的组合。应当将本文所描述的任何潜在的处理元件、模块和机器理解为被涵盖在广义术语“处理器”之内。
在图2中,简化的框图示出可根据本公开所实施的虚拟化服务器200(在本文中被称为“虚拟服务器”)的多个层。可用例如vmwareesx或esxi、sap或其他web服务,或用命令行接口、远程脚本等配置虚拟服务器200。虚拟服务器200可包括虚拟机230-1到230-n。虚拟机230-1到230-n可具有各自的操作系统234-1到234-n,这些操作系统运行各自的应用232-1到232-n。在本文中,对于具有相同参考编号的类似元件的引用,可通过数值后缀和该参考编号单独地引用,或者可通过省略该后缀而共同地引用。
虚拟服务器200也可包括管理程序220,该管理程序220可在硬件210上运行,并且可提供用于运行操作系统234和相关联的应用232的多个实例的能力。也可将管理程序220称为可与诸如虚拟服务器200之类的单个机器相关联的虚拟机监测器(vmm)。管理程序220和硬件210可以分别是图1中的通信系统100中的vmm120和硬件层110的部分。可通过按需要动态地向操作系统234分配硬件资源以同时运行操作系统和应用。在这种安排中,可在各自操作系统234之上逻辑地运行应用232,这些操作系统234与各自的虚拟机230相关联,并且向这些操作系统234提供虚拟硬件222(例如,交换机、处理器、cd/dvd驱动器、软盘、存储器、scsi设备、网络接口卡、并行端口、串行端口等)。虚拟交换机是允许在例如虚拟机和其他虚拟组件之间的通信的、并且能以类似于物理l2或l3交换机的方式操作的软件程序。
管理程序220之下的物理硬件210可包括处理器212、存储器元件214和网络接口卡(nic)216。硬件210也可包括诸如例如层级2(l2)交换机之类的附加组件。可在服务器(或某个其他合适的网络元件)中提供整个配置。该实现方案仅表示本公开所适用的一个可能的示例。任何数量的附加的管理程序或虚拟元件可类似地从本文所讨论的广泛教导中获益。
通常,在服务器虚拟化中,向经授权的用户提供接口以管理虚拟机和相关联的应用、操作系统和虚拟硬件的完整的设置。该管理包括管理软件配置和虚拟机配置,这些配置包括创建、删除、修改、关机和启动等。
在云虚拟化中,可向经授权的用户提供控制台和接口以管理该“云”中的虚拟基础结构的完整的设置。该云可以是公共或私有的远程数据中心。云可以是远程或本地的私有网络。通常,经授权的用户可能能够从该控制台请求特定的计算、存储和网络资源。然后,可在该云中分配这些资源,而不需要用户了解正在使用的、确切的物理硬件组件。
图2中未示出可被合适地耦合到处理器212、存储器元件214和/或网络接口卡216的附加硬件。附加的硬件可包括但不限于,存储器管理单元(mmu)、附加的对称多处理(smp)元件、物理存储器、以太网、外围组件互联(pci)总线和对应的桥接器、小型计算机系统接口(scsi)/集成驱动电子(ide)元件。
为了便于说明,在后续的附图中并不示出与参考图2中的虚拟服务器200所描述的虚拟服务器相关联的所有组件。然而,应当理解,虽然不一定在本文中的其他附图中示出参考图1-2中的虚拟服务器所描述的组件、模块、硬件、固件或软件,但是也可包括它们中的任何一个。
图3是示出与图1中的通信系统100中的虚拟服务器300的实施例相关联的一组可能的细节的简化框图。虚拟服务器300可包括访客虚拟机(vm)330-1到330-n、管理程序320、网络接口卡310和虚拟安全系统360。nic310可以是虚拟服务器300的硬件的部分,并且包括端口314-1到314-y以及层级2(l2)交换机312。由管理程序320来管理虚拟化硬件,并且虚拟化硬件可包括一个或多个虚拟交换机(v交换机)322-1到322-m。这些虚拟交换机可以是虚拟服务器30上的虚拟机通过其进行通信的虚拟化交换机。如将要在本文中进一步讨论的那样,在nic包括用于经由l2交换机312启用通信的特殊功能的某些实施例中,也可将物理l2交换机312用于虚拟服务器300的多个虚拟机之间的通信。尽管参考本文中的各实施例示出和/或描述了l2交换机,但是应当理解,其他交换机也与此类实施例兼容。例如,合适的替代交换机包括但不一定限于具有层级3(l3)能力的l2交换机。
虚拟安全系统360示出虚拟服务器300中所实现的虚拟安全系统160的示例组件。在虚拟服务器300中的示例实现方案中,虚拟安全系统360可包括虚拟安全装置(vsa)340-1到340-x、分配管理器380、策略管理器370、源路由机制395和拦截机制390的灵活组合。
在实施例中,可将访客vm330、vsa340、分配管理器380和策略管理器370全部配置成虚拟服务器300的虚拟机,并且由管理程序320来管理它们。虽然在本文中通常将策略管理器370称为虚拟机,但是,在那些实施例中的任何实施例中,可替代地在物理服务器上直接主管该策略管理器370。例如,可利用全系统范围的管理服务来包括策略管理器370,而不将该策略管理器370的至少一些部分配置为虚拟机。
访客vm表示至少一些不可信的vm。因此,vm安全策略386中的多个策略可能需要由一个或多个vsa340检查来自访客vm330的网络话务的安全。每个访客vm可具有其独特的策略,该策略具有关于哪些vsa要从访客vm中接收网络话务以及vsa340接收该网络话务应当遵循的顺序的特定要求。访客vm330可与标准平台机器兼容,并且可以不具有参与安全机制的任何特殊的驱动程序或其他软件。由此,可将虚拟安全系统360应用到预先存在的安装程序或标准企业平台中。
vsa340表示实现任何合适类型的安全检查的可信的虚拟机。如本文中所示用的“安全检查”旨在包括任何类型的网络安全机制,包括但不限于,入侵防护系统(ips)、入侵检测系统(ids)、防火墙(fw)、数据丢失防护(dlp)、反病毒扫描、深度分组检查、白名单评估和黑名单评估。vsa340可具有拦截机制390或源路由机制395的特定知识。此外,vsa340通常运行在“线中的块”(“bumpinthewire”)模式中。由此,显式的路由模式中的防火墙可在虚拟安全系统360的外部操作。
访客vm330、其他虚拟机(如,分配管理器380、策略管理器370)和vsa340可经由虚拟交换机322中的一个或多个彼此通信。在一些实施例中,可将虚拟交换机322组合到单个域(即,单个交换机)中,该单个域用于使vsa340和潜在的其他vm彼此通信,并且使多个访客vm330彼此通信。在一些实施例中,可在nic310中提供特殊的功能以使访客vm、其他vm和/或vsa能够经由l2交换机312进行通信。该特殊功能的示例是单根输入/输出虚拟化(sr-iov)机制。将sr-iov用于启用直接存储器访问(dma),并且将在本文中进一步进行描述。
分配管理器380可保持流数据库382以跟踪访客vm330和诸如vsa340之类的其他虚拟机之间的连接。vm安全策略数据库386可包括vsa340的一个或多个列表,将通过这些vsa340路由来自每个访客330的网络话务。列表可类似于路由器或层级3(l3)交换机,并且可包括例如针对每个vsa340的媒体访问控制(mac)地址。该列表可以是适用于所有的访客vm330的单个列表、针对每个访客vm330的个性化列表或者针对具有相同的安全策略要求的每一组访客vm330的不同列表。
源路由机制395也可以是虚拟安全系统360中的部分,并且可至少部分地在分配管理器380中提供源路由机制395。可将源路由机制395配置成用于使分配管理器能够在分组被返回到该分配管理器380之前,通过一个或多个vsa路由该分组。可实现源路由机制384的若干变型。不同的路由机制可形成如果流在相同的主机(如,服务器)上的虚拟交换机之间传递时完全避免物理网络数据的优化的网络话务路径。将进一步在本文中描述源路由机制的变型。
拦截机制390也是虚拟安全系统360的部分。在实施例中,可在虚拟交换机322中提供拦截机制390以拦截从访客vm330中接收到的每个分组,并且将这些被拦截的分组重定向到分配管理器380中。可在虚拟安全系统360中实现若干拦截机制390,并且将进一步在本文中进行讨论。
策略管理器370包括用于更新策略分配管理器380中针对访客330的安全策略的策略模块374。策略管理器370也可包括vmm安全策略数据库376。除了针对通信系统100中的其他虚拟服务器的其他访客vm的安全策略之外,vmm安全策略数据库376还可具有针对虚拟服务器300的访客vm330的安全策略。在实施例中,策略模块374可使用vmm安全策略数据库376以用针对访客vm330的安全策略来更新vm安全策略数据库386。
附加地或替代地,策略模块374可使用vmm安全策略数据库376以更新流数据库382。在此场景中,可将分配管理器配置成用于使用针对层级3(l3)交换机的公共算法来构建流数据库382。可将分配管理器380配置成用于向策略管理器370查询每一个新的分组流。响应于查询,策略模块374可将应当处理与条目相关联的特定的分组流的vsa340的标识(例如,mac地址)添加到每个分组流数据库条目中。
也可将策略管理器370配置成用于促进按需要分配新的vsa,并且也潜在地促进拦截机制390的配置。如果没有合适的vsa(如策略所要求的合适的vsa)可用于处理分组流,则策略模块374可与其他模块、管理器和虚拟机(如,分配管理器380、云管理器150、安全管理器175等)协调,从而设置、配置和启动新的vsa。例如在首次需要特定的vsa时(例如,需要dlp装置的第一流),该场景会发生。在另一场景中,给定的vsa可能需要消耗更多计算资源(如,ram、处理器资源等)以处理新的分组流。
策略管理器370(或分配管理器380)也可促进对vsa所需要的计算资源的管理。具体而言,可将策略管理器370(或分配管理器380)配置成用于估计或查询所有现有的vsa的容量。如果策略管理器370(或分配管理器380)确定需要更多的容量,则新的分组流可触发新的vsa,或者可使现有vsa中的一个能够使用更多中央处理单元(cpu)。
也可将策略管理器370(或分配管理器380)配置成用于检测虚拟服务器中给定的重复的vsa是未充分利用的(under-utilized),从而停止向该vsa发送分组流,直到它空闲,然后删除其虚拟机。或者,如果重复的vsa未充分利用,则如果其他的vsa可容纳该附加的网络话务载荷,可将那个重复的vsa的分组流重新路由至其他类似的vsa。以这种方式,可将该虚拟化基础结构用于根据需要扩大和收缩的弹性安全机制。
系统管理员可允许虚拟安全系统360具有按需分配安全的不受限的自由,或者系统管理员可应用策略以影响对系统资源的使用。例如,该系统管理员可将安全资源限制为不多于系统资源的10%。如果在那10%中所分配的vsa不能够处理该网络话务,则这些vsa可减慢该网络话务,并且系统管理员可改变这些vsa的策略以允许这些vsa能够更有选择性地处理该话务,或者系统管理员可决定将更高百分比的系统资源分配给vsa。
图4是具有虚拟安全系统的虚拟服务器400的某些组件的简化框图,其示出两个访客vm之间的分组流的流的示例场景。可以按与参考图3中的虚拟服务器300所描述的方式相同或类似的方式配置虚拟服务器400及其多个组件。虚拟服务器400包括若干虚拟机,这些虚拟机包括访客vm430-1到430-n、分配管理器480、策略管理器470以及四个vsa(440-1到440-4)。
可经由交换机422-1将多个访客vm430彼此连接。在一些实施例中,交换机422-1可以是虚拟交换机。在其他实施例中,交换机422-1可以是例如位于虚拟服务器400上或虚拟服务器400外部的网络接口卡中的物理交换机。将多个vsa440示出为经由交换机422-2彼此连接。一般而言,为了清楚起见,单独地示出交换机422-1和422-2。由此,通常可将交换机422-1和422-2组合进适应特定的拦截机制技术和源路由技术的单个域中。然而,在一些实施例中,虚拟交换机422-2和交换机422-1可以是不同的交换机。
在图4中,使拦截机制490和源路由机制484一般化,并且它们表示若干不同的配置,将进一步在本文中进行描述。在图4中的示例场景中,将分组从vm430-1发送到vm430-2。该分组具有源地址vm1.mac和目的地地址vm2.mac。拦截机制490使得将该分组拦截和/或重定向到分配管理器480中,而不是使该分组流向vm2.mac。
如果该分组是分组流中的第一分组,则分配管理器480可构建流数据库482。在一个实施例中,vm策略数据库486包含针对访客vm430-1的安全策略。例如,vm策略数据库486可包含应当处理访客vm430-1的分组流的vsa440的标识。在另一实施例中,分配管理器480向策略管理器470查询访客vm430-1的安全策略。策略管理器470可例如通过直接查询,或通过标识匹配具有某些参数的流的vsa的、预先提供的策略来提供应当处理分组的每一个vsa440的标识。一旦获取了合适的vsa440的标识,可将这些vsa的标识添加到与该分组流相关联的每一个流数据库的条目中。在此示例场景中,可将vsa440-1和vsa440-3的标识添加到流数据库482中。
如果分配管理器480所接收的分组不是分组流的第一分组,则分配管理器480执行对该分组的l3检查,并且在流数据库482中查找该流。分配管理器480可根据该流条目中的数据创建通过所要求的安全设备的源路由。在该场景中,可选择vsa440-1和vsa440-3。当创建了该源路由时,数据库管理器480可经由交换机422-2将该分组发送到vsa440-1。vsa440-1是能够执行对分组内容的安全扫描的ips设备。如果该分组通过了该安全扫描,则vsa440-1可使用相同的源路由机制495将该分组转发到vsa440-3。vsa440-3是将防火墙策略应用于该分组的防火墙。在将防火墙策略应用于该分组之后,vsa440-3可使用源路由机制495的最终步骤,将该分组返回到分配管理器480中。然后,分配管理器480将该分组发送到目的地访客vm430-2中。
vsa中的任意一个(vsa440-1或vsa440-3)可阻止或改变在途中的分组。例如,如果该分组通不过对vsa440-1的安全扫描,或者如果该分组不符合vsa440-3的防火墙策略,则这些vsa中的任意一个可阻止或改变该分组。
可由分配管理器使用源路由机制(如,395、495)以特定的顺序将分组流之内的多个分组路由至多个虚拟安全装置中。在由拦截机制拦截了多个访客虚拟机之间的网络话务之后,调用源路由机制。一般而言,分配管理器从其表(如,流数据库482、382)中获取一些数据(每次接收一个分组),并且修改该分组,使得每个vsa能够正确地将分组路由至下一个或vsa或往回路由到目的地管理器中。
能以多种方式将源路由机制配置成用于如针对访客vm的安全策略所要求的那样,实现将分组从访客vm路由至vsa中的所期望的路由。在一个实现方案中,将该源路由机制实现为1981年9月的网际协议darpa网际项目协议规范意见征求稿(rfc)791中所定义的源路由。如果分配管理器480和多个vsa440中的每一个实现路由器功能,则可使用该机制。例如,如果用具有固有的路由功能的操作系统来实现这些虚拟机(如,访客vm430和vsa440),则操作系统可提供此功能。该技术使标准的操作系统实现方案能够进行该源路由。
图5是利用或不利用私有虚拟局域网(私有vlan)的、使用mac头部封装的另一源路由机制的框图。当ip源路由不是选项时,协作的mac层级源路由是可能的。在该机制中,以下列结构对分配管理器580中的每一个进入的分组581加头部前缀:
假定上述类型是按字节压缩的。在上述结构中,头部的第一部分看起来像以太网iimac头部。虽然参考mac头部描述了该配置,但是可作出合适的改变以适应其他类型的头部,例如,使用ieee802.3头部的网络。在该mac_src_route_header之后,原始的分组开始。可按num_src_type*6+14来计算针对该mac_src_route_header的偏移,以恢复原始分组。在处理期间,需要保留该mac_src_route_header。在一个示例中,可在驱动程序层级上构建流表582以针对分组流中的每一个分组使用相同的头部。在输出时,增加src_route_next头部,并且在dst字段上复制该src_route数组中的下一个mac地址。
当分组流开始时,分配管理器创建针对每个分组流的mac_source_route_header。该src_route数组具有处理此分组流所需的每一个vsa的mac地址。这些mac地址是分配管理器580的配置的部分。或者,分配管理器580可使用地址解析协议(arp)、“你好”(bonjour)调用或管理程序调用来导出mac地址。将src_route_next设置为零,并且将目的地管理器580的mac地址自身作为最后的目的地来放置。
图5示出在使用mac头部封装的源路由机制中的示例操作。当在581处接收到来自vmi(即,访客vm)的分组时,分配管理器580在流表582中查找该分组流。然后,分配管理器580将该mac_source_route_header添加到该分组中。在583处,分配管理器重新发送来自流表582的、具有mac_sourc_route_header的该分组。然后,假定没有vsa阻止该分组,则分配管理器580可接收从最后一个vsa返回的该分组,以便对其进行处理。分配管理器580去除该头部,并且将该分组转发到原始的目的地vm。
图6是表示使用硬连线的虚拟端口来实现另一源路由机制的虚拟服务器600的示例组件的框图。可以按与参考图3中的虚拟服务器300所描述的方式相同或类似的方式配置虚拟服务器600及其多个组件。虚拟服务器600包括分配管理器680和三个示例虚拟安全装置(vsa)ips640-1、fw640-2和dlp640-3。该源路由机制尤其适用于使用少量的(如,2个、3个)不同种类的vsa的配置。
可利用虚拟接口和虚拟交换机来实现使用硬连线的虚拟端口的源路由机制。分配管理器680接收经使用拦截机制(将进一步在本文中进行描述)而遭拦截的网络话务。该网络话务可来源于虚拟服务器600中的源访客虚拟机,并且可具有虚拟服务器600中的目的地访客虚拟机的目的地地址,或具有在虚拟服务器600外部的某个其他的目的地地址。替代地,该网络话务可来源于虚拟服务器600外部的源,并且可具有虚拟服务器600中的访客虚拟机的目的地地址。
一旦已经由分配管理器680接收到了网络话务,则可将每个分组流分配到一组vsa中,这些vsa是“有线连接的”,使得该话务从一个vsa的输出端口进入到另一vsa的输入端口中。将最终端口发送到分配管理器680中。如果将所有的vsa640实现为“线中的块”,则该话务通过有效的源路由而流动。在该方案中,该vas可能需要附加的资源以实现许多虚拟接口,或者可能需要附加的vsa以实现所有的选项。在另一实现方案中,可将附加的虚拟局域网(vlan)标签用于这些路由中的每一个路由。
由于不同路径的数量随着不同安全设备的数量的增加而指数增加,因此,该方式更适用于较少数量的vsa。然而,在一些网络环境中,仅期望少量的安全设备,并且一般按所定义的顺序来安排这些安全设备。由此,在这些类型的配置中,针对原路由机制的硬连线的虚拟端口选项可能是特别有利的。
参考图6中的示例场景,硬连线的虚拟端口执行源路由。分配管理器680和多个vsa640(ips、fw和dlp)中的每一个具有许多虚拟接口。在该图中,使用表示这些元件之间的一个或多个虚拟交换机的线将这些元件“有线地连接”在一起。在实施例中,可用下一个输入接口的mac地址来静态地配置每一个输出接口中的驱动程序,或者每一个输出接口中的驱动程序可使用接收接口中的混杂模式来模拟两个端口之间的直接连接。
分组可根据拦截机制抵达分配管理器680的端口p601,并且可在端口q602上将这些分组往回发送。为了仅向ips640-1发送,分配管理器680在端口d606上发送分组,并且在端口e607上接收该输出。为了仅向fw640-2发送,分配管理器680在端口f608上发送分组,并且在端口g609上接收该输出。为了仅向dlp640-3发送,分配管理器680在端口h610上发送分组,并且在端口j611上接收该输出。
为了按顺序发送到ips640-1和dlp640-3,分配管理器680在端口c605上发送分组,并且在端口k612上接收该输出。为了按顺序发送到ips640-1和fw640-2,分配管理器680在端口b604上发送分组,并且在端口n614上接收该输出。分配管理器680上的附加端口可允许在fw640-2和dlp640-3之间配置附加的硬连线的虚拟端口路由。最后,为了按顺序发送到所有可用的vsa(即,ips640-1、fw640-2和dlp640-3),分配管理器680在端口a604上发送分组,并且在端口m613上接收该输出。
图7是示出分配管理器的过程的实施例的简化流程图。尽管流程700可适用于本文所描述的分配管理器和虚拟安全系统的各实施例,但是,为了便于引用,引用图3中的分配管理器380和其他组件。可由路由分配管理器380中的路由模块384来执行流程700的一个或多个活动。
在702处,分配管理器380接收来自源访客虚拟机的、被拦截的分组。在704处,对于分组流的第一分组,该分配管理器可确定针对该分组流的安全策略。在一个实施例中,该分配管理器可搜索vm安全策略数据库386以确定应当处理该分组流的vsa的标识。在另一实施例中,该分配管理器可查询策略管理器370。策略管理器370可提供针对该源访客虚拟机的、要应用于该分组流的合适的安全策略。该安全策略可包括应当处理该分组的vsa的标识以及这些vsa处理该分组应当遵循的顺序。可将该安全策略中的每一个vsa的标识(如,mac地址)添加到流数据库382中的与该分组流相关联的每一个条目中。
在706处,该分配管理器可为该分组创建去往合适的vsa的路由。可从流数据库382中导出源路由。该分配管理器从流数据库382中的、与该分组流相关联的一个或多个条目的数据中创建出通过所要求的vsa340的源路由。对于一些实施例,该分配管理器可修改该分组以包括该源路由,并且由此使vsa能够接收该分组,从而恰当地转发该分组。
在708处,该分配管理器可将该分组发送到该源路由中所标识的第一vsa中。在710处,确定该分配管理器是否接收到了从这些vsa中返回的该分组。如果该分配管理器接收到了该分组,则可以假定,该分组通过了所有这些vsa的安全检查,或者由这些vsa中的一个或全部修改了该分组,从而使其符合这些vsa的特定的安全检查要求(例如,防火墙策略、反病毒扫描等)。
如果由该分配管理器接收到了该分组,则在712处,该分配管理器可将该分组路由至该分组的原始目的地。例如,该目的地可以是相同的虚拟服务器上的另一访客虚拟机,或者可以是不同的虚拟服务器上的另一访客虚拟机。
如果该分配管理器没有回收到该分组(例如,在特定的时间量消逝之后没有接收到分组),或者如果vsa发送了指示已丢弃该分组的消息,则可由该分配管理器执行任何合适的动作(如在714处一般地示出的那样)。这些动作可包括但不限于,发送出错消息、向系统管理员或其他经授权的用户发送警报以及阻止来自相同的源访客虚拟机的新的分组。在实施例中,在经过了某段时间而没有接收到该分组之后,或者在接收到来自vsa的、指示该分组未通过安全检查的通知之后,该分配管理器可确定执行某些动作。
图8是示出拦截机制的又一示例实现方案的框图。在图8中的实施例中,将开放流交换机822配置为针对虚拟安全系统的拦截机制。通常,在交换机中执行针对新的网络话务流的决策算法。然而,开放流交换机是针对新的网络话务流的决策算法与该交换机的数据路径分开、并且该交换机的控制路径组件可驻留在不同的物理机器上的交换概念。在该开放流方案中,当该开放流交换机接收到来自现有的、已知的话务流的分组时,基于针对所接收的话务的已知的流路由来路由该分组。然而,当发起了新的流,并且由该开放流交换机检测到该新的流时,可横跨该虚拟网络基础结构,用流参数来通知开放流控制器的控制器过程。该开放流交换机可管理现有的网络话务流,但是,在该开放流交换机的外部的附加机制可控制针对新的网络话务流的流路由的生成。在由开放联网基金会(theopennetworkingfoundation)在2011年12月5日发布的版本1.2(有线协议0x03)的“开放流交换机规范”(“openflowswitchspecification”)中,更详细地描述了该开放流方案。
在使用开放流交换机的实施例中,可直接将拦截和源路由机制优化为交换架构。因此,当向该开放流交换机的控制器提供了能够立即隐式地配置完整的流的多个网络流段的分配管理器模块时,可省略单独的源路由机制。
可将分配管理器模块整合进该交换机的开放流控制器过程中。该分配管理器模块通过根据新流的所配置的策略插入多个流以通过多个vsa覆盖该新流的传送,从而生成通过虚拟安全装置、经由该开放流交换机来路由该新流的分组所需的流路由。最后的此类所插入的流最终经由开放流交换机,将该分组路由至该新流的源所期望的目的地中。在实施例中,该开放流控制器过程可控制针对该交换机的所有的新流,或者可植入到普通的控制器软件中以覆盖某些决定。由此,如本文中先前所描述的那样,由该开放流交换机控制器将该分配器管理器功能归入到该开放流交换机中。
图8示出使用虚拟服务器800中的开放流交换机822的实施例的示例实现方案。可以按与参考图3中的虚拟服务器300所描述的方式相同或类似的方式配置虚拟服务器800及其多个组件。可用多个虚拟机(vm)(830-1到830-n)和多个虚拟安全装置(vsa)(840-1到840-4)来配置虚拟服务器800。为了便于说明,在虚拟服务器800中示出仅四个vsa,包括两个入侵防护系统(ips)(vsa840-1和840-2)、一个防火墙(fw)vsa840-3和一个数据丢失防护(dlp)vsa840-4。然而,显而易见的是,可在虚拟服务器中配置任何数量和任何类型的vsa以提供对来自多个虚拟机的网络话务的各种安全检查。
也在虚拟网络基础结构中提供开放流控制器825,并且该开放流控制器825包括策略信息886、流路由表882和分配管理器模块880。在实施例中,分配管理器模块880可以是用于开放源控制器825的插件。也可将策略管理器870配置成用于与开放流控制器825通信,更具体地说,与分配管理器模块800通信。除了其他功能之外,策略管理器870还可以向能以任何合适的形式(如,数据库、表、队列、高速缓存等)存储的策略信息886提供策略信息更新。在所示出的实施例中,可将开放流控制器825配置在虚拟网络基本结构中、虚拟服务器800外部的某处。在另一实施例中,可在具有开放流交换机822的虚拟服务器800中配置开放流控制器825。
在开放流控制器825中,当生成流路由时,源路由是隐含的。这使得交换机硬件能够自动地处理流中的所有分组(在最初的分组之后),并且可消除处理每个分组的需求。
在图8中示出示例流段(即,流-1、流-2和流-3)以说明具有开放流交换机(其具有分配管理器模块)的虚拟安全系统的可能的操作场景。为了进行说明,假定vm830-1向vm830-2发起通信。vm830-1可尝试向vm830-2发送初始的连接分组。开放流交换机822可向开放流控制器825发送指示该开放流交换机822接收到初始的连接分组的控制分组。可在开放流控制器825中配置标准软件以构建具有从vm830-1到vm830-2的流路由的流表。分配管理器模块880可覆盖任何标准软件。相反,分配管理器模块880可标识策略信息886的、适用于该连接分组的源(vm830-1)的一个或多个策略。在实施例中,可将策略信息866存储在开放流控制器825的数据库或其他存储器元件中,或存储在该虚拟网络基础结构中的、可由开放流控制器825访问的任何其他位置中。
在该示例场景中,策略信息886中的策略指示将通过ipsvsa840-1和fwvsa840-3来路由来自vm830-1的网络话务。相应地,分配管理器模块880可创建三个流段:从vm830-1到ipsvsa840-1的流-1、从ipsvsa840-1到fwvsa840-3的流-2以及从fwvsa840-3到vm830-2的流-3。可将这些流段保存在流路由表882中。这些流段的创建使得针对所指定连接的安全路由操作自动地发生。分配管理器模块880也可将流段1、2和3约束到端口号和层级2(l2)信息两者,从而增加所提供的路由的特异性。
当完成网络话务或连接超时的时候,可由开放流交换机822通知开放流控制器825。可删除流路由表882中的这些流路由段。在一个实施例中,分配管理器模块880在将这三个流段存储到流路由表882中的时候,可对它们进行关联。在另一实施例中,分配管理器模块880可从策略信息886中重新导出这些流段,并且从流路由表882中删除这些流段。
在另一实施例中,当这三个流段中的每一个出现时,可递增地将其编程入开放流交换机822中。这要求由分配管理器模块880进行一些登记。该实施例可取决于开放流交换机822的特定能力。
转到图9,图9是示出根据实施例的用于开放流控制器过程的简化流程图。流程900可以是至少部分地当开放流交换机822接收到来自访客虚拟机的新的网络话务时,由开放流控制器825中的分配管理器模块880所执行的过程。
在902处,开放流控制器825可接收针对虚拟服务器的访客虚拟机的策略。这些策略可以是经更新的策略,或者可以是与策略信息886一起被存储的新策略。在904处,分配管理器模块880接收针对由开放流交换机822从诸如访客vm830-1之类的一个虚拟机处接收到的、去往诸如访客vm830-2之类的另一虚拟机的分组的控制消息。
在906处,分配管理器模块880从策略信息886中确定针对该分组的安全策略。在908处,可覆盖开放流控制器825的、生成从源访客vm到目的地访客vm的流路由的、任何预先存在的逻辑。可由分配管理器模块880创建潜在地具有多个流路由段的新的流路由,并且将该新的流路由提供给开放流交换机822,从而根据该新的流路由来路由该分组。开放流交换机822会将每个流段认为是独立的流,凭借足够的规格特性(如,端口号)将每一个流与该交换机822之内的其他流区分开来。该新的流路由可包括一个或多个虚拟安全装置,在将分组转发到该分组的实际目的地(访客vm830-2)之前,将该分组发送到这些虚拟安全装置中。
图10和图11分别在虚拟服务器1000和1100中示出图1中的拦截层190的硬件拦截机制的示例实现方案。在硬件拦截机制中,告知管理程序将虚拟网络接口卡“连线”到物理网络接口处。这并不是物理连线操作,而是将网络话务路径重新配置为从访客vm上的vnic流到物理nic中的虚拟连线操作。更具体地说,将该管理程序配置为用于避免执行其针对指定的接口的虚拟化功能。结果,该客户及vm能够获得对物理硬件的直接访问。该物理接口的硬件实现所期望的交换和拦截。
实现硬件拦截的一种机制是使用数据平面直接存储器访问(dma)机制来传输来自虚拟机的数据。dma是允许计算机的某些硬件子系统能够独立于处理器(即,中央处理单元(cpu))而访问系统存储器的特征。
实现dma的示例是标准的单根输入/输出虚拟化(sr-iov)机制。sr-iov将该管理程序从往返于虚拟机移动数据的过程中去除。相反,直接往返于该虚拟机移动数据,并且由此绕过该管理程序(包括其虚拟交换机)。sr-iov允许物理nic上的一个或多个接口能够实现直接去往虚拟机的双向dma通道(称之为“虚拟功能”)。由此,单个物理nic能够公开可由虚拟机或虚拟交换机直接使用的众多虚拟接口。一些管理程序和一些nic实现该sr-iov规范。通过使用兼容sr-iov的nic和管理程序,可拦截(即,绕过管理程序及其虚拟交换机)来自给定的虚拟机的分组而使之进入物理nic。可由该nic中内置的l2交换机将所拦截的分组从一个虚拟功能重定向到另一虚拟功能中。可将该另一虚拟功能分配到接收到来自该虚拟机的被拦截的话务的分配管理器中。
在一些物理nic中,多个sr-iov通道馈入该物理nic的交换机中。在这种情况下,可例如通过重新配置该nic,使得这些虚拟功能各自可重定向到专用于该分配管理器的虚拟功能中,从而调节来自每个虚拟机或虚拟交换机的这些功能。这允许该分配管理器能够不利用专用硬件而拦截、处理并重新路由分组。
在图10中,示出具有访客虚拟机1030-1到1030-4、虚拟交换机1022-1和1022-2以及其他虚拟机(包括分配管理器1080和一个或多个vsa1040)的管理程序1020。在图10中,在虚拟交换机层,而不是在虚拟机层配置拦截。由此,拦截发生在多个虚拟交换机之间。在图10中,租用机(tenant)1035-1包括访客虚拟机(vm)1030-1、1030-2和1030-3,并且租用机1035-2包括访客虚拟机(vm)1030-4。虚拟nic(vnic)使得这些访客vm中的每一个和分配管理器能够传递至虚拟交换机1022-1和1022-2中的一者或两者。在示例实现方案中,租用机1035-1和1035-2可表示战略上和/或逻辑上成组(grouped)的访客vm(如,金融组、计费组、工程组)。一个租用机之内的多个机器之间的话务(例如,租用机1035-1中的多个虚拟机1030之间的话务)不受拦截,并且不受该安全装置的影响。因此,有望仔细地将这些虚拟机分配到多个虚拟交换机中。
访客vm1030-1到1030-3的多个vnic将分组发送到虚拟交换机1022-1和1022-2,并且从虚拟交换机1022-1和1022-2中接收分组。在该拦截层上,物理网络接口卡(nic)1010运行sr-iov,并且包括端口1014、层级2(l2)交换机1012和虚拟功能(vf)1016-1到1016-3。多个vf1016允许经由多个虚拟交换机1022向多个访客vm1030的连接。相应地,在该实现方案中,来自多个vf1016的连接将去往多个虚拟交换机1022的边缘层,而不是直接去往多个访客vm1030。
可提供分配管理器1080以根据预定义的策略启用对来自特定访客vm1030的流的路由操作。基于这些预定义的策略,可在虚拟服务器1000中配置一个或多个虚拟安全装置1040。此外,分配管理器1080可实现上述源路由机制中的任意机制,从而以期望的顺序将分组路由至策略所指定的vsa中。
为了进行说明,考虑从vm1030-1到vm1030-4的示例分组流。当vm1030-1将分组发送到vm1030-4时,该分组流经虚拟交换机1022-1,并且需要通过虚拟交换机1022-2以连接到vm1030-4。配置该拦截层以迫使该分组经过硬件(即,nic1010)。该分组流经vf1016-1,并且进入物理l2交换机1012。l2交换机1012将该分组发送到分配管理器1080中。
可利用先前所描述的源路由机制中的任意机制来配置分配管理器1080。如果策略适用于来自vm1030-1的该分组流,则根据该策略,路由该分组使其通过一个或多个vsa1040,从而获得合适的安全检查。如果该分组成功地通过一个或多个vsa安全检查,则可将该分组往回路由到分配管理器1080中,然后,该分配管理器1080可将该分组路由到虚拟交换机1022-2中。然后,从虚拟交换机1022-2处将该分组转发到目的地vm1030-4中。
也可拦截从vm1030-4到vm1030-1的返回网络话务,并且通过合适的安全控制来路由该返回网络话务。来自1030-4的分组流经虚拟交换机1022-2,并且需要通过虚拟交换机1022-1以连接到vm1030-1。该拦截层(例如,使用sr-iov)迫使该分组通过nic1010。该分组流经vf1016-3,并且进入物理l2交换机1012。l2交换机1012经由vf1016-3,将该分组发送到分配管理器1080中。
如果策略适用于来自vm1030-4的该分组流,则根据该策略,路由该分组使其通过一个或多个vsa1040,从而获得合适的安全检查。如果该分组成功地通过一个或多个vsa安全检查,则可将该分组往回路由至分配管理器1080中,然后,该分配管理器1080可将该分组路由至虚拟交换机1022-1中。然后,从虚拟交换机1022-1处将该分组转发到目的地访客vm1030-1中。
在一些实施例中,该分配管理器可例如在新流开始的时候确定没有针对该流所需要的安全检查。在一些实施例中,nic1010的硬件支持将这些流中的后续的分组直接路由至其目的地虚拟交换机中,而不需要流经该分配管理器的配置。
在图11中,示出具有访客虚拟机1130-1和1130-2、虚拟交换机1122-1和1122-2以及其他虚拟机(例如,分配管理器1180和一个或多个vsa1140)的管理程序1120。在图11中,部分地在虚拟机层配置拦截,在该虚拟层中,将访客vm1130-2的vnic连线到具有l2交换机1112的物理网络接口卡(nic)1110处。由此,nic1110实现针对访客vm1130-2的、所期望的交换和拦截。sr-iov在nic1110上运行,并且从往返于访客vm1130-2移动数据的过程中有效地去除管理程序1120及其虚拟交换机(v交换机)1122。将虚拟功能1116-2配置为直接去往访客vm1130-2的双向dma通道。因此,访客vm1130-2绕过管理程序1120中的、诸如虚拟交换机1122-1之类的虚拟交换机。有效地拦截了来自访客vm1130-2的网络话务,并使之进入nic1110。对来自访客vm1130-1的网络话务的拦截是在虚拟交换机层上的,并且可将该拦截配置为参考图10中的访客vm1030所描述的拦截。诸如l2交换机1112之类的外部路由机制可将分组从两个访客vm1130转发到分配管理器1180中。
在图11中,可提供分配管理器1180以根据预定义的策略启用对来自特定访客vm1130的流的路由操作。基于这些预定义的策略,可在虚拟服务器1100中配置一个或多个虚拟安全装置1140。此外,分配管理器1180可实现上述源路由机制中的任意机制,从而以期望的顺序将分组路由至策略所指定的vsa中。在图11中的示例图示中,通过虚拟交换机1122-2和vf1116-3将分配管理器1180连接到nic1110。这使得分配管理器1180能够与访客vm1130-2通信,该访客vm1130-2具有进入nic1110的直接连接。
图12是示出可以与图10和图11中所示的硬件拦截相关联的一些潜在的操作的简化流程图。流程1200示出可由虚拟服务器的硬件层中所实现的拦截机制执行的潜在的操作。为了便于解释,在下列对流程900的描述中,引用图11中的多个组件。
在1202处,l2交换机1112接收来自源访客vm1130-1的分组。将该分组定址到目的地访客vm1130-2,并且由l2交换机1112经由虚拟功能(vf)1116-1来接收该分组。经由vf1116-3和虚拟交换机1122-2,将该分组转发到分配管理器1180中。在实施例中,nic1100可允许对l2交换机1112nic的改变,从而启用向分配管理器1180的合适的路由操作。自动地将来自访客vm1130-1的分组路由至被连接到该分配管理器的特殊硬件端口(即,队列)。由此,修改了nic1110以允许sr-iov功能馈入该nic中。
当分配管理器1180接收到该分组时,其确定与该分组相关联的分组流是否受制于任何安全策略。如果确实如此,随后,可将分配管理器1180配置成用于使用前述源路由机制中的任意机制,将该分组路由至策略指定的vsa中。如果该分组成功地通过了来自这些vsa(路由该分组使其经过这些vsa)的安全检查,则分配管理器1180可经由vf1116-3将该分组往回发送到交换机1112中。
在1206处,如果交换机1112没有接收到来自分配管理器1180的、经由vf1116-3的该分组,则流程1200结束。然而,如果经由vf1116-3接收到了该分组,则在1208处,可将该分组路由至其原始的目的地访客vm1130-2中。在这种情况下,直接将该分组从nic1110的硬件经由1116-2,传输到访客vm1130-2中,并且由此绕过虚拟交换机1122-1和1122-2。
图13示出利用提供内部拦截机制的管理程序的示例实现方案,在该内部拦截机制中,当网络话务通过虚拟交换机时,代码模块能够与该管理程序的虚拟交换机协调。在该实现方案中,分配管理器模块与虚拟交换机自身位于一处,并且能够访问流经该虚拟交换机的每一个分组。此外,如适用于该分组的源虚拟机的策略所要求的那样,可将该分配管理器模块配置成用于迫使分组流经所期望的虚拟安全装置。
在图13中,示出具有访客虚拟机(访客vm)1330-1和133-2的虚拟服务器1300。虚拟安全装置1340表示配置成用于将安全检查应用于来自与虚拟服务器1300的访客vm的网络话务的一个或多个vsa。虚拟交换机(v交换机)1322包括拦截代码模块1390和分配管理器模块1380。可将策略管理器1370配置为虚拟服务器1300或另一虚拟服务器的另一虚拟机。或者,可包括策略管理器1370而使得全系统范围的管理服务在物理服务器上直接受主管。可以按与参考图3中的虚拟服务器300所描述的方式相同或类似的方式来配置虚拟服务器1300及其多个组件。
在示例图示中,假定访客vm1330-1向访客vm1330-2发送消息。在1301处,将网络流的分组发送到访客vm1330-2,但是由虚拟交换机1322中的拦截代码模块1390拦截了该分组。在1302处,拦截代码模块1390将该被拦截的分组发送到分配管理器模块1380中。分配管理器模块1380获取策略以确定向哪里路由该分组。在示例实施例中,可从由策略管理器1370持续更新的策略数据库中获取该策略,或者可通过查询该策略管理器1370来获取该策略。
分配管理器模块1380可修改该分组以包括针对该策略的每个vsa的网络地址(如,mac地址)。或者,可将该分组转发至另一虚拟交换机,进而通过多个vsa来路由该分组。在1303处,分配管理器模块1380将该分组发送到所选择的一个或多个vsa1340。如果成功地执行了全部安全检查,则在1304处,将该分组往回发送到分配管理器模块1380中。然后,分配管理器模块1380可将该分组转发到其目的地vm1330-2中。
另一可能的拦截机制涉及利用上行链路端口上的分配管理器,将交换元件实现为私有虚拟局域网(pvlan)。在pvlan中,可将一个端口指定为上行链路端口。无论分组的目的地介质访问控制(mac)地址或vlan是什么,总是将从任何其他端口中发送出的分组路由至该上行链路。照例为交换机递送通过该上行链路端口而引入的分组(例如,根据目的地mac地址)。
在该配置中,将所有的分组传送到分配管理器,并且该分配管理器可基于原始的mac地址,将分组路由到任何其他虚拟机中。在此拦截机制中,每一个分组需要至少一个额外的跳(hop)以往返于该分配管理器。
转到图14,简化的交互图示出与虚拟安全系统中的虚拟机改变相关联的潜在操作。更具体而言,图14示出在虚拟云基础结构中部署新的虚拟机或者移动现有的虚拟机的场景。此外,图14示出在虚拟云基础结构之内,更新安全策略或将安全策略添加到虚拟机中的场景。图14中的交互组件包括图3中的策略管理器370、分配管理器380、拦截机制390和虚拟安全装置(vsa)340。也包括了图1中的云管理器150,其可以与策略管理器370(在策略层170中)和分配管理器380(在分配层180中)交互。图14中的多个组件可包括本文中所公开的此类组件的各种实施例中的任意实施例。
在1402处,用户经由云管理器150,在虚拟云基础结构之内将现有的访客虚拟机从一个位置移动到另一位置。例如,可将访客虚拟机从第一虚拟服务器移动到虚拟服务器300,该第一虚拟服务器和虚拟服务器300各自具有单独的管理程序和不同的底层硬件。云管理器150可提供虚拟机从一个物理服务器到另一物理服务器的实时迁移。提供此能力的一个解决方式是由加利福尼亚州帕罗奥图(paloalto)的威睿公司(vmware,inc.)提供的
在另一场景中,在1404处,用户可经由云管理器150,将新的访客虚拟机部署到虚拟云基础结构中。云管理器150在虚拟服务器300上分配新的访客虚拟机。在又一示例中,用户可更新安全策略,或将安全策略添加到虚拟云基础结构之内现有的虚拟机中。如本文中先前所描述的那样,可由云管理器(如,图1中的云管理器150)管理用于添加新的虚拟机和移动现有的虚拟机的机制。然而,可单独地实现用于将新的安全策略添加到所添加的新的访客vm中的机制或用于将新的安全策略添加到现有的访客虚拟机中的机制。例如,安全管理器(如,图1中的安全管理器175)可提供用户接口以允许经授权的用户更新安全策略,或将安全策略添加到新的或现有的访客虚拟机中。该安全管理器可将经更新的或新的安全策略传递到策略管理器中,或者可能能够启用直接的安全策略数据库更新(如,vmm安全策略数据库376)。为了便于引用,将参考添加或移动访客虚拟机来进一步解释图14。然而,应当理解,当针对现有的访客vm添加或更新安全策略时,可执行图14中所描述的一个或多个活动。
在每个场景中,策略管理器370可检测来自云管理器150的信号,该信号指示正在部署新的访客虚拟机或正在虚拟云基础结构之内移动现有的访客虚拟机。在实施例中,可使用应用编程接口(api)来检测该信号。在检测到该信号时,策略管理器370可促进在部署或移动该访客虚拟机的位置(如,虚拟服务器)中创建和/或配置拦截机制390。策略管理器370也可促进合适的虚拟安全装置340的创建和/或配置。
在1406处,策略管理器370可查询云管理器150以确定策略是否要求了针对访客虚拟机的任何安全控制。例如,该用户可能已经请求将入侵防护系统(ips)和防火墙(fw)应用于来自该访客虚拟机的某些网络话务。
如果指定了针对该访客虚拟机的安全控制,则在1408处,策略管理器可查询分配管理器380,可将该分配管理器配置为部署或移动访客虚拟机所发生的虚拟服务器上的虚拟机。该查询可确定是否在该虚拟服务器上以虚拟安全装置(vsa)340的形式提供了针对该访客虚拟机的、所指定的安全控制。如果所请求的安全控制存在于该虚拟服务器中,则在1422处,分配管理器380可将指示所请求的vsa存在的消息发送到策略管理器370中。
在1412处,策略管理器370可阻止访客vm,并且不允许该访客vm在虚拟服务器300中运行,直到设置了合适的vsa为止。在一些实施例中,可能不存在阻止该访客vm的机制,并且步骤1412可通过阻止或以其他方式路由往返于该访客vm的话务,在多个vsa启动时,力图限制安全暴露。例如,如果正在将该访客vm移动到另一虚拟服务器中,则可例如使用trombone路由,将来自该访客vm的话务往回路由至另一服务器以使用现有的vsa,直到新的vsa运行为止。在1414处,如有必要,策略管理器可向分配管理器380发送配置拦截机制的请求。在一些实施例中,可由分配管理器380配置该拦截机制。
在1416处,分配管理器可配置拦截机制390。通常,可将拦截机制390配置在虚拟交换机中,或者拦截机制390可固有地存在于开放流交换机的实施例中。在1418处,该分配管理器也可向云管理器150发送创建所要求的vsa的请求。在接收到请求时,在1418处,云管理器150可动态地创建访客vm的安全策略中所指定的vsa340。云管理器150可使用具有虚拟机模板的镜像存储,该镜像存储允许云管理器150实质上复制vsa以在虚拟服务器300中创建一个新的vsa。
在一些实施例中,在分配了vsa之后,可配置拦截机制。例如,在硬件拦截中,一旦分配了vsa,则可能需要重新配置(或“重新用线连接”)某些虚拟交换机和vnic,从而迫使网络话务经过该硬件拦截配置。
一旦创建了合适的vsa,则在1422处,分配管理器380向策略管理器370发送就绪信号。然后,在1424处,策略管理器可更新分配管理器上的安全策略。在1426处,分配管理器380配置这些新的vsa(或现有的vsa)。在1428处,分配管理器380可向策略管理器370发送指示已创建并配置了这些vsa以及配置了拦截机制390的消息。在1430处,策略管理器370可允许该访客vm运行。
在另一场景中,可将新的访客vm部署到其中还没有配置安全控制的虚拟服务器中。由此,在所针对的虚拟服务器中,可能还没有创建分配管理器。在该实例中,策略管理器370可向云管理器150发送在所针对的虚拟服务器处创建分配管理器的请求。由于可将分配管理器配置为虚拟机,因此,云管理器150可使用针对分配管理器的虚拟机模板以复制分配管理器,从而在所针对的虚拟服务器中创建新的分配管理器。
在另一实施例中,可将策略管理器370和分配管理器380的多个功能中的一些或全部整合进单个的虚拟机中。此外,策略服务器370和/或分配管理器380的多个功能中的一些或全部可以与vsa相组合。在一个特定的实施例中,该策略管理器可保留其单独的功能,而该分配管理器的多个功能可以与vsa相组合,或者可以横跨两个或更多vsa而散布。在另一实施例中,可由该策略管理器执行该分配管理器的多个功能中的一些(但不是全部)。所整合的策略管理器可检测经改变(例如,将访客vm添加或移动到所针对的虚拟服务器中,请求针对现有的访客vm的新的或经更新的策略)的访客vm。所整合的策略管理器可与云管理器150通信以确定安全策略是否适用于该访客vm。如果策略适用于该访客vm,则所整合的策略管理器可确定策略所指定的vsa是否存在于该虚拟服务器中,并且如果需要创建这些vsa以符合该策略,则所整合的策略管理器阻止该访客vm。所整合的策略管理器也可配置拦截机制(在某些实施例中),请求云管理器150创建任何需要的vsa,并且配置这些vsa。一旦在该虚拟服务器中配置了合适的安全控制,则所整合的策略管理器可允许该访客vm运行。
图15是示出策略管理器的过程的实施例的简化流程图。尽管流程1500可适用于本文所描述的策略管理器和虚拟安全系统的各实施例,但是,为了便于引用,引用图3中的策略管理器370和其他组件。在实施例中,可由策略管理器370中的策略模块374执行流程1500的一个或多个活动。
在1502处,策略管理器370检测指示对通信系统100的虚拟云基础结构之内的访客虚拟机的改变的信号。可由策略管理器370检测的、对访客vm的改变的一个示例可包括从一个虚拟服务器被移动到具有不同的管理程序和不同的底层硬件的另一虚拟服务器中的现有的访客vm。可检测的改变的另一示例包括将新的访客vm添加到虚拟服务器中。可检测的改变的进一步的示例包括针对现有的访客虚拟机请求新的或经更新的策略。
在1504处,进行关于是否由策略针对该访客vm指定安全控制的确定。在实施例中,策略管理器370可查询云管理器以确定安全策略是否适用于该访客vm。在实施例中,策略管理器370可查询主安全策略数据库(如,vmm安全策略数据库376)或与云管理器分开的其他模块,从而确定安全策略是否适用于该访客vm。该安全策略可包括将一个或多个安全控制应用于该访客vm的某些网络话务的要求。安全控制可采取实现各种类型的安全的虚拟安全装置的形式,例如,ips、fw、dlp等。
如果指定了安全控制,则在1506处,策略管理器370发送查询以标识在其中添加或移动该访客vm的虚拟服务器中现有的vsa。如果在1508处确定策略指定的vsa不存在于该虚拟服务器中,则在1510处,策略管理器370可阻止该访客虚拟机运行。
在一些实施例中,在1512处,策略管理器370可向分配管理器380发送在该虚拟服务器上配置合适的拦截机制的请求。例如,硬件拦截配置可能需要对某些vnic和虚拟交换机重新连线。在其他实施例中,可单独地设置和配置拦截机制。例如,可用硬件拦截机制来配置开放流交换机实现方案,但并不一定必须包括该硬件拦截机制。
在1514处,确定是否在该虚拟服务器上创建了策略指定的vsa以及配置了该拦截机制。在实施例中,来自分配管理器380的就绪信号指示创建了这些vsa以及配置了该拦截机制。如果创建了这些vsa,并且配置了该拦截机制,或者如果先前在1508处确定了所要求的vsa已经存在于该虚拟服务器中,则在1516处,该策略管理器可更新该分配管理器上的安全策略。这些策略可指示应当将这些访客vm的哪些网络话务流路由到哪些vsa中。
一旦已经在该分配器管理器上更新了这些安全策略,则在1518处,该策略管理器可允许新部署的或新的访客vm在该虚拟机上运行。
可检测的改变的另一示例是从虚拟服务器中去除或删除访客vm。在这种情况下,流程1500中可发生一些变化。最初,该策略管理器可确定先前由所删除的访客vm使用的安全控制对于该虚拟服务器上的其他访客vm而言是否仍然是需要的。如果这些安全控制(例如,一个或多个vsa)仍然由其他访客vm使用,则这些安全控制可以保留在该虚拟服务器上。
然而,如果有任何现有的vsa在该虚拟服务器上是不需要的,则可在该服务器上去除那些vsa或以其他方式取消供应那些vsa。此外,如果已针对所删除的访客vm配置了硬件拦截机制(如,sr-iov),则可重新配置该硬件拦截配置,使得以与在针对该服务器上所删除的访客vm进行的硬件拦截配置之前连接虚拟交换机和vnic的方式相同的方式来重新连接这些虚拟交换机和vnic。
图16是示出分配管理器的过程的实施例的简化流程图。尽管流程1600可适用于本文所描述的分配管理器和虚拟安全系统的各实施例,但是,为了便于引用,可在解释图16时引用图3中的分配管理器380和其他组件。在实施例中,可通过在分配管理器380中提供模块384来执行流程1600的一个或多个活动
在1602处,虚拟服务器300的分配管理器380接收对安全控制信息的请求。在实施例中,该请求可来自策略管理器370,用于确定在虚拟服务器30上已经配置了哪些虚拟安全装置(vsa)(如果存在任何vsa)。该请求可来源于该策略管理器作出正由云管理器150将访客vm添加到虚拟服务器300中的确定。在一个场景中,如果由经授权的用户经由云管理器150请求新的访客vm,则可将该访客vm添加到虚拟服务器300中。在另一场景中,如果正将访客vm从另一虚拟服务器移动到虚拟服务器300中,则可将该访客vm添加到该虚拟服务器300中。
策略管理器370也可向分配管理器380提供信息,该信息标识在策略中针对被添加到虚拟服务器300中的访客vm指示了哪些vsa(如果存在任何vsa)。在1604处,分配管理器380可向策略管理器370提供该安全控制信息。该信息可标识虚拟服务器300上所配置的特定的vsa(如果存在任何vsa)。
如果如1606处所确定,没有安全控制存在,则在1608处,针对拦截机制的一些实施例,分配管理器380可接收在虚拟服务器300中配置拦截机制的请求。在1610处,分配管理器380可在虚拟服务器300中配置拦截机制。在1612处,分配管理器380也可向云管理器150发送创建针对该访客vm的策略中所指定的vsa的请求。
在1614处,分配管理器380可向策略管理器370发送指示在虚拟服务器300中创建了所要求的vsa的消息。可以在已在虚拟服务器300中创建了所要求的vsa之后发送该消息,或者如果在1606处确定了策略所指定的vsa已经存在于虚拟服务器300中,则可发送该消息。
在1616处,分配管理器380可接收来自策略管理器370的、针对正被添加到虚拟服务器300中的访客vm的策略更新。可将这些策略更新存储在vm安全策略数据库382中,并且这些策略更新可包括关于要应用于特定流的特定vsa的、以及关于将这些vsa应用于那些流要遵循的顺序的规则。
转到图17a-17c,图17a-17c是形象化地示出当在虚拟云基础结构1700之内移动访客虚拟机(vm)时,以及使用诸如sr-iov之类的硬件拦截机制来拦截网络话务时的虚拟安全系统的顺序操作的框图。虚拟云基础结构1700包括两个虚拟服务器1710和1810,它们能够经由物理交换机1714,通过一个或多个各自的虚拟网络接口卡(vnic)1724和1824进行通信。也可用一个或多个虚拟交换机1722和1822分别来配置每一个虚拟服务器1710和1810。
虚拟服务器1710也包括策略管理器1770和分配管理器1780。可将策略管理器1770和分配管理器1810配置为参考图3中的策略管理器370和分配管理器380所描述的那样。
参考图17a,在虚拟服务器1710中创建访客虚拟机(vm)。该访客vm经由虚拟交换机1722-1传递到虚拟服务器1710之内的其他访客vm中。也可将该访客vm传递到诸如虚拟服务器1810之类的其他服务器上的访客vm中。可经由虚拟交换机1722-1、vnic1724-1、物理交换机1714、vnic1824-1和虚拟交换机1822-1,将网络通信从访客vm1730发送到虚拟服务器1810中。在图17a中,没有针对访客vm1730的安全控制被激活。更具体地说,没有创建和/或实现针对访客vm1730的安全策略。
图17b示出创建针对访客vm1730的新的安全策略的结果。在一个示例中,经授权的用户可通过更新策略管理器1770的vmm安全策略数据库以将安全策略添加到访客vm1730中。可配置任何合适的用户接口以将安全策略添加到策略管理器1770中。在一个示例中,安全管理器(如,图1中的安全管理器175)可提供接口以启用对策略管理器1770的vmm安全策略数据库的安全策略更新。
该安全策略可要求来自访客vm1730的某些网络话务流流经所指定的vsa(如,ips、fw、dlp等)。为了简化说明并且易于说明,在此示例中,该安全策略仅要求一个虚拟安全装置(vsa)。然而,显而易见的是,可由该安全策略根据本公开来指定多个vsa。
参考图17b,一旦将该安全策略添加到策略管理器1770中,则可在虚拟服务器1710中分配vsa1740。在实施例中,策略管理器1770可以像本文中先前所描述的那样,与分配管理器1780和云管理器进行通信,从而促进在虚拟服务器1710中vsa1740的安装。例如,分配管理器1780可请求该云管理器在虚拟服务器1710上创建该vsa。
直接i/o1705表示针对来自访客vm1730的网络话务的硬件拦截机制(如,sr-iov)。未从vnic1724-1处与虚拟交换机1722-1连线,从而迫使来自访客vm1730的网络话务流经直接i/o1705硬件拦截,并且进入vsa1740中。在实施例中,分配管理器1780通过重新配置被连接到虚拟交换机的vnic而不与虚拟交换机1722-1连线。结果,现在由vsa1740覆盖来自访客vm1730的网络话务。
在如图17a中所示的、具有单个vsa的实施例中,可将分配管理器嵌入到该vsa之中。在允许在单个虚拟服务器上创建多个vsa的实施例中,nic硬件可允许对该nic上的l2交换机的改变以启用合适的路由操作。在该实施例中,自动地将来自访客vm的分组路由至被连接到该分配管理器的特殊硬件端口(即,队列)。由此,修改了该nic以允许sr-iov功能馈入该nic中。
转到图17c,图17c示出将访客vm1730移动到虚拟服务器1810中的结果。策略管理器1770可通过去往云管理器的应用编程接口(api)来检测该移动。可在虚拟服务器1810中创建新的vsa1840。此外,在实施例中,策略管理器1770、分配管理器1780和云管理器可进行通信以在虚拟服务器1810上创建vsa1840。虚拟交换机1822-1可通过重新配置该虚拟交换机逻辑,从vnic1824-1处解除连线,从而迫使来自访客vm1730的网络话务流经直接i/o1805和vsa1840。然后,可去除虚拟服务器1710中旧的vsa1740,并且可将虚拟交换机1722-1重新连线到vnic1724-1。在图17c中所示的、将访客vm移动到第二虚拟服务器中的实施例中,该第二虚拟服务器中的分配管理器可处理与创建并配置新的vsa以及重新配置该第二虚拟服务器上的虚拟交换机软件有关的多个活动。
为了简化说明并且易于说明,在此示例中,策略仅要求一个虚拟安全装置(vsa)。然而,显而易见的是,可根据本公开,在虚拟服务器1710和1810中配置多个vsa。在这些实例中,分配管理器可像本文中先前所描述的那样实现源路由机制,从而以合适的顺序,将来自访客vm1730或1830的网络分组路由到合适的vsa(例如,由策略所指定的vsa)中。
图18是示出分配管理器的过程的实施例的简化流程图。尽管流程1800可适用于本文所描述的分配管理器和虚拟安全系统的各实施例,但是,为了便于引用,可在解释图18时引用图3中的分配管理器380和其他组件。在实施例中,可通过在分配管理器380中提供模块384来执行流程1800的一个或多个活动。
在1802处,虚拟服务器300的分配管理器380轮询一个或多个虚拟安全装置(vsa)以确定该虚拟服务器上的一个或多个vsa的利用率。在1804处,确定vsa的利用率是否在针对该vsa所预定义的阈值限制之内。如果该利用率在预定义的阈值限制的上限之上,则在1806处,分配管理器380可向云管理器150发送增加用于该vsa的计算资源(例如,处理、存储器、存储)或将附加的vsa添加到该虚拟服务器中的请求。
如果该vsa的利用率在预定义的阈值限制的下限之下,则在1808处,分配管理器380可向云管理器150发送减少用于该vsa的计算资源的请求,或者如果不再需要该vsa则将该vsa从该虚拟服务器中去除的请求。例如,分配管理器380可评估针对该虚拟服务器上的一些或全部虚拟机的安全策略。如果没有安全策略要求由该vsa来处理与现有的虚拟机中任意的虚拟机相关联的网络话务,则可将该vsa从该虚拟服务器中去除。否则,该vsa或者可保留在该虚拟服务器上;或者如果相同类型的另一vsa存在于该虚拟服务器上,并且该另一vsa能够处理额外的载荷,则可将被要求由未充分利用的vsa处理的网络话务重新路由到该另一vsa中。
如果该vsa的该利用率在预定义的阈值限制之内,则该过程1800可结束,直到分配管理器380再次轮询这些vsa。此外,可为由该分配管理器轮询的多个vsa中的每一个vsa执行在1804、1804和1808处的、以及本文中进一步描述的评估和动作。
注意,在某些示例实现方案中,可由被编码在一个或多个有形介质(例如,专用集成电路(asic)中所提供的嵌入式逻辑、数字信号处理器(dsp)指令、由处理器执行的软件(潜在地包括目标代码和源代码)或其他类似的机器等)中的逻辑来实现本文中所概述的虚拟安全功能。在这些实例中的一些实例中,存储器元件可存储用于本文描述的多个操作的数据。这包括该存储器元件能够存储被执行以实施本说明书中所描述的多个活动的软件、逻辑、代码或处理器指令。处理器可执行与这些数据相关联的任何类型的指令以实现在本说明书此处所详详细描述的多个操作。在一个示例中,该处理器能够将元件或制品(例如,数据)从一种状态或事物变换成另一种状态或事物。在另一示例中,可用固定逻辑或可编程逻辑(例如,处理器执行的软件/计算机指令)来实现本文中所概述的多个活动;并且本文中所标识的元件可以是某种类型的可编程处理器、可编程数字逻辑(例如,fpga、eprom、eeprom),或者是包括数字逻辑、软件、代码、电子指令或这些数字逻辑、软件、代码、和电子指令的任意合适的组合的asic。
可将程序代码或指令存储在例如易失性和/或非易失性存储器中,这些易失性和/或非易失性存储器例如是存储设备和/或相关联的机器可读或机器可访问介质,其包括但不限于,固态存储器、硬驱动器、软盘、光存储、带、闪存存储器、记忆棒、数字视频盘、数字多功能盘(dvd)等,以及诸如机器可访问的生物状态保持存储之类的更多奇特介质。机器可读介质可以包括用于以机器可读形式存储、传输或接收信息的任何机制,并且该介质可包括软件代码可通过其的介质,例如,天线、光纤、通信接口等。能以分组、串行数据、并行数据等形式传输程序代码,并能以压缩或加密格式使用该程序代码。
在一个示例实现方案中,该虚拟安全系统可包括软件以实现本文所概述的多个虚拟安全活动。如本文中所讨论的那样,该虚拟安全系统可包括用于存储在实现这些虚拟安全活动时所使用的信息的存储器元件。此外,如本所明书中所公开的,该虚拟安全系统可包括可执行软件或算法以执行这些虚拟安全活动的处理器。这些设备可进一步将信息保持在任何合适的存储器元件(ram、rom、eprom、eeprom、asic等)、软件、硬件中,或者在适当时以及基于特定的需求,可存储在任何其他合适的组件、设备、元件和对象中。应当将本文所讨论的存储器项(例如,数据库、表、树、高速缓存等)理解为被涵盖在广义术语“存储器元件”之内。类似地,应当将本文所描述的任何潜在的处理元件、模块和机器理解为被涵盖在广义术语“处理器”之内。
注意,凭借以上所提供的示例以及本文中所提供的多个其他示例,可按照两个、三个或四个元件来描述交互。然而,仅出于清楚和示例的目的这么做。在某些情况下,通过仅参考有限数量的元件来描述给定的一组流的一个或多个功能可能更容易。应当领会,该虚拟安全系统(及其教导)是易于伸缩的,并且可容纳大量的组件以及更复杂/更精细的安排和配置。相应地,所提供的示例不应当限制或抑制潜在地应用于大量其他架构的虚拟安全系统的广泛教导。
此外,前述流程图中的多个操作仅示出可由虚拟安全系统执行或可在虚拟安全系统中执行的多个可能的场景和模式中的一些。可在合适时删除或去除这些操作中的一些操作,或者可显著地修改或改变这些操作中的一些操作而不背离本公开的范围。此外,已将多个这样的操作被描述为与一个或多个附加的操作并发地或并行地执行。然而,可大幅地更改这些操作的时序。出于示例和讨论的目的,提供了前述操作流。虚拟安全系统提供大量的灵活性,体现在可提供任何合适的安排、时间先后、配置和时序机制,而不背离本公开的教导。
虽然已参考特定的安排和配置详细描述了本公开,但是可显著地改变这些实例配置和安排而不背离本公开的范围。尽管本公开已描述了有限数量的实施例,但是,本领域技术人员将从中领会很多修改和变型。所附权利要求旨在覆盖落入本公开的真实精神和范围的所有此类修改和变型。
以下示例涉及根据本说明书所述的各实施例。一个或多个实施例可提供方法,所述方法包括:检测虚拟网络基础结构的虚拟服务器中的虚拟机的改变;确定是否在所述虚拟服务器中配置了虚拟安全装置;发送在所述虚拟服务器中创建所述虚拟安全装置的请求;以及当在所述虚拟机中创建了所述虚拟安全装置时,允许所述虚拟机启动,其中,所述虚拟安全装置对从所述虚拟机发送来的网络分组执行安全检查。
实施例的示例进一步包括:在所述虚拟服务器中创建拦截机制以拦截来自所述虚拟机的所述网络分组。
实施例的示例进一步包括,所述创建所述拦截机制包括:将被连接至所述虚拟机的虚拟交换机的逻辑重新配置为用于迫使来自所述虚拟机的所述网络分组去往物理网络接口卡;以及将虚拟网络接口卡(vnic)的逻辑重新配置为用于防止所述网络分组通过所述vnic。
实施例的示例进一步包括,所述拦截机制包括,基于单根输入/输出虚拟化(sr-iov)规范对网络分组进行的硬件拦截。
示例实施例的示例进一步包括,所述改变包括将所述虚拟机从第二虚拟服务器移动到所述虚拟服务器中,所述方法进一步包括:从所述第二虚拟服务器中删除第二虚拟安全装置;以及将所述第二虚拟服务器中的虚拟交换机的逻辑重新配置成用于经由虚拟网络接口卡进行通信,其中,当所述虚拟机在所述第二虚拟服务器中运行时,将所述第二虚拟安全装置配置成用于处理来自所述虚拟机的被拦截的网络分组。
实施例的示例进一步包括:一个或多个安全策略标识用于处理来自所述虚拟机的所述网络分组的一个或多个虚拟安全装置。
实施例的示例进一步包括:所述一个或多个安全策略标识所述一个或多个虚拟安全装置处理来自所述虚拟机的所述网络分组的顺序。
实施例的示例进一步包括:查询所述虚拟服务器上的所述虚拟安全装置以确定所述虚拟安全装置的利用率;以及接收对所述查询的响应。
实施例的示例进一步包括:当所述响应指示所述虚拟安全装置需要更多的容量时,发送在所述虚拟服务器中创建第二虚拟安全装置的请求。
实施例的示例进一步包括:防止将所述网络分组发送到所述虚拟安全装置中;以及当所述响应指示所述虚拟安全装置未充分利用时,在所述虚拟安全装置空闲的时候删除所述虚拟安全装置。
实施例的示例进一步包括:当所述响应指示所述虚拟安全装置过利用时,发送向所述虚拟安全装置分配更多处理资源和更多存储器中的至少一者的请求。如本文中所使用的,术语“至少一个”意思可以是列表中的一个或列表中的组合。例如,a、b和c中的至少一个意思可以是a、b或c或者a、b、c的任意组合。
实施例的示例进一步包括:针对所述虚拟机检测到的所述改变包括以下情况之一:将所述虚拟机添加到所述虚拟服务器中;或者将所述虚拟机从另一虚拟服务器移动到所述虚拟服务器中。
实施例的示例进一步包括:当将所述虚拟机添加到所述虚拟服务器时,或者当将所述虚拟机移动到不同的服务器时,通过应用编程接口(api)检测所述改变。
实施例的示例进一步包括:针对所述虚拟机检测到的所述改变包括以下情况之一:请求针对所述虚拟机的新的安全策略;或者更新所述虚拟机的安全策略。
实施例的示例进一步包括:如果没有在所述虚拟服务器中配置所述虚拟安全装置,则阻止所述虚拟机。
实施例的示例进一步包括:所述虚拟安全装置对被发送到所述虚拟机的网络分组执行安全检查。
实施例的示例进一步包括:在允许在所述虚拟服务器中启动所述虚拟机之后,由所述虚拟服务器中的开放流交换机拦截来自所述虚拟机的分组流的第一流出网络分组,所述方法进一步包括:基于安全策略,生成用于所述流出网络分组的流路由,其中,所述开放流交换机根据所述流路由来路由所述流出网络分组。
一个或多个实施例可提供设备,所述设备包括:策略管理器虚拟机,在处理器上执行,将所述策略管理器虚拟机配置成用于:检测虚拟网络基础结构的虚拟服务器中的访客虚拟机的改变;确定是否在所述虚拟服务器中配置了虚拟安全装置;以及当在所述虚拟机中创建了所述虚拟安全装置时,允许所述虚拟机启动,其中,所述虚拟安全装置对从所述虚拟机发送来的网络分组执行安全检查。
实施例的示例进一步包括分配管理器虚拟机,其在处理器上执行,所述分配管理器虚拟机配置成用于发送在所述虚拟服务器中创建所述虚拟安全装置的请求。
实施例的示例进一步包括:所述分配管理器进一步配置成用于在所述虚拟服务器中创建拦截机制以拦截来自所述虚拟机的所述网络分组。
实施例的示例进一步包括,其中所述创建所述拦截机制包括:将被连接至所述虚拟机的虚拟交换机的逻辑重新配置为用于迫使来自所述虚拟机的所述网络分组去往物理网络接口卡;以及将虚拟网络接口卡(vnic)的逻辑重新配置为用于防止所述网络分组通过所述vnic。
一个或多个实施例可提供至少一种机器可访问存储介质,具有存储于其上的多条指令,当在机器上执行所述多条指令时,所述多条指令使所述机器用于:检测虚拟网络基础结构的虚拟服务器中的虚拟机的改变;确定是否在所述虚拟服务器中配置了虚拟安全装置;发送在所述虚拟服务器中创建所述虚拟安全装置的请求;以及当在所述虚拟机中创建了所述虚拟安全装置时,允许所述虚拟机启动,其中,所述虚拟安全装置对从所述虚拟机发送来的网络分组执行安全检查。
实施例的示例进一步包括,所述改变包括将所述虚拟机从第二虚拟服务器移动到所述虚拟服务器中,所述方法进一步包括:从所述第二虚拟服务器中删除第二虚拟安全装置;以及将所述第二虚拟服务器中的虚拟交换机的逻辑重新配置成用于经由虚拟网络接口卡进行通信,其中,当所述虚拟机在所述第二虚拟服务器中运行时,将所述第二虚拟安全装置配置成用于处理来自所述虚拟机的被拦截的网络分组。
实施例的示例进一步包括:一个或多个安全策略标识用于处理来自所述虚拟机的所述网络分组的一个或多个虚拟安全装置。
一个或多个实施例可提供方法,所述方法包括:轮询虚拟网络基础结构的虚拟服务器中的虚拟安全装置以确定所述虚拟安全装置的利用率;如果所述利用率在上阈值量之上,则向云管理器发送增加用于所述虚拟安全装置的计算资源的请求;以及如果所述利用率在下阈值量之下,则向所述云管理器发送减少用于所述虚拟安全装置的计算资源的请求,其中,将与所述虚拟服务器中的一个或多个虚拟机相关联的多个网络分组路由到所述虚拟安全装置中。
实施例的示例进一步包括:在将所述多个网络分组路由到所述虚拟安全装置中之前,拦截所述多个网络分组。
一个或多个实施例可提供方法,所述方法包括:轮询虚拟网络基础结构的虚拟服务器中的虚拟安全装置以确定所述虚拟安全装置的利用率;如果所述利用率在上阈值量之上,则向云管理器发送在所述虚拟服务器中创建另一虚拟安全装置的请求;并且其中,将与所述虚拟服务器中的一个或多个虚拟机相关联的多个网络分组路由到所述虚拟安全装置中。
实施例的示例进一步包括:在将所述多个网络分组路由到所述虚拟安全装置中之前,拦截所述多个网络分组。
一个或多个实施例可提供方法,所述方法包括:轮询虚拟网络基础结构的虚拟服务器中的虚拟安全装置以确定所述虚拟安全装置的利用率;如果确定没有安全策略要求由所述虚拟安全装置处理所述虚拟服务器的虚拟机,则防止将新的网络分组路由到所述虚拟安全装置;以及当所述虚拟安全装置空闲的时候,向云管理器发送去除所述虚拟服务器中的所述虚拟安全装置的请求,其中,将与所述虚拟服务器中的一个或多个虚拟机相关联的、先前所发送的多个网络分组路由到所述虚拟安全装置。
实施例的示例进一步包括:在将所述先前所发送的多个网络分组路由到所述虚拟安全装置中之前,拦截所述先前所发送的多个网络分组。