转发自:https://zhuanlan.zhihu.com/p/26259440
NFV全称是Network Function Virtualization。这又是一个与网络相关的故事。先来看看NFV的前世今生吧。在NFV之前,NF(NetworkFunction)是一直存在的,网络中,NF可以看成一个个独立的网元,实现着各自的功能。NF以固定的方式连接起来,统一提供的网络功能和服务。随便在网上找了张图,大概示意一下。
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的关系可以描述为下图,图中提到开放是为了技术更好的发展,与技术本身无关。
既然NF在之前就已经存在,那为什么要提出NFV?那肯定是原有的NF架构有这样那样的问题,这里就不展开了。简单说就是传统的NF架构成本高,运维困难,机会成本大(硬件设备更新换代之后,原有设备作废),为了更好的收益,才提出的NFV。除了内因,外界的技术发展也促使NFV的发展,这包括了:
当然NFV本身也存在一些挑战:
总之,NFV于内于外都有其催生的因素,而其本身又具有一些挑战,这个时候就需要某个组织跳出来制定一个统一的标准,于是我们有了ETSI(European Telecommunications Standards Institute)提出的NFV参考架构。
从大的颗粒看,NFV的架构可以分为三个部分,如下图所示:
VNF运行在NFVI之上。从概念上,VNF是NF的虚拟化实现,V是Virtualized的意思。除了这点之外,还可以从三个角度来理解VNF:
前面提到了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)网络服务。
VNF解构:将一个highlevel的VNF拆分成一些low level的VNF,这样能够提供更灵活的应用,更快的响应,并支持更大的规模。
VNF聚合:将一些lowlevel的VNF组合成一个整体的high level的VNF。这样能减少管理的难度,并适当降低VNF-FG的复杂性。
由于通过虚拟化和软件实现了NF,VNF的组合连接方式可以非常灵活,具体要取决于VNF provider的实现和Network Service Provider的描述。
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所需要提供部分服务内容。
NFVI可以理解成一个定制化的Cloud,将物理资源(计算存储网络)抽象和虚拟化,以提供上层运行的VNF使用。NFVI的物理资源在NFVI-PoPs(NFVI Point of Presence)。在一个NFV架构中,NFVI-PoPs不局限于一个位置。例如,Service Provider2可以在Service Provider1提供的NFVI之上运行自己的VNF(SP1和SP2之间进行相应的协商),如下图所示:
将NF从硬件资源抽象解耦成软件实现的VNF,必然会带来管理上的挑战。这包扩了,逻辑上E2E的网络服务在NFV network中的映射;将VNF部署在合适的位置以实现期望的网络服务;为VNF分配和扩展硬件资源;检查VNF状态,并恢复VNF的错误。其实在传统网络架构中,这些都是operator管理PNF的工作,现在可以通过软件来实现,也可以说是增加了通用性,降低了维护成本。NFV MANO管理前面描述的VNF和NFVI的系统,这包括:
NFV MANO由几个部分组成,每个部分完成特定的功能。另一方面,NFV MANO必须与现有的管理系统,例如OSS/BSS,硬件资源管理系统,和作为VIM的CMS等工作在一起,以帮助它们管理虚拟化的资源。这块在下个部分再说明。
在前面的基础上,再进一步详细描述ETSI给出的NFV架构。
先看组成部分:
再来看看各个组成部分的连接关系。
最后再来看什么是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 等开源组件进行集成。