3.1 VNF的分解
用于实现网络功能的软件要么是现有设备功能的一对一映射,要么是针对云计算设计的网络功能的某种组合。例如,针对云计算设计的功能可以进行组合或利用分布式数据服务来消除一组基于硬件的网络设备。
同时,它们使用软件逻辑和云计算特性来消除具有备用设备硬件要求的容错或一对一故障转移。开发云网络的许多机会都集中在使用网络功能虚拟化基础设施(NFVI,NetworkFunctionsVirtualizationInfrastructure)—它与云计算基础设施非常类似—并开发支持诸多现有单片控制平面元素的新应用上,如路由反射器(RR)、DNS服务器和动态主机控制协议(DHCP, Dynamic Host ControlProtocol)服务器。
3.1.1 解耦虚拟功能
随着时间的推移,预计会有更多网络边缘功能和中间盒功能迁移到此类基础架构中。这些功能包括 SAE网关、宽带网络网关、针对类似IP-VPN和以太网等服务的 IP边缘路由器、安全功能以及负载均衡器和分配器。通常,由于这些网元不需要转发大量聚集流量,因而其工作负载可以跨多台服务器进行分配—每台服务器都增加了一部分功能。总体而言,与单片版本相比,这创建了可用性更高的弹性功能。一个重要问题是使用类似于云计算服务中采用的编排方法来对功能进行实例化和管理。这意味着存在可以被多次实例化且构成各种网络拓扑以动态满足服务提供商需求的功能目录。
虚拟化服务的关键设计原则之一是将当前支持在专有操作系统(OS)和自定义硬件上运行的复杂网络功能软件“移植”到虚拟机Linux 操作系统上。相反,我们需要将网络功能分解为可在云架构上分发和扩展的细粒度虚拟功能(VF,VirtualFunction)。这样可支持仅根据服务需求来实例化和定制基本功能,从而使服务交付更加灵活。它提供了大小调整和规模扩展的灵活性,以及根据给定服务需求来打包和部署虚拟功能的灵活性。网络云支持在需要时向用户附近部署时延敏感服务虚拟功能,它支持在公共云数据中心中对功能进行分组,以最大限度地缩短组件之间的时延。VF 的设计目标是模块化和可重用性,以便于选择同类最佳供应商。解耦用户数据和状态可提高虚拟化服务的可靠性,它还能提高可扩展性,因为数据层可以独立于网络功能进行扩展。
网络功能的分解应当遵循以下准则。
(1)如果功能具有显著不同的扩展特性(如信令与媒体功能、控制平面与数据平面功能等),则对功能进行分解。
(2)分解应能在实例化时定制网络功能的具体内容(如可能需要针对每个运营商互连实例来定制互通功能)。
(3) 分解应当只支持对服务所需功能进行实例化(如果不需要转码,则不应进行实例化)。在云服务平台中部署 NFV为运营商提供了新机会,可以最大限度地降低成本并部署新的高
级增值服务。NFV实现方案应当是云原生的,而不仅仅是从专用供应商硬件到基于 x86的 COTS平台的软件的修改。原生云实现方案可确保存储和计算资源的高效共享。为了充分利用资源,NFV需要既具有动态性又具有灵活性,以及可扩展性、互操作性、可重用性、分布式特性,并在虚拟功能(VF)发生故障时维持状态。
基于 SDN和虚拟化驱动,NFV功能分解(解离)是新型网络设计的关键支柱。NFV分解的优势之一(将 NFV分解成小型组件)是支持运营商实现高效的容量扩展和可重用性。特别是它支持运营商根据不同负载配置文件来扩展不同组件。确定用于定义已分解 NFV系统特征和优势的另一个关键是它支持跨不同VNF的功能共享。
将大型应用分解为小型组件的理念可以追溯到面向服务的架构(SOA,ServiceOrientedArchitecture)。我们还看到,它通过采用Hadoop和Storm等技术,有助于在几千台服务器上扩展大数据应用,主要优势是实现资源利用最大化,如云主机上的各个中央处理器(CPU)核心或内存。小型虚拟机实例可用于提高主机资源利用率。确定小型虚拟机容量要比确定大型虚拟机容量容易得多。此外,大型实例可能会导致主机未使用资源的分配效率更低,进而降低了云实现方案的工程经济性。
最后,分解可支持更高的弹性和可伸缩性。较小虚拟功能本身能够独立进行扩展。如果某种组件出现故障或容量不足,则可以轻松启动另一种组件而不会影响其他组件。服务编排器可以仅扩展需要处理特定工作负载的单个虚拟功能,而不是扩展整个 VNF。
网络功能分为三大类:数据平面、控制平面和管理平面。
1. 数据平面
我们将数据平面(有时称为转发平面)定义为由硬件、软件或两者共同实现的功能,它与端到端用户通信的分组处理息息相关。路由器中数据平面的作用是决定如何处理到达输入接口的数据分组。最常见的情形是,路由器维护一张用于查找输入数据分组目标地址并检索确定发送数据分组的恰当输出接口所需信息的表格。
当前的服务提供商网络需要支持的不仅仅是基础数据分组转发。大型服务提供商为不同服务及其支持的不同客户网络维护许多单独的路由域。许多服务提供商利用 MPLS技术为其提供的不同服务—互联网服务、以太网服务和IP-VPN服务维护单独的转发平面。为实现这一目标,通过维护称为转发信息库(FIB,ForwardingInformationBase)的不同路由表,在网络设备中实现称为 VRF 实例的单独的路由实例。
依据MPLS和MPLSVPN相关标准(如RFC4364),推出基于MPLS的VPN服务将具有如下基本安全特性。
(1) 抑制。同一 VPN上 CE路由器之间发送的流量(和路由信息)始终处于这一特殊 VPN内,不会出现溢出或“泄漏”现象。
(2) 隔离。客户 VPN不能以任何方式对另一个客户的VPN的内容或隐私产生实质性影响。
(3) 可用性。除了 MPLS和 MPLS VPN的安全相关基本属性之外,服务提供商还可通过诸如访问控制列表(ACL)、路由过滤器等其他方法来仔细设计共享资源,以满足最高级别的可用性,并减少潜在拒绝服务活动来关闭不必要服务和其他基础设施强化技术。
(4) 简化性。MPLS网络支持在客户和服务提供商域中简化配置(因而有助于避免与安全相关的配置错误)。第一,对于客户来说,MPLSVPN比传统第一层(如专用线路)、第二层
(如帧中继或 ATM)点对点解决方案或第三层 [ 如互联网协议安全(IPSec,InternetProtocolSecurity)VPN] 更易于配置。第二,与基于 ACL和独立的客户地址空间的其他 VPN解决方案 [ 如第二层隧道协议(L2TP,Layer2TunnelingProtocol)] 不同,MPLSVPN支持可扩展性更高的服务提供商架构。使用ACL或独立 IP空间作为实现 VPN分离主要方法的服务提供商网络管理起来非常困难。在这种情况下,添加的每个新站点或每条路由都可能需要对网络中的其他每台路由器进行更改,以确保安全性。这不是一种可扩展解决方案,并可能会导致配置错误的发生和潜在安全漏洞的出现。
最后,对数据平面施加额外要求以支持流量优先级,以便针对不同语音、视频和数据应用实现服务等级协议(SLA,ServiceLevelAgreement)。这需要采用深度包检测(DPI,DeepPacket Inspection),以便应用可以确定转发决策和优先级来满足服务质量(QoS,QualityofService)需求。类似地,可以在接口上采用速率限制按类或应用来控制容许流量。这会给中央处理器(CPU,CentralProcessingUnit)带来更大压力,因为需要在目标地址字段之外对数据分组进行分析。