转发自:https://zhuanlan.zhihu.com/p/26259440

NFV全称是Network Function Virtualization。这又是一个与网络相关的故事。先来看看NFV的前世今生吧。在NFV之前,NF(NetworkFunction)是一直存在的,网络中,NF可以看成一个个独立的网元,实现着各自的功能。NF以固定的方式连接起来,统一提供的网络功能和服务。随便在网上找了张图,大概示意一下。

NFV介绍_NFV技术-风君雪科技博客NFV介绍_NFV技术-风君雪科技博客

V(Virtualization)是虚拟化。NFV字面上理解就是网络功能虚拟化。凡是提到虚拟化,让人想到的是用软件的方式实现传统的功能。又是网络又是软件的,那NFV和SDN有什么区别联系?

首先,NFV和SDN彼此之间没有必然联系。NFV即使脱离SDN,也能实现,在传统的网络架构中,将PNF(Physical Network Function)替换成虚拟化的NF,再辅以传统的NF连接方式,也能实现NFV。而SDN更是可以脱离NFV实现。

但是,另一方面,NFV和SDN如果相互结合,又可以是互补的存在。借助SDN,不仅传统的NF连接方式都能支持,SDN还能提供更高效的NFV实现方式。毕竟SDN提供的管理层和转发层的分离,使得网络变得极其灵活。反过来,NFV也能够提供SDN的运行环境,帮助SDN的实现。举个例子,某公有云基于SDN提供了IaaS服务,某客户希望在该公有云上搭建自己的Web Server,这个时候,客户可以借助第三方的镜像来部署Firewall和Load Balancer实例。在这个场景下,第三方提供的镜像作为NFV的一部分,完善了SDN的功能。SDN和NFV的关系可以描述为下图,图中提到开放是为了技术更好的发展,与技术本身无关。

NFV介绍_NFV技术-风君雪科技博客NFV介绍_NFV技术-风君雪科技博客

既然NF在之前就已经存在,那为什么要提出NFV?那肯定是原有的NF架构有这样那样的问题,这里就不展开了。简单说就是传统的NF架构成本高,运维困难,机会成本大(硬件设备更新换代之后,原有设备作废),为了更好的收益,才提出的NFV。除了内因,外界的技术发展也促使NFV的发展,这包括了:

  •     云计算(Cloud computing)的发展:云计算为NFV的虚拟化提供了支持。通常NFV中的单元是一个个虚机,而云计算能提供灵活的虚拟管理。尤其是云计算带出的标准API如OpenFlow,OpenStack,OpenNaaS,和OGF的NSI,为NFV和云计算的结合提供了帮助,进而推动了NFV的发展。
  •     标准服务器的发展:标准x86服务器的性能不断提升,成本不断降低,使得基于软件实现NF的成本大大优于基于专有设备实现NF。

当然NFV本身也存在一些挑战:

  •     不同厂商之间的兼容问题,传统的NF本身各个厂商都是私有接口了,而NFV如果能统一接口,将使得应用变得更加广阔。
  • 性能的下降:
        软件实现的东西通常都比专有设备实现的功能性能要差。因此,在一些对性能特别敏感的地方,仍然需要使用专有设备。
  •     传统NF的迁移和共存问题。
  •     统一的管理和编排(Management and Orchestration)
  •     安全性和弹性等等。

总之,NFV于内于外都有其催生的因素,而其本身又具有一些挑战,这个时候就需要某个组织跳出来制定一个统一的标准,于是我们有了ETSI(European Telecommunications Standards Institute)提出的NFV参考架构。

High-Level NFV Framework

从大的颗粒看,NFV的架构可以分为三个部分,如下图所示:

NFV介绍_NFV技术-风君雪科技博客NFV介绍_NFV技术-风君雪科技博客

VNF(Virtualized Network Function)

VNF运行在NFVI之上。从概念上,VNF是NF的虚拟化实现,V是Virtualized的意思。除了这点之外,还可以从三个角度来理解VNF:

  •     从虚拟化的角度来说,VNF可以是一个VM(VirtualMachine),当然容器作为新生力量,它也可能存在,这里就不多说了。
  •     从设备提供商(vendor)的角度来说,VNF是一个或者多个内部相连的VM和描述它们的模板。
  •     从操作人员(operator)的角度来说,VNF是一个vendor提供的软件包。

前面提到了NF连接起来统一提供Network Service,描述NF连接关系的模板称为NF-FG (Forwarding Graph)这个就是之前介绍过的SFC。在NFV框架下,又称之为VNF-FG。VNF-FG提供VNF之间的逻辑连接,对应于传统网络架构中的用线缆连接NF。在一个黑盒子里,VNF-FG和VNF与NF-FG和NF提供的接口和服务是一样的。下图显示了在两个物理网元(PNF)之间通过VNF-FG建立的E2E(End to End)网络服务。

NFV介绍_NFV技术-风君雪科技博客NFV介绍_NFV技术-风君雪科技博客

VNF的解构和聚合

VNF解构:将一个highlevel的VNF拆分成一些low level的VNF,这样能够提供更灵活的应用,更快的响应,并支持更大的规模。
VNF聚合:将一些lowlevel的VNF组合成一个整体的high level的VNF。这样能减少管理的难度,并适当降低VNF-FG的复杂性。
由于通过虚拟化和软件实现了NF,VNF的组合连接方式可以非常灵活,具体要取决于VNF provider的实现和Network Service Provider的描述。

NFVI(NFV Infrastructure)

NFVI包含各种物理资源和虚拟化技术。NFVI支持VNF的运行。前面说过,从虚拟化的角度来看,VNF可以是VM。NFVI支持VNF的运行,其一部分工作就是提供VNF所需的VM。既然这样,那NFVI和Cloud有什么区别联系?

首先,Cloud和NFV都依赖物理的计算网络存储资源,它们都把这些资源作为一个资源池来使用。

其次,Cloud的服务提供形式通常有IaaS,PaaS,SaaS。而NFVI需要提供IaaS的运行时环境,这样才具备提供VM的能力。

第三,在Cloud提供的形式中,还有一个NaaS(Network as a
Service),它提供了一个动态的,按需的网络连接服务。NFVI需要提供NaaS的动态网络连接能力,以管理VNF之间的连接。因此Cloud中的IaaS和NaaS可以看成是NFVI所需要提供部分服务内容。

NFV介绍_NFV技术-风君雪科技博客NFV介绍_NFV技术-风君雪科技博客

NFVI可以理解成一个定制化的Cloud,将物理资源(计算存储网络)抽象和虚拟化,以提供上层运行的VNF使用。NFVI的物理资源在NFVI-PoPs(NFVI Point of Presence)。在一个NFV架构中,NFVI-PoPs不局限于一个位置。例如,Service Provider2可以在Service Provider1提供的NFVI之上运行自己的VNF(SP1和SP2之间进行相应的协商),如下图所示:

NFV介绍_NFV技术-风君雪科技博客NFV介绍_NFV技术-风君雪科技博客

NFV MANO(Management and Orchestration)

将NF从硬件资源抽象解耦成软件实现的VNF,必然会带来管理上的挑战。这包扩了,逻辑上E2E的网络服务在NFV network中的映射;将VNF部署在合适的位置以实现期望的网络服务;为VNF分配和扩展硬件资源;检查VNF状态,并恢复VNF的错误。其实在传统网络架构中,这些都是operator管理PNF的工作,现在可以通过软件来实现,也可以说是增加了通用性,降低了维护成本。NFV MANO管理前面描述的VNF和NFVI的系统,这包括:

  • NFVI中支持虚拟化的硬件和软件
  • VNF的编排和声明周期管理

NFV MANO由几个部分组成,每个部分完成特定的功能。另一方面,NFV MANO必须与现有的管理系统,例如OSS/BSS,硬件资源管理系统,和作为VIM的CMS等工作在一起,以帮助它们管理虚拟化的资源。这块在下个部分再说明。

NFV Reference Architectural Framework

在前面的基础上,再进一步详细描述ETSI给出的NFV架构。

NFV介绍_NFV技术-风君雪科技博客NFV介绍_NFV技术-风君雪科技博客

先看组成部分:

  • ***VNF:前面已经描述过了,这里就不再叙述。
  • ***EM(Element Management):对一个多着多个VNF进行管理。注意NFVI只是提供VNF的运行环境,对VNF的管理还需要EM参与。
  • ***VNF Manager(s):作为NFV MANO的一部分,负责VNF的生命周期管理。VNF Manager可以存在多个。
  • ***NFVI:前面已经描述过。
  • ***VIM(Virtualized Infrastructure Manager): 作为NFV MANO的一部分,管理支持虚拟化的硬件软件资源。包括权限管理,增加/回收VNF的资源,分析NFVI的故障,收集NFVI的信息等。VIM可以存在多个。
  • ***NFV Orchestrator: 作为NFV MANO的一部分,管理和编排NFVI和软件资源,在NFVI上实现Network Service。
  • ***OSS/BSS(Operation Support Systems and Business Support Systems): Operator原有的管理系统。
  • ***Service,VNF and Infrastructure Description:为NFV MANO提供数据存储管理的功能,数据包括VNF deployment template,VNF-FG,service-related information和NFVI数据模型。

再来看看各个组成部分的连接关系。

  • ***Virtualization Layer – Hardware Resources (Vi-Ha): 连接 virtualization 层和硬件资源。为VNF创造一个不依赖于硬件资源的运行环境。
  • ***VNF – NFV Infrastructure (Vn-Nf) : 指的是由NFVI提供的供VNF运行的环境。
  • ***NFV Orchestrator – VNF Manager (Or-Vnfm) :将配置信息发给VNF manager,进一步由VNF manager控制VNF,使得VNF在VNF-FG中工作。同时收集VNF的信息,以供Network Service声明周期管理。
  • ***Virtualized Infrastructure Manager – VNF Manager (Vi-Vnfm) :由于VNF Manager肩负着VNF的声明周期管理,这个连接是VNF Manager控制VNF资源的接口。同时也收集虚拟化资源配置和状态信息,供VNF使用。
  • ***NFV Orchestrator -Virtualised Infrastructure Manager (Or-Vi) :NFV MANO不是简单的分层的关系,Orchestrator可以直接连接到VIM。这个连接也是资源的分配和保留,收集虚拟化资源的配置和状态信息。
  • ***NFVI – Virtualised Infrastructure Manager (Nf-Vi) :具体的虚拟资源分配,同时收集NFVI的虚拟化资源的配置和状态信息。
  • ***OSS/BSS – NFV Management and Orchestration (Os-Ma) : OSS/BSS的接入点。
  • ***VNF/EM – VNF Manager (Ve-Vnfm) : VNF Manager 管理VNF的接口,包括了VNF的生命周期管理,配置管理,收集VNF的状态信息,以供Network Service生命周期管理使用。

最后

       最后再来看什么是NFV?NFV是一个技术方向,是将虚拟化技术应用到传统网络,是对传统网络的革新。它的应用主要是电信领域。ETSI NFV ISG与2014年9月成立了OPNFV(Open Platform of Network Function Visualization)开源社区。OPNFV是一个Linux基金会托管项目,提供了一个集成的开源参考平台。OPNFV的出现为NFV产业提供了一个公共的平台,聚集了NFV领域的主要参与方,包括运营商,CT厂商,IT厂商等,基于OpenStack、OpenDaylight、ONOS、KVM 等开源组件进行集成。