网络功能虚拟化(NFV)是由网络和操作系统(OS,Operating System)两个独立学科开发活动所构建的一组软件功能。早期,网络和计算机都非常昂贵。因此,共享联网计算机变得必不可少—虽然每个用户的成本显著降低,但当新用户加入网络时,网络价值与联网用户数的平方成正比(梅特卡夫定律)。随着计算机数量的增加,网络设计变得更加复杂,其中交换机和路由器可用于将来自源端的流量引导到目的端,网络技术促进了局域网和广域网中的数据流动。
这里提到的网络技术是指以太网(SpurgeonandZimmerman,2000)和IP(Comer,2014),它们支持创建多用户共享的网络。以太网交换机和 IP 路由器采用硬件和软件构建,以实现单层网络协议。但是,以太网和 IP都未被设计成能够在用户(主机)或用户组之间提供足够的隔离功能。除非两个用户直接进行通信,否则,需要通过隔离来实现某个用户相对于其他用户的隐私和保护。以太网依赖于广播发现协议。IP路由的寻址架构导致每个用户对同一网络上其他用户都是“可见” 或“可达”的。NFV支持在大量用户之间安全、高效地共享网络,同时在用户组之间提供高级隔离功能。
除了共享和隔离之外,NFV 还需要第三种属性,我们称其为功能解耦。用于实现以太网和IP的交换机和路由器是单片元件,旨在提供非常高的性能—高数据分组吞吐量和非常短的数据分组交换时间(数据分组处理、排队和传输时延的总和)。随着互联网的发展,交换机和路由器变得越来越复杂。它们使用复杂的定制特殊应用集成电路(ASIC,ApplicationSpecificIntegratedCircuit)进行数据分组转发和专用操作系统,以实现各种网络协议和功能。NFV要求将网络功能
(转发、控制和管理平面)与单层网络硬件分离。此外,NFV在软件中实现分组转发。硬件变为通用(如x86或商用芯片),且软件与硬件分离。在深入研究NFV之前,我们将对这些技术进行综述。
3.1 虚拟化
在本节中,我们将讨论与网络和计算环境相关的虚拟化,重点关注网络功能虚拟化,它既适用于网络虚拟化,又适用于计算虚拟化。
3.1.1 网络虚拟化
封闭式用户组(CUG,ClosedUserGroup)支持一组相互隔离的用户与网络中其他用户进行通信。网络支持创建多个 CUG。每个CUG正常工作时,就像整个网络都属于特定 CUG一样,不会受到同一网络上可能存在的其他CUG的干扰。我们将支持此类CUG的技术称为网络虚拟化。每个CUG在其虚拟网络上运行,与同一物理网络上的其他虚拟网络共存。
以太网和 IP网络设计用于支持多个用户进行通信并共享公共物理网络。但是,以太网和 IP
的原始定义中并不包含 CUG概念。
以太网定义了共享媒体上的广播域概念。虚拟局域网(VLAN,VirtualLocalAreaNetwork)是一种广播域,可以对虚拟局域网进行分区,并将它与其他虚拟局域网和关联广播域区分开。要将网络划分为多个虚拟局域网,需要配置网络交换机或路由器。虚拟局域网允许网络管理员将主机组合成一个广播域或虚拟网络。虚拟局域网成员资格可以通过软件进行配置。在不存在虚拟局域网的情况下,对用户(主机)进行分组需要在物理上重新定位网络交换机并将站点连接到交换机的光缆。虚拟局域网通过对局域网进行虚拟化,可大大简化网络设计和网络部署(如图 3.1所示)。
图3.1 使⽤虚拟局域⽹(VLAN)的简单以太⽹虚拟⽹络
虚拟专线业务(VPWS,VirtualPrivateWireService)和虚拟专用局域网服务(VPLS,VirtualPrivateLANService)(Rekhter,2007)是广泛用于校园或多位置广域网的第二层虚拟网服务(Anderson,2006)。VPWS定义了点对点服务,而VPLS定义了多点服务。以太网虚拟专用网(EVPN,EthernetVirtualPrivateNetwork)(Sajassi,2015)是为以太网终端构建和提供CUG服务的最新标准。
IP 路由定义了一组协议,这些协议计算数据分组所遵循的路径,以便跨多个网络从数据分组的源端传输到目的端。数据通过一系列路由器从其源端路由到目的端,且通常跨多个网络。IP路由协议支持路由器构建转发表,该表将目的端与下一跳地址关联起来。在基本 IP路由协议中,所有源端和目的端通过路由协议都是相互可见的。
为了在 IP网络上创建 CUG,我们需要采用一种通常称为叠加网络的方法。叠加网络是一种在单层 IP网络上实现的虚拟网络。存在两种用于创建叠加 IP网络的常见技术:IP隧道和虚拟路由转发(VRF,VirtualRouteForwarding)。
IP隧道(Simpson, 1995)用于连接两个相互之间没有路由路径的虚拟IP端点(如图 3.2所示)。隧道采用跨公共中间IP传输网的路由协议。IP隧道是端点和公共中间传输网之间的虚拟叠加网络连接(有时也称其为单层网络)。可以使用一组IP隧道在一组 IP端点之间创建 CUG,我们称其为虚拟专用网(VPN)。
图3.2使⽤IP隧道的虚拟⽹络连接
VRF是一种能够在 IP网络中创建多个路由表实例的技术 [Rosen,BGP/MPLSIP VirtualPrivateNetworks(VPNs), RFCs4364and2547,2006]。路由表由 IP网络中的每台路由器维护。在沿着分组路径的每一跳处执行路由表查找以确定分组的下一跳。在原始 IP网络架构中,使用单路由表来定义路由逻辑,有时称其为全局路由表。VRF定义了路由表的多个实例,其中每个实例都可以定义一个 CUG。这是一种非常高效的 VPN创建方法(如图 3.3所示)。
图3.3使⽤VRF的IP⽹络虚拟化