APP下载

基于SR-IOV的虚拟机防火墙设计与实现

2014-08-05荀仲恺金胤丞

计算机工程 2014年5期
关键词:特权网卡防火墙

荀仲恺,黄 皓,金胤丞

(1. 南京大学 a. 计算机软件新技术国家重点实验室;b. 计算机科学与技术系,南京 2 10046;2. 中国电子科技集团公司第三十二研究所,上海 20023 3)

基于SR-IOV的虚拟机防火墙设计与实现

荀仲恺1a,1b,黄 皓1a,1b,金胤丞2

(1. 南京大学 a. 计算机软件新技术国家重点实验室;b. 计算机科学与技术系,南京 2 10046;2. 中国电子科技集团公司第三十二研究所,上海 20023 3)

由于虚拟网络数据传输时,用户态与核心态之间频繁切换,导致虚拟域间多次数据拷贝严重影响网络I/O性能。为此,提出一种高性能的虚拟机防火墙设计方案。利用SR-IOV规范的高性能数据传输特性和对接收数据包的过滤功能,使虚拟域直接与真实网卡交互。针对低特权级的虚拟域中防火墙容易受到攻击的问题,通过在高特权级的Xen中部署监控模块,对虚拟域中的防火墙进行实时监控。实验结果表明,应用SR-IOV网卡可使虚拟机的网络I/O性能相对于Xen传统网络访问模式平均提高1倍以上,并且具有监控模块的Xen能防止防火墙被非法访问和恶意篡改,保证防火墙的安全。

虚拟化;Xen虚拟机管理器;SR-IOV规范;防火墙;高性能;监控

1 概述

虚拟化技术是云计算[1]的关键技术。多个虚拟的计算机系统(以下简称虚拟机)可以利用虚拟化技术运行在同一台物理主机之上,实现CPU、内存、I/O设备等物理资源的共享,最大化地利用物理资源。虚拟机管理器(Virtual Machine Manager, V MM)[2]是位于操作系统和计算机硬件之间的软件层,实现对整个物理平台的虚拟化。Xen是一款主流的开源VMM,它的上层运行着一个特权域Domain0和零个或多个非特权域DomainU。下面以Xen为具体对象,介绍虚拟化技术面临的主要问题和相关工作。

Xen面临着网络I/O性能问题[3]。Xen传统的网络设备驱动模式,使得DomainU在I/O访问过程中,需要由VMM处理设备中断,通过Domain0进行虚拟访问和物理访问的转换。当VMM处理中断时,形成数据拷贝,影响数据传输性能。当DomainU的数量较大时,Domain0处会形成I/O访问的性能瓶颈。

SR-IOV[4]是由PCI-SIG提出的、基于Intel VT-d[5-6]技术的标准。SR-IOV网卡可创建多个虚拟网卡,并可分配给虚拟机独享。虚拟机进行网络访问时,设备驱动程序可以直接与虚拟网卡交互,而不经过Domain0和VMM,避免VMM处的数据拷贝,以及Domain0处的中转,提高了性能[4]。

Xen面临网络安全问题[7]。虚拟机运行在Xen上层,特权级较低。以Xen全虚拟化为例,客户机操作系统运行在非Root特权级[8],系统层的防火墙更容易被非法访问和恶意篡改。本文针对Xen虚拟机管理器,提出一种虚拟机防火墙方案,利用SR-IOV技术提高虚拟机的I/O性能,同时在Xen中部署监控机制,保护虚拟机中部署的防火墙模块。

2 相关工作

近年来,虚拟机网络安全防火墙研究、虚拟机网络I/O性能方面的研究有了一定进展,已经积累了一些新的方法。

关于虚拟机网络安全防火墙方面的研究,文献[9]在Domain0中基于Netfilter/iptables实现了包过滤。由于多次的用户态与核心态间切换,以及虚拟域间的多次数据拷贝严重影响了性能。文献[10]在Domain0中建立虚拟机(Virtual Machine, VM)共享网络路由表,将数据包通过路由表转发至VM共享网络,实现VM组间网络隔离问题。在进入Domain0中建立防火墙模块,阻止数据包进入多个VM共享网络,阻止VM共享网络路由表被非法篡改。文献[11] 对VM设置不同的安全等级,在VM的用户层构建状态防火墙。然而,以上工作依然没有解决用户态与核心态间多次切换,以及虚拟域间多次数据拷贝引起的性能问题。

在虚拟机网络I/O性能方面,文献[4]利用了SR-IOV高性能网卡,并对其性能进行了分析和证明,但是并未对虚拟域中接收和发送的网络数据包进行过滤监控。

文献[12]在Domain0和DomainU中建立数据面板。DomainU的数据面板中保存预发送数据包,Domain0的数据面板中保存所有DomainU预发送数据包的副本,避免了Xen中DomainU发送数据包时在Domain0处进行用户态与核心态转换的开销。然而,虚拟域间的多次数据拷贝问题依然存在。同时,在DomainU中部署了防火墙模块。然而,虚拟域运行在较低的非Root特权级,防火墙部署在DomainU中,容易被非法访问和恶意篡改。

本文提出一种基于SR-IOV规范的防火墙方案,通过应用SR-IOV网卡,避免了网络数据传输过程中,用户态与核心态间的频繁切换,避免了虚拟域间的多次数据拷贝。通过在运行于最高特权级的VMM中部署监控模块,监控部署在虚拟域中的防火墙,防止防火墙被非法攻击。本文主要优势为:(1)提出了一种高性能防火墙架构。应用SR-IOV网卡较高的网络传输性能和接收数据包时的网络层过滤功能。通过使用SR-IOV硬件代替了Xen中需要软件虚拟实现的部分工作。同时,在虚拟机中部署防火墙,实现数据包发送时的过滤功能。通过实现软硬件结合,保证了虚拟机网络I/O高性能的同时,完整保护虚拟机的安全。(2)利用Xen监控VM中的防火墙模块。Xen具有高特权级,通过Xen对虚拟机中的防火墙进行实时监控,保证防火墙模块不被非法访问和恶意篡改。

3 SR-IOV网卡

SR-IOV规范用于实现虚拟化环境中的I/O设备共享。它继承了Intel VT-d技术,支持设备直接分配和DMA重映射。如图1所示(SR-IOV网卡模块中的左边矩形框是网线插槽口),物理功能(Physical Function, PF)部件用于配置和管理所有虚拟功能部件。虚拟功能(Virtual Function, VF)部件是一个轻量级的PCIe(PCI Express)功能部件。PF驱动运行于Domain0,VF驱动运行于DomainU。PF驱动是一个真实的PCIe设备驱动,可以直接访问PF,同时负责创建、配置和管理所有VF。VF驱动为一个真实的PCIe设备驱动,可直接访问其对应的VF。

图1 基于SR-IOV网卡的虚拟化结构

采用SR-IOV规范的网卡(以下简称SR-IOV网卡)可由一个PF创建多个VF,每个VF可独立分配给一个虚拟机。虚拟机可以通过VF驱动直接与VF进行数据通信,不用通过Domain0和VMM,避免了Xen传统网络模式中VMM处的数据拷贝和Domain0中用户态与核心态间的切换,提高了网络I/O性能。

4 虚拟机防火墙的设计与实现

4.1 虚拟机防火墙架构

虚拟机防火墙系统整体架构如图2所示,分为防火墙模块和监控模块,其中,虚线表示不经过Xen,对Xen透明;实线指经过Xen,与上层的Xen直接交互。防火墙模块包括基于SR-IOV的接收数据包过滤部分和虚拟机防火墙部分。SR-IOV的接收数据包过滤部分,基于SR-IOV网卡中PF的接收数据包过滤功能,为每个虚拟机配置接收数据包过滤策略,策略保存在Xen中。虚拟机防火墙部分,以Linux netfilter模块中的NF_IP_LOCAL_ OUT为检测点,加入自身防火墙过滤规则,实现发送数据包过滤。在监控模块中,保护策略存储DomainU中受保护的内存页地址范围。在VMM中,依据保护策略,实时监控DomainU中受保护的内存范围,防止其被非法访问和恶意篡改。

图2 虚拟机防火墙架构

4.2 防火墙模块

4.2.1 基于SR-IOV的接收数据包过滤

在SR-IOV网卡中,PF属于Domain0,VF属于DomainU。PF支持网络层接收数据包过滤行为,支持五元组过滤。但是,VF不支持网络层接收数据包过滤。为了对虚拟机接收数据包进行网络层过滤,需要使数据包在进入虚拟机的VF之前,先通过PF进行网络层过滤。

(1)为PF开启流定向模式,分别为所有虚拟机设定数据包接收时过滤策略。相关命令举例如下:

(2)隐藏所有DomainU的MAC地址,只暴露Domain0 的MAC地址,使接收到的数据包全部进入PF。在PF中,依照预先定义的策略进行网络层过滤。随后,数据包被Domain0的设备驱动接收,进入Domain0内核。预先在Domain0内核路由表中添加所有虚拟机所在的网段,从而可将目的IP地址为虚拟机IP地址的数据包通过Domain0内核路由表转发。数据包通过Domain0设备驱动程序进入PF。此时,通过SR-IOV网卡自身的数据链路层转发机制,将数据包转发给正确的VF,最终进入虚拟机。

4.2.2 虚拟机防火墙

SR-IOV网卡不支持数据包发送时的过滤行为。因此,在虚拟机中部署发送数据包防火墙以Guest OS为Linux的状况作为工作重点。

Linux ne tfilter向系统开发者提供了5个挂载点,用于挂载自定义HOOK函数。通过在挂载点NF_IP_LOCAL_ OUT处挂载自定义的数据包检测函数,可以截获到虚拟机所有的接收数据包,在自定义HOOK函数中,通过预先设置的策略,对接收到的数据包进行行为检测。

然而netfilter运行在虚拟机系统层,虚拟机的特权级较低,自定义HOOK函数面临着被非法卸载、恶意篡改等行为的风险。VMM具有更高的特权级,通过在VMM中部署监控模块,监控虚拟机系统层中运行的自定义防火墙模块,组织其不被非法访问和恶意篡改。

4.3 监控模块

监控模块部署在VMM中,负责实时监控上层Guest OS中的防火墙模块,阻止非法行为。保护策略存储DomainU中防火墙模块所在的内存地址范围。基于保护策略,监控模块监控DomainU中防火墙模块所在的内存段。涉及到的问题包括:将模块所在的内存地址范围通知给VMM;如何在Guest OS中触发恶意行为后将其交给VMM处理。

CPUID指令为Intel V T技术中定义的敏感指令。在全虚拟化的Xen中,如果虚拟机中的软件执行CPUID指令,会触发VM Exit,而陷入VMM进行处理。通过在模块初始化函数中添加CPUID指令,将模块内存地址范围写入参数寄存器中。在模块首次加载时会调用模块初始化函数,其中的CPUID指令触发VM Exit,从而陷入VMM中进行处理。预先在VMM陷入处理函数中部署监控模块。陷入VMM后,监控模块将CPUID指令的寄存器参数中填写的被保护内存地址范围保存在保护策略中。

Xen在全虚拟化中,利用影子页表机制实现虚拟内存的管理,完成客户机虚拟内存地址与主机物理内存地址之间的转换。其中,Xen为每个VM的进程维护一个影子页表。当VM中的页表项与Xen中对应的影子页表项不一致时,访问该页表项的内存页即会触发缺页异常,同时引起VM Exit从而陷入Xen中处理。

监控模块在将被保护内存地址范围写入保护策略的同时,将内存页地址范围对应的影子页表项存在位设为不存在,读写位设为只读。如图3所示,当虚拟机中发生对防火墙模块所在的内存页进行读或写操作时,基于Xen影子页表机制的原理会引发缺页异常,并引起VM Ex it而陷入Xen的监控模块中处理。监控模块通过查询保护策略,判断所访问页面是否在保护范围内,如果在,则认定此操作为非法访问操作,拒绝此非法访问行为。如果不在保护范围内,则进入正常处理流程。

图3 缺页异常处理流程

5 实验结果与分析

实验采用Genuine Intel 2.7 GHz CPU、2 GB内存。安装82599 10 Gpbs SR-IOV网卡。安装Ubuntu12.04.2LTS和Xen 4.1,其中,Domain内核版本为3.5.0。Domain1和Domain2均安装Ubuntu 12.04.1 LTS。使用一台Spirent Testcenter测试仪,一台安装了Spirent Testcenter控制软件的PC。通过从性能、防火墙访问控制和监控3个方面分析,得出如下实验结果。

5.1 数据传输性能

在Domain2中部署本文描述的虚拟机防火墙。同时,将Domain1设置为传统网络访问模式。将Domain3设置为SR-IOV网络模式,不部署防火墙。

在Domain0创建VF,为Domain2分配VF设备,网络连接模式为SR-IOV模式,并在Domain2中部署虚拟机防火墙,在Xen中部署监控模块。为Domain3分配VF设备,网络连接模式为SR-IOV模式。在Domain1中部署为Domain1分配vif3.0虚拟网卡,网络连接模式为传统虚拟网桥模式。使用Spirent T estcenter测试仪对Domain1和Domain2进行数据传输性能测试,分别测试的数据包大小为64 Byte,256 Byte,512 Byte,1 500 Byte,结果见表1。由此可知,部署防火墙、安装SR-IOV网卡后的虚拟机在性能方面相对于未安装SR-IOV网卡的虚拟机性能优势明显,平均提高1倍以上。

表1 数据传输性能对比

5.2 防火墙访问控制

通过检测部分防火墙策略,查看防火墙运行状况,结果如表2所示。由此可知,当Domain1访问主机114.212.87. 122时,由于策略禁止,因此访问失败。当Domain1访问主机114.212.87.165时,由于策略未禁止,因此访问成功。

表2 策略检测状况

5.3 监控状况

Xen中的监控模块监控虚拟机中的防火墙模块vmfirewall。在运行的Domain1中,安装MyRootkit模块,MyRootkit尝试卸载NF_IP_LOCAL_OUT处HOOK链中的防火墙模块并返回访问结果。在Domain1终端运行rmmod vmfirewall命令,尝试卸载vmfirewall模块,对于rmmod方式卸载模块,结果为拒绝卸载;对于MyRootkit方式卸载模块,结果为访问无效。

6 结束语

在Xen虚拟化技术中,虚拟域网络访问时,Domain0中用户态与核心态频繁切换,虚拟域间多次数据拷贝,影响了网络I/O性能。应用SR-IOV网卡的高性能特征,使虚拟域直接与真实网卡交互,提高网络I/O性能。针对运行在低特权级虚拟域中防火墙缺乏保护的问题,在高特权级的Xen中部署监控模块,对防火墙实时监控,保护防火墙安全。在SR-IOV规范下,VMM较少地参与VM与网络适配器间数据传输和管理工作。下一步工作重点是将防火墙部署于VMM中,提高特权级,更大程度地保证防火墙安全。

[1] Vaquero L M, Rodero-Merino L, Caceres J. A Break in the Clouds: T owards a Cloud Definition[J]. ACM SIGCOMM Computer Communication Review, 2009, 39(1): 50-55.

[2] 石 磊, 邹德清, 金 海. X en虚拟化技术[M]. 武汉: 华中科技大学出版社, 2009.

[3] Egi N, Greenhalgh A, Handley M. Evaluating Xen for Router Virtualization[C]//Proceedings of the 16th International Conference on Computer Communications and Networks. Honolulu, USA: IEEE Press, 2007: 1256-1261.

[4] Dong Yanzu, Yang Xiaowei, Li Jianhua. High Performance Network Virtualization with SR-I OV[J]. Journal o f Parallel and Distributed Computing, 2010, 72(11): 1471-1480.

[5] 张 扬. Xen下基于Intel VT-d技术的I/O虚拟化的实现[D].成都: 电子科技大学, 2010.

[6] 张 鑫. 基于Intel V T-d在安腾平台的高效虚拟IO模型的实现与研究[D]. 成都: 电子科技大学, 2008.

[7] Kan dukuri B R. Cloud Sec urity Issues[C]//Proceedings of 2009 IEEE International Conference on Services Computing. Los Angeles, USA: IEEE Press, 2009: 517-520.

[8] 陈文智, 姚 远, 杨建华, 等. Pcanel/V2——基于Intel VT-x 的VMM架构[J]. 计算机学报, 2009, 32(7): 2-8.

[9] Liu Fagui, Su Xiang. The Design an d Application of Xe nbased Host System Firewall and Its Extension[C]// Proceedings of 2009 International Conferenc e on Electronic Computer T echnology. Washington D. C., USA: IE EE Computer Society, 2009: 392-395.

[10] Wu Hanqian, Ding Yi, Winer C. Network Security for Virtual Machines in Cl oud Computing[C]//Proceedings of the 5th International Conference on Computer Sciences and Convergence Inf ormation T echnology. Seoul, So uth Koera: [s. n.], 2010: 18-21.

[11] Gao Xiaop eng, Wang Sum ei. VNSS: A Network Security Sandbox for Virtual Computing Environment[C]//Proceedings of IEE E Youth Conferenc e In formation Computing and Telecommunications. Beijing, China: [s. n.], 2010: 395-398.

[12] Fernandes N C. XNetMon: A Network Monitor for Securing Virtual Network s[C]//Proceedings of IEEE International Conference on Communications. Kyoto, Jap an: IE EE Press, 2011: 1-5.

编辑 陆燕菲

Design and Implementation of Virtual Machine Firewall Based on SR-IOV

XUN Zhong-kai1a,1b, HUANG Hao1a,1b, JIN Yin-cheng2

(1a. State Key Laboratory for Novel Software Technology; 1b. Department of Computer Science and Technology, Nanjing University, Nanjing 210046, China; 2. The 32nd Research Institute of China Electronics Technology Group Corporation, Shanghai 200233, China)

Aiming at the problem of low performance caused by frequent switching between user mode and kernel mode, multiple copies of data between the virtual domains through virtua l network data transmission, this paper proposes a high performanc e virtual m achine firewall, and it adopts the networ k packet filtering and high performance of SR-IOV to make virtual domain directly interact wi th the real network card. Aiming at the problem of vulnerable attack for a lower privilege level virtual domain firewall, it takes higher privilege level of Xen to real-time monitor the virtual machine fire wall module and protect it from illegally accessing. Experimental results show that the deployment of SR-IOV network card in the virtual machine firewall makes the network I/O performance increase by 1 time compared with the Xen network I/O assess mode. The deployment of the monitor module in Xen can successfully prevent the firewall from unauthorized access and malicious tampering, and ensure the safety of the firewall.

virtualization; Xen Virtual Machine Manager(VMM); SR-IOV specification; firewall; high-performance; monitoring

10.3969/j.issn.1000-3428.2014.05.032

1000-3428(2014)05-0154-04

A

TP399

国家“863”计划基金资助项目(2011AA01A202);江苏省“六大人才高峰”高层次人才基金资助项目(2011-DZXX-035);江苏省高校自然科学研究基金资助项目(12KJB520001)。

荀仲恺(1987-),男,硕士,主研方向:操作系统安全,虚拟化技术;黄 皓,教授、博士生导师;金胤丞,硕士。

2013-04-10

2013-05-08E-mail:xunzhk@126.com

·人工智能及识别技术·

猜你喜欢

特权网卡防火墙
无聊是一种特权
构建防控金融风险“防火墙”
Server 2016网卡组合模式
在舌尖上筑牢抵御“僵尸肉”的防火墙
挑战Killer网卡Realtek网游专用Dragon网卡
试论现阶段特权问题及其治理
『人大代表』不该成为特权符号
下一代防火墙要做的十件事
筑起网吧“防火墙”
对取消印度在江孜亚东特权的几点回忆