第 4 章 NFV Data Plane 连接

随着 NFV 的引入,更多网络供应商开始将其传统设备实施为 VNF。虽然大多数网络供应商正在考虑虚拟机,其中一些也将基于容器的方法作为设计选择进行调查。由于两个主要原因,基于 OpenStack 的解决方案应具有丰富且灵活:

  • 应用就绪 - 网络供应商目前正在将其设备转换为 VNF。市场中的不同 VNF 具有不同的成熟度级别;这种就绪性的常见障碍包括启用 RESTful 接口,将数据模型演变为无状态,并提供自动化管理操作。OpenStack 应为所有提供一个通用的平台。
  • 广泛的用例 - NFV 包括各种提供不同用例的应用程序。例如,Virtual Customer Premise Equipment (vCPE)旨在提供一些网络功能,如路由、防火墙、虚拟专用网络(VPN),以及客户内部的网络地址转换(NAT)。虚拟 Evolved Packet Core (vEPC)是一种云架构,为 Long-Term Evolution (LTE)网络的核心组件提供经济的平台,允许动态置备网关和移动端点,以保持从智能手机和其他设备的数据流量增加。

    这些用例是使用不同的网络应用程序和协议实现的,并且需要基础架构中不同的连接、隔离和性能特性。在 control plane 接口和协议和实际转发平面之间是分开的。OpenStack 必须足够灵活,以提供不同的数据路径连接选项。

在原则上,提供数据平面连接虚拟机的两种常见方法:

  • 直接硬件访问 会绕过 linux 内核,并使用 PCI Passthrough 或单个根 I/O 虚拟化(SR-IOV)等技术为虚拟功能(VF)和物理功能(PF)通过提供安全直接内存访问(DMA)。
  • 使用虚拟交换机(vswitch),作为虚拟机监控程序的软件服务实施。虚拟机使用虚拟接口(vNIC)连接到 vSwitch,vSwitch 能够在虚拟机之间转发流量,以及虚拟机和物理网络之间的流量。

4.1. 快速数据路径选项

一些快速数据路径选项如下:

  • 单根 I/O 虚拟化(SR-IOV) 是一种标准,使单个 PCI 硬件设备显示为多个虚拟 PCI 设备。它的工作原理是引入物理功能(PF),它们是代表物理硬件端口的全功能 PCIe 功能,以及分配给虚拟机的轻量级功能(VF)。对于虚拟机,VF 类似于与硬件直接通信的常规 NIC。NIC 支持多个 VF。
  • Open vSwitch (OVS) 是一个开源软件交换机,设计为在虚拟化服务器环境中用作虚拟交换机。OVS 支持常规 L2-L3 交换机的功能,并提供对 OpenFlow 等 SDN 协议的支持,以创建用户定义的覆盖网络(如 VXLAN)。OVS 使用 Linux 内核网络来利用物理 NIC 在虚拟机和主机之间切换数据包。OVS 现在支持具有内置防火墙功能的连接跟踪(Conntrack),以避免使用 iptables/ebtables 的 Linux 网桥的开销。Red Hat OpenStack Platform 环境的 Open vSwitch 提供默认的 OpenStack Networking (neutron)与 OVS 集成。
  • 数据平面开发套件(DPDK) 由一组库和轮询模式驱动程序(PMD)组成,用于快速处理数据包。它设计为在用户空间中运行,使应用程序能够直接从或到 NIC 执行自己的数据包处理。DPDK 可减少延迟并允许处理更多数据包。DPDK Poll Mode Drivers (PMD)在忙碌循环中运行,持续扫描客户机中主机和 vNIC 端口的 NIC 端口,以获得数据包。
  • DPDK 加速 Open vSwitch (OVS-DPDK) 是与 DPDK 捆绑的 Open vSwitch,用于使用 Linux 内核绕过高性能用户空间解决方案,并将内存访问(DMA)直接传递给物理 NIC。其理念是将标准 OVS 内核数据路径替换为基于 DPDK 的数据路径,并在使用 DPDK 内部进行数据包转发的主机上创建用户空间 vSwitch。这种架构的优点是它对用户来说是透明的。它公开的接口(如 OpenFlow、OVSDB、命令行)保持不变。