NFV(网络功能虚拟化)
SDN(软件定义网络)
NFV即网络功能虚拟化(Network Functions Virtualization),将许多类型的网络设备(如servers,switches和storage等)构建为一个Data Center Network,通过借用IT的虚拟化技术虚拟化形成VM(虚拟机,Virtual Machine),然后将传统的CT业务部署到VM上。
在NFV出现之前设备的专业化很突出,具体设备都有其专门的功能实现,而之后设备的控制平面与具体设备进行分离,不同设备的控制平面基于虚拟机,虚拟机基于云操作系统,这样当企业需要部署新业务时只需要在开放的虚拟机平台上创建相应的虚机,然后在虚拟机上安装相应功能的软件包即可。这种方式我们就叫做网络功能虚拟化。
一个NFV的标准架构包括NFV infrastructure(NFVI),MANO(Management and Orchestration)和VNFs,三者是标准架构中顶级的概念实体。
在NFV架构中,底层为具体物理设备,如服务器,存储设备,网络设备。
计算虚拟化即虚拟机,在一台服务器上创建多个虚拟系统。
存储虚拟化,即多个存储设备虚拟化为一台逻辑上的存储设备。
网络虚拟化,即网络设备的控制平面与底层硬件分离,将设备的控制平面安装在服务器虚拟机上。
在虚拟化的设备层面上可以安装各种服务软件。
NFVI(NFV Infrastructure)包含了虚拟化层(hypervisor或者容器管理系统,如Docker,以及vSwitch)以及物理资源,如COTS服务器、交换机、存储设备等。NFVI是一种通用的虚拟化层,所有虚拟资源应该是在一个统一共享的资源池中,不应该受制或者特殊对待某些运行其上的VNF。
NFV、VNF 三个同样的字母调换了顺序,含义截然不同。NFV是一种虚拟化技术或概念,解决了将网络功能部署在通用硬件上的问题;而VNF指的是具体的虚拟网络功能,提供某种网络服务,是软件,利用NFVI提供的基础设施部署在虚拟机、容器或者bare-metal物理机中。相对于VNF,传统的基于硬件的网元可以称为PNF。VNF和PNF能够单独或者混合组网,形成所谓的service chain,提供特定场景下所需的E2E网络服务。
MANO(Management and Orchestration)提供了NFV的整体管理和编排,向上接入OSS/BSS,由NFVO(NFV Orchestrator)、VNFM(VNF Manager)以及VIM(Virtualised infrastructure manager)虚拟化基础设施管理器三者共同组成。Orchestration,本意是管弦乐团,在NFV架构中,凡是带’O’的组件都有一定的编排作用,各个VNF、PNF、及其它各类资源只有合理编排下,在正确的时间做正确的事情,整个系统才能发挥应有的作用。
VIM:NFVI被VIM管理,VIM控制着VNF的虚拟资源分配,如虚拟计算,虚拟存储和虚拟网络。Openstack和VMWare都可以作为VIM,前者是开源的,后者是商业的。
VNFM: 管理VNF的生命周期,如上线、下线,进行状态监控、image onboard。VNFM基于VNFD(VNF描述)来管理VNF。
NFVO: 用以管理NS(Network Service,网络业务)生命周期,并协调NS生命周期的管理、协调VNF生命周期的管理(需要得到VNF管理器VNFM的支持)、协调NFVI各类资源的管理(需要得到虚拟化基础设施管理器VIM的支持),以此确保所需各类资源与连接的优化配置。onboard新的网络业务,VNF转发表,VNF package。 NFVO基于NSD(网络服务描述)运行,NSD中包含Service chain,NFV以及perfomance goal等。
NFV未来的演进可能包含初级和高级两个阶段:
在初级阶段,NFV将作为实施传统业务的新方法,主要完成将传统基于专用硬件的软件执行环境一对一地转化为基于通用硬件的VM上的专用虚拟化环境。
在高级阶段,NFV将作为实施新业务的新方法,包括将VNF分解为微业务乃至单功能VNF后再重新组合、采用容器技术将单个VM切片成更小容器、应用可软件编程的数据模型实现管理系统集成和自动化管理等过程。
NFVI:提供VNF的运行环境,包括所需的硬件及软件。硬件包括计算、网络、存储资源;软件主要包括Hypervisor、网络控制器、存储管理器等工具,NFVI将物理资源虚拟化为虚拟资源,供VNF使用。
VNF:包括VNF和EMS,VNF网络功能,EMS为单元管理系统,对VNF的功能进行配置和管理。一般情况下,EMS和VNF是一一对应的。
VIM:NFVI管理模块,通常运行于对应的基础设施站点中,主要功能包括:资源的发现、虚拟资源的管理分配、故障处理等,为VNF运行提供资源支持。
VNFM:VNF管理模块,主要对VNF的生命周期(实例化、配置、关闭等)进行控制,一般情况下与VNF一一对应。
NFVO:NS生命周期的管理模块,同时负责协调NS、组成NS的VNFs以及承载各VNF的虚拟资源的控制和管理。
OSS/BSS:服务提供商的管理功能,不属于NFV框架内的功能组件,但NFVO需要提供对OSS/BSS的接口。
1. NFV不依赖与SDN,但是SDN中控制和数据转发的分离可以改善NFV网络性能。
2. SDN也可以通过使用通用硬件作为SDN的控制器和服务交换机以虚拟化形式实现。
3. 结论:以移动网络,NFV是网络演进的主要架构。在一些特定场景,将引入SDN。
SDN与NFV对比:
类型 | SDN | NFV |
---|---|---|
主要主张 | 转发与控制分离,控制面集中,网络可编程化 | 将网络功能从原来专用的设备移到通用设备上。 |
校园网,数据中心、云。 | 运营商网络 | |
商用服务器和交换机 | 专用服务器和交换机 | |
云资源调度和网络 | 路由器、防火墙、网关、CND、广域网加速器、SLA保证等 | |
通用协议 | OpenFlow | 尚没有 |
ONF(Open Networking Forun)组织 | ETSI NFV工作组 |
首先,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的功能。
既然NF在之前就已经存在,那为什么要提出NFV?那肯定是原有的NF架构有这样那样的问题,这里就不展开了。简单说就是传统的NF架构成本高,运维困难,机会成本大(硬件设备更新换代之后,原有设备作废),为了更好的收益,才提出的NFV。除了内因,外界的技术发展也促使NFV的发展,这包括了:
当然NFV本身也存在一些挑战:
总之,NFV于内于外都有其催生的因素,而其本身又具有一些挑战,这个时候就需要某个组织跳出来制定一个统一的标准,于是我们有了ETSI(European Telecommunications Standards Institute)提出的NFV参考架构。
从大的颗粒看,NFV的架构可以分为三个部分,如下图所示:
VNF运行在NFVI之上。从概念上,VNF是NF的虚拟化实现,V是Virtualized的意思。除了这点之外,还可以从三个角度来理解VNF:
从虚拟化的角度来说,VNF可以是一个VM(VirtualMachine),当然容器作为新生力量,它也可能存在,这里就不多说了。
从设备提供商(vendor)的角度来说,VNF是一个或者多个内部相连的VM和描述它们的模板。
从操作人员(operator)的角度来说,VNF是一个vendor提供的软件包。
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等工作在一起,以帮助它们管理虚拟化的资源。这块在下个部分再说明。
先看组成部分:
再来看看各个组成部分的连接关系。
最后再来看什么是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 等开源组件进行集成。