基本分组转发充分利用网络输入 /输出(I/O,Input/Output)和内存读 /写操作。将分组移至基于服务器的体系结构时,服务器的I/O功能可能是转发吞吐量的限制因素。如果我们继续将路由器开发为需要支持所有这些功能的单片功能,那么将这些工作负载转移到基于服务器的架构可能会面临挑战。许多网络工作负载将需要高数据吞吐量,而在管理程序(其中,网络功能无法直接访问网络接口)覆盖网络上很难实现。叠加路由或交换可能会阻碍虚拟功能(VF)通过虚拟平台产生的吞吐量,这可以通过采用诸如单根输入 /输出虚拟化(SR-IOV,Single-RootInput/OutputVirtualization)(Intel)之类的技术来绕过这些覆盖网络,并直接将数据传递到网络接口卡(NIC,NetworkInterfaceCard)。
SR-IOV是一种网络接口,支持不同虚拟机共享单一物理外设部件互连(PCI,PeripheralComponentInterconnect)快速硬件接口。将虚拟功能分配给虚拟机实例支持网络流量绕过管理程序并直接在虚拟功能和虚拟机(VM)之间流动。这允许接近线速性能而无须为每台虚拟机提供单一专用物理网络接口卡。缺点是目前需要将这种 VNF绑定到特定服务器,因而使在服务器之间转移该功能的能力变得更具挑战性。随着时间的推移,当叠加路由器和交换机利用可提供更高数据平面吞吐量的新型 API时,可通过它们来实现更高吞吐量。一个实例是数据平面开发工具包(DPDK,DataPlaneDevelopmentKit)1,它提供了一组用于快速数据分组处理的库和驱动程序。
2. 控制平面
控制平面是由逻辑来表征的,它通常涉及网络功能之间的通信处理,且与端到端用户通信不直接相关, 包括信令协议处理、会话管理或授权、认证和计费(AAA,AuthenticationAuthorizationAccounting)功能以及路由协议。预计这些功能具有较低的事务处理速率,且每项事务所需的处理复杂性相应增加,因而通常预期网络 I/O不会像数据平面工作负载那样得到广泛使用。相反,CPU资源和 /或内存资源更容易成为瓶颈。
最常见的控制平面工作负载是诸如开放式最短路径优先(OSPF,OpenShortestPathFirst)、边界网关协议(BGP,BorderGatewayProtocol)、标签分发协议(LDP,LabelDistributionProtocol)等路由协议。路由协议能够为数据平面提供服务。IP网络中的路由通常使用分布式控制平面,其中每台本地路由器负责基于从其他路由器或从诸如路由反射器(RR)等集中控制平面功能接收的控制平面数据来创建自己的转发表。AT&T的核心网络基于 MPLS技术,在更高层次上,MPLS网络使用多协议 BGP和标签交换的组合来区分和隔离虚拟专用网(VPN)之间的路由信息和流量。RR用于将路由分配给边缘。存在着附加控制平面元素,即域名服务(DNS)、动态主机控制协议(DHCP)和针对 IP语音(VoIP,VoiceoverInternetProtocol)的信令等。
当我们将控制平面功能迁移到云时,诸如 RR和 DNS服务器等现有独立控制平面元素是理想的首选方案,因为这些元素已被分解并负责执行独特的核心功能。用于 VPN服务的提供商边缘(PE)路由器更复杂,因为其主要功能是数据分组处理,但PE路由器支持许多控制平面协议和工作负载。
目前,路由和转发引擎可以在不同核心上进行分解。但是,像 BGP这样的控制平面协议仍然集成在 PE实例中。它将随着时间的推移而发展,以便控制平面和数据平面可以进行完全分解。
3. 管理平面
管理平面涉及诸如编排、配置管理、故障和事件报告以及监视等功能。这些工作负载要求 弹性高且往往是集中式的。通常,它们支持网络中的运营、管理和维护(OA&M,OperationsAdministrationandMaintenance)功能。过去,管理平面工作负载的配置、故障和性能管理一直是供应商专有的,甚至简单网络管理协议(SNMP,SimpleNetworkManagementProtocol)(国际)也是一种开放标准,无法实现供应商之间的互操作。SNMP是一种用于采集和组织受管 IP设备相关信息的互联网标准协议。
展望未来,管理平面的目标是摆脱专有管理协议,转而采用开放式 API 的数据模型驱动架构。这将极大地改变在许多不同 VF上完成服务交付和服务保证的方式。一个重大转变是远离命令行界面(CLI,CommandLineInterface)代码以支持网络中网络功能(如路由器)的配置。利用YANG(IETF)建模语言,业界正在寻求诸如以太网等关键服务的通用数据模型。
YANG是一种用于定义服务结构的标准化建模语言。例如,以太网可以由端口和VLAN进行定义。端口可由接口类型、速度、标记与否等来表征。VLAN包括速率、VLAN标记、QoS参数等,并将该标准模型推送给转发设备来实现。图 3.6说明了如何在目录中设计和存储 YANG模型。(AT&T创建了一种 YANG模型设计平台,以帮助服务设计人员为其服务构建YANG模型)然后,可以通过名为 NETCONF(IETF)的协议将模型推送给 VF。NETCONF可定义为通过远程过程调用(RPC,RemoteProcedureCall)安装、操作和删除网络设备的配置。
图3.6YANG和NETCONF
YANG模型可扩展到许多软件模型,以获得网络功能的更多抽象层。如图 3.7所示,我们可以使用 YANG来定义设备层(如单转发设备)、网络层 [ 如跨城域网(MAN,MetropolitanAreaNetwork)或广域网(WAN)的 VLAN]、服务层(诸如以太网 WAN的端到端服务定义)和 API层服务的数据模型。YANG定义了可以公开的软件接口,以便为客户请求端到端服务。
图3.7 YANG抽象层
在 VNF实现方案中,可以发现如下两种额外工作负载类型,但程度较低:
(1)信号处理工作负载:定义为与数字信号处理相关的工作负载[ 如云无线接入网(C-RAN,CloudRadioAccessNetwork)基带单元(BBU,BaseBandUnit)(JunWu)中的快速傅立叶变换(FFT,FastFourierTransform)解码 /编码 ]。这些负载通常具有 CPU密集型和高时延敏感性。在先前的讨论中,我们倾向于将媒体转码表征为信号处理工作负载,尽管本规范给出了相关定义,转码似乎与涉及加密的数据平面工作负载存在着更多共同之处。与其他数据平面工作负载相比,预计 CPU利用率会大大提高,但不会比通用分组转发更具时延敏感性。
(2) 存储工作负载:定义为涉及磁盘存储的工作负载,在规范中细分为密集型和非密集型两种。
VNF的分解过程非常复杂,对所有工程问题和可能折中的详细讨论已经超出本章范围。从高层次来看,这一过程涉及以下方面。
(1) 按工作负载来识别和划分外部接口和协议。
(2) 围绕这些接口和协议来分离VNF的功能。
(3) 识别和隔离作为分解备选方案的任何存储或管理功能。
(4)由于分离工作负载以外的原因而识别用于分解的备选功能(如将前端处理与数据存储分离,以便更好地进行故障处理、部件重用、降低单一 VNF的复杂性等)。
(5) 确定备选分解功能之间的适当接口。
(6)考虑诸如效率权衡、故障域和故障处理、管理和编排复杂性等因素来评估分解每项功能的优势是否会超过潜在成本。