NFV的性能和安全概述
原文链接:http://www.overturenetworks.com/2014/09/03/nfv-performance-and-security/
网络功能虚拟化(NFV)可带来一些明显的成本和效率上的好处,但也有潜在的风险。NFV系统可以满足通信服务提供商(CSP)对性能和安全的需求吗?答案是肯定的。而且,为了保证性能和安全的设计需求是紧密相关的。那么这些设计需求是什么呢?
三个因素会影响NFV性能
以我们对NFV的理解和经验,尤其是以用户需求为依据的虚拟功能服务创建的65vSE平台,我们发现下面的因素对基于NFV的服务的性能有明显的影响:
1)保证性能的第一步是使用多核处理器来承载虚拟化的网络功能(VNFs)
为了最大化性能,VNFs可以运行在不同的内核上。对低优先级或资源不敏感的功能,为了最小化成本,可以分配较少的CPU资源。然而,为了保证系统安全和整体性能,需要为网络功能分配其运行所需的最小资源。我们发现,对性能和安全来说,多核处理器的能力远远比超高频处理器要重要的多。
2)加速技术
保证性能的第二步可以使用一些工具,例如英特尔数据面开发工具套件(Intel’s Data PlaneDevelopment Kit,DPDK)来加速虚拟化环境下的包处理速度。DPDK使用专用的内核来消除虚拟化的标准实现的低效率,主要包含以下两个方面:
a. 轮询模式。 用轮询模式代替中断启动模式可以消除中断带来的上下文切换开销,而上下文切换是性能的一个重要瓶颈。由于在轮询模式下,接口和队列可以更好的分布在不同的内核上,因此随着内核的增加,轮询模式可以带来更好的性能扩展。
b. 减少副本。传统的组件之间的包拷贝是由通信栈来处理的,这些包的副本会对性能有很大的影响。使用DPDK,每个包只有一个副本进入DPDK内存缓存或环,在包离开DPDK前不会产生更多的副本。当前DPDK的一个缺点是环之间的共享会带来安全风险。任何可以访问DPDK环的虚拟机可以看到该环上的所有包,如果环是基于单个接口或单个应用分配的,这和多租户的概念是冲突的。DPDK通过用户空间的虚拟机主机、MEMNIC-pmd和其他机制来实现虚拟机之间的环的隔离。这种方式下包在资源池和相互隔离的环之间传递时会多产生一个副本,但对性能有一定影响。
基于DPDK的vSwitch比传统的版本有高得多的性能。一个重要提示:为了充分利用DPDK的优势,NFV的监控框架以及每个VNF都需要重构才能获得性能的提高。
3) 转发架构
要在虚拟环境中获得高性能,需要在网络栈的每一层都关注潜在的瓶颈
主机网卡驱动
主机网络栈
第二层的以太网功能(switching, tag manipulation, shaping, etc)
虚拟面交换机制(vSwitch)
监控程序(Hypervisor)
网络驱动(Guest network driver)
应用程序(Guest application)
为了最大化转发性能,系统在设计时需要充分利用高带宽的网卡、DMA处理器技术以及用硬件来计算CRC校验和。更进一步,这些技术应该用到所有的网络接口,无论是以太网或者其他使用PCIe接口的访问技术。任何网络访问的瓶颈都会降低性能,所有网络物理层如果不适用这些“胖管道”(Ethernet,wireless, xDSL and/or TDM/SONET),都会使得性能受限。这是当前设计基于处理器的系统的一个挑战。
通过直接连接、加速技术和多核处理器,创建满足性能需求的多VNF服务图或者服务链,以及通过虚拟环境发布服务成为可能。
三个因素影响服务提供商和用户的安全
继性能问题之后是虚拟环境中的安全问题。CSP如何保证用户服务功能模块相互之间的独立性,以及CSP管理网络和发布的服务之间的独立性?
1) 保护主机内核
在虚拟化环境下,为了保证操作的正常进行,保护主机内核的完整性是非常重要的。在虚拟机上托管VNFs是一种简单的方式。然而,使用虚拟机会带来处理器和内存的负载增加。一些人提出使用容器代替虚拟机以减轻负载。容器的缺点有a)VNF和宿主系统更紧密的耦合;b)会带来潜在的安全漏洞。我们相信,虚拟机是一个比容器更安全、更干净的方法。但是依然有一些应用是基于容器的。最后,使用一个安全加固的Linux系统(SELinux),可以针对很多由容器暴漏的安全问题提供额外的保护措施,进而降低风险。
2) 保护用户
与性能优化一样,多核处理器为虚拟环境下的安全提供了一个重要的工具。将每个用户的VNFs部署在不同的内核上,可以提供更好的隔离性和安全级别。
而且,有一些内建于OpenStack、libvirt、SELinux和定制软件中的工具,可以用来提供更高的安全性。这些技术可以提供:
加强内存,磁盘和CPU等资源的分配约束。
为VNFs和平台提供最小操作保证,包括虚拟机管理和基本的网络功能。
加强资源访问限制
3) 保护CSP管理网络
CSP必须在管理VNFs的同时,要保证其管理不带来新的漏洞。一个直接的保护管理网络安全的方法是在虚拟环境中部署内部防火墙。部署在管理服务链中的防火墙可以提供一个机制,允许管理操作访问VNFs,不允许来自客户网络的恶意网络流进入CSP的管理网络。
我们建立服务的方法已经改变,但是期望不变
使用NFV部署服务提供了缩减成本和加速创新的绝佳机会。但是,对服务的可预测性和安全性的期望仍然存在。成功的基于NFV的部署方式必须满足这些需求。好消息是已经有方法达到这个目标。挑战是在改进性能和安全性的同时,如何进行满足需求的恰当设计。