NFV学习笔记
本文学习和参考了网络功能虚拟化 NFV架构、开发、测试及应用
ISBN:978-7-115-44170-6
专业术语及缩写
- NFV(Network Function Virtualization):网络功能虚拟化:利用IT虚拟化技术将现有的网络设备功能整合进标准的服务器、存储器和交换机等设备,以软件的形式实现网络功能,以此取代目前网络中的私有、专用和封闭的网元设备。这些标准设备可以位于数据中心、网络节点和用户驻地网。总体上,NFV架构应能够支持物理网络功能(PNFs)和虚拟网络功能(Virtualized Network Function,VNF)构成的网络服务。PNFs就是专用硬件实现的网络功能;VNF是利用通用服务器实现的网络功能,(P3)
- SLA(Service-Level Agreement):服务等级协议:SLA最根本的形式是协议双方(服务提供者和用户)签订的一个合约或协议,这个合约规范了双方的商务关系或部分商务关系。一般来说,SLA是服务提供者与用户之间协商并签订的一个具有法律约束力的合同,合同规定了在服务提供过程中双方所承担的商务条款。(P14)
- SDN(Software Defined Network):软件定义网络:SDN是一种新兴的网络架构,是网络虚拟化的一种实现方式。SDN利用将网络设备的控制层面和数据转发层面相分离的方式,实现了网络流量的灵活控制和集中式管理,使网络变得更加智能。(P20)
- NFVI(Network Function Virtualization Infrastructure):NFV基础设施:NFVI为虚拟化网络功能(VNF)提供了虚拟化的资源,也就是说NFVI利用所有的硬件和软件组件搭建了一个环境,VNFs可以在这个环境中被部署、管理和执行。NFVI可以跨越多个地点,即NFVI-PoPs被操作的位置。(P28)
- NF-FG(Network Function Forwarding Graph):网络功能转发图:NF-FG是连接网络功能节点的各条逻辑链路的汇总,用以描述这些网络功能节点之间的数据流向。(P28)
- NF Set(Network Function Set):网络功能集:NF Set是未指定连接的所有网络功能的集合。(P28)
- EM(Element Management):网元管理:EM是管理特定类型的一个或多个电信网络单元(Network Element,NE)的系统。EM主要复制VNF的安装、监控、错误日志记录、配置、记账、性能和安全等。在运营商环境中,EM还需要提供OSS所需要的基本信息,但目前NFV暂不考虑EM和OSS之间的信息传递问题。(P39)
- OSS/BSS(Operation Support System / Business Support System):操作支撑系统和业务支撑系统:OSS和BSS是支撑各种端到端的电信服务(如订单、账单、续约、排障等)所需要的主要管理系统,同时还要支持与NFVO的协同功能,包括与NFVO交互完成网络服务描述、网络服务生命周期管理、虚拟资源故障及性能信息交互以及策略管理等功能。(P40)
- REST API(Representational State Transfer):表征性状态转移:是Roy Fielding博士在2000年的博士论文种提出的一种软件架构风格,因其简洁清晰的接口设计和灵活可扩展的特性被广泛采用域Web服务的架构设计中。符合REST设计风格的Web服务或者接口可称为RESTful服务或者接口。其含义为通过在客户端和服务器端之间传递资源状态的表征,来获取资源的状态或者改变资源的状态。其核心是对资源的标识和获取。资源是指Wen服务的提供者所拥有的实际物理资源,由统一资源标识符(URI)来指定。
NFV相关基础知识
对应的开源软件OPNFV垂直整合各个上游工程组件,包括OpenDaylight、OpenStack、KVM、Open vSwitch、Data Plane Development Kit(DPDK)等。
NFV参考架构简析
NFV架构设计要基于NFV目标,共有六个方面,见P28。
NFV系统结构包括网络功能虚拟化基础设置(Network Function Virtualization Infrastructure,NFVI)、虚拟化网络功能(模块)(Virtualized Network Function,VNF)、网络功能虚拟化管理与编排(模块)(Network Functions Virtualization Management and Orchestration,NFV MANO)。(P30)
- NFVI包括硬件资源、虚拟层和虚拟资源三部分。(P32)。
- VNF模块运行在NFVI之上,主要功能包括操作与管理单元(Operationand Management Unit,OMU)和虚拟网路子功能(Virtual Network Sub-fuctions,VNSF)。基于VNF的网络服务与基于NF的网络服务的区别,见P34。
- NFV MANO模块包括:网络功能虚拟化编排(Network Function Virtualization Orchestration,NFVO)、虚拟化网络功能管理器(Virtualized Network Function Manager,VNFM)、虚拟化基础设置管理器(Virtualized Infrastructure Manager,VIM)三部分。NFV MANO模块关注NFV框架中所有虚拟化的管理以及MANO的通信接口,同时此模块还需要整合到现有的网络管理系统中,能够和OSS/BSS交互。图见P36。
- NFV参考接口中实线参考点的详细描述,见P40。
网络功能虚拟化
整个系统中的每个组件都被指定为一个功能块,功能块之间的连接被指定为接口。系统工程规范的一个基础原则是整个系统由组件和组件间的连接所指定,并且所有的组成都是功能模块。每个功能块都包含了固有属性,其操作时自动化的。功能块的行为取决于:功能块的静态传输功能;功能块的动态状态;接口接收到的输入。
NFV的目的是为了实现软硬件分离,VNFs基于NFVI实现相应的功能。VNF不能自动化的存在,需要取决于Host Function,它们互相具有依赖存在性。(P44)
- VNF及其Host Function之间的关系包括:VNF可以配置Host Function;当VNF配置Host Function时,VNF可以作为Host Function的抽象视图。
- NFV架构的定义不止包括网络功能功能块及其相关的接口,还包括以下实体:Host Function及与其相关联的容器接口、基础设施接口;VNFs及与其关联的容器接口、虚拟化接口。
- 现有的网络接口由其他标准制定组织(SSOs)所制定;基础设施接口很大程度指IT行业中云基础架构的接口;容器接口已经被IT行业指定在许多应用中,典型的就算Web服务。
网络功能虚拟化以后需要进行管理与编排,网络功能有一个接口(通常称为“北向”接口)提供管理和编排功能。
NFV的目标是从基础设施中分离出虚拟网络功能,包括管理。管理和协调功能可以划分为NFVI和VNFs的管理和编排。
VNFs又有两种方式进行管理,一种是对传统网络功能进行管理(非虚拟化),另一种是通过M&O/VNF接口实现对虚拟化网络功能的管理。基础设施管理与编排功能则通过M&O/VNF接口实现对NFVI的管理。(P45)
多个虚拟功能快(Virtual Function Block,VFB)映射到多个承载功能块(Host Function Block,HFB):
- 多重原则:单个计算机节点上承载Hypervisor,Hypervisor本身能够承载多个虚拟机(VM),而每个VM又可以承载一个VNF。托管在当个VM的单个VNF称为VNFC。而在实际应用中,NFVI是一个分布式系统,托管的VNFs也可能是分布式系统。NFVI包括计算节点和基础设施网络。
2.完全和部分虚拟化网络功能对NFVI的影响:一个大范围的网络功能(NF)或网元可以分解成多个NFs,如果所有组件都实现为VNFs是,那么NF或网元可以认为是完全虚拟化的;如果只是部分实现为VNFs,则是部分虚拟化。虚拟化的结构是非虚拟化的组件在固定的网络位置中实现,而VNFs可以在NFVI上的任何位置实现,但必须受到相应的限制。实际上,三层以上的网络功能的操作(如防火墙,负载均衡器等)可能是完全虚拟化的。(P48)
NFV域:为了提供复杂性和伸缩性的管理方式,NFV提出两种特定的技术。将NFV分为自治域(基础设施也分成自治域);系统和接口的抽象。
- NFVI可以被分为三个域:计算域、虚拟域、基础设施网络域。
- 与NFVI三个域紧密相关联的是NFV管理与编排实体(MANO)。NFV MANO是一组模块化的,相互连接的虚拟机,运行在基础设施上。未来加载和管理软件应用,这些实体执行所有自动化的编排和管理操作。
- P50的表2-1对上图的接口进行了描述。
NFVI域:分为计算域、虚拟域、基础设施网络域。
- 计算域:提供COTS计算和存储资源。当和虚拟域结合使用时,支撑VNFs的各个组件。从广义上讲,计算域提供到基础设施网络域的接口,但不支持本身的网络连接。
- 虚拟域:将计算机域的资源虚拟化到虚拟机上,以软件应用的形式存在。
- 基础设施网络域:包括所有互连成一个网络的通用高容量交换机,此域可被配置以提高基础设施的网络服务。
- 以上三个域的定义并非正交,有些功能可能重叠。如:虚拟交换机(vSwitch)属于(虚拟域&基础设施网络域),嵌入式以太网交换机(eSwitch)属于(计算域&基础设施网络域)。
- **(P54)**的表2-2对NFVI参考接口进行了描述。
SDN与OpenDaylight
SDN架构
SDN网络架构采用“三层两接口”:数据转发层、控制层、应用层,南向接口和北向接口。
SDN的三层功能模型解决了传统网络的不足,将网络控制功能从传统交换设备分离出来,网络控制功能统一交给中心控制器掌控,交换机只能进行数据转发。
- 数据转发层:也就是基础设施层,由基础硬件与硬件抽象两层组成。OPenFlow作为SDN的南向接口,采用了流表的概念对传统的二层转发表、三层路由表进行抽象,具体结构见P61。
- 控制层:开源的控制器如NOX/POX、Floodlight、Ryu、OpenContrail、OpenDaylight、ONOS等。(P63)
- 基本结构如下图所示:
- 南向接口:包括OF-CONFIG、NETCONF、OVSDB等协议;ONF组织介于OpenFlow协议标准化了南向接口。
- 网络信息管理层与事件层:控制器的核心部分,负责进行下层转发设备流表的添加、移除和修改等操作。
- 基本功能模块:实现网络的基本功能。包括拓扑管理、路径计算、链路发现、数据转发。
- 北向接口:控制层与应用层之间的接口,还没有标准出现,但开源控制器一般采用REST API作为北向接口的实现方式。
- 应用层:各种应用可以分为三类:SDN订制应用、资源管理平台、创新网络业务。
SDN控制器
主流开源控制器:NOX/POX、Floodlight、Ryu、OpenContrail、OpenDaylight、ONOS等。具体介绍见P65。
多控制器架构及模型:HyperFlow、Onix、Kandoo。具体介绍见P69。
SDN南北向接口
控制器维护着网络的资源,包括拓扑信息、交换机节点信息、链路信息等,上层应用也可以通过北向接口从服务器获取这些信息,对底层网络资源进行访问,也可以对这些资源进行创建、修改、删除等操作。 虽然目前北向接口的标准尚未确定,但是REST API风格的接口设计子啊业界已经达成共识。 关于REST API的相关介绍见P71。
最知名的南向接口是ONF倡导的OpenFLow协议。除此之外,还有OF-CONFIG、NETCONF、OVSDB、BGP、PCEP等。见P74。
OpenDaylight控制器
OpenDaylight架构主要由网络应用服务层、控制平面层、南向接口层和数据平面层四层构成。
- 网络应用服务层:为用户提供北向REST API。
- 控制平面层:包括一系列功能模块,可动态组合提供不同服务,其中包括拓扑管理、转发管理、主机监测、交换机管理等模块。
- 南向接口层:为硬件设备提供标准的南向接口,支撑多种不同协议。
- 数据平面层:支持混合模式交换机和经典OpenFLow交换机。
OpenDaylight架构的六大设计原则及优点、核心技术见P77。
OpenDaylight工作流程分析见P78。
OpenDaylight中部分重点项目
数据建模语言YANG:为了对NETCONF协议所操作的数据进行建模。其通过树形结构的节点定义对通过NETCONF协议传送的数据进行建模,描述了数据模型的层级嵌套结构以及各属性的数据类型。相关节点类型及功能见P81的表3-2。
L2Switch项目:OpenDaylight控制器中的一种应用。
- 其将某些特定的二层处理代码剥离处理形成了一个可重用的独立项目,提供基础的L2Switch功能和一些典型的支持L2Switch功能的服务,包括基于事件驱动的数据包处理模块、地址跟踪、最优路径计算、基本的生成树协议等。
- 将传统的L2Switch设备的控制层抽离到控制器上,使得控制器具有L2Switch的处理能力,负责MAC地址学习、数据转发决策等。
- 由一系列支持L2Switch项目功能的服务模块组成,包括地址跟踪、ARP处理器、主机跟踪、消除环路、包处理以及流表下发等。
功能服务链项目(Service Function Chaining,SFC):是整个控制器平台内部的一个功能模块,提供了一个定义VNF(例如防火墙、负载均衡等)序列的能力。
- 基本概念:
- 中间设备(Middle Box):介于虚拟网络和物理网络之间,完成安全、统计、优化等网络服务功能的中间件。
- 分类器(Classifier):执行分类操作的元素。
- 服务功能(Service Function):负责对收到的报文进行特定功能的处理。SF主要包括DPI、合法监听、服务负责均衡、TCP优化、防火墙等。
- 服务转发器(Service Function Forwarder,SFF):将封装有对应逻辑Service Chaining路由标签的数据报文进行逐跳转发。使用最广泛的是OVS。
- 服务功能路径(Service Function Path,SFP):介于SFC和SFF/VM之间,它提供了一个间接的服务链路径描述方式,通过SFP可以控制网络中SFF和SF的优先级。
- SFC相对于传统DC配置的服务链优势见P88。
- SFC核心组件:服务封装、SFC域、SF、SFF、SFC代理、分类。具体见P90。
SDN与NFV
SDN和NFV两者可以认为是网络连接与网络节点的关系,两者共同构成了网络。SDN是一种网络连接技术,与传统的连接技术不同(尤其是对比IP网络),它采用集中控制、能力开放的网络架构,能够高效地调度整网资源,提升网络服务虚拟化能力;NFV是一种网络功能节点虚拟化技术,将传统的网络设备与硬件解耦,基于通用的服务器和虚拟化技术实现其网络功能,提开管理和维护效率,增强系统灵活性。
在应用方面,SDN关注网络组织以及云计算与业务编排;而NFV的应用,例如第1章所示,包括很多网络设备,如路由器、防火墙、网关等。
SDN创造网络抽象概念以加速创新,NFV通过设备虚拟化以减少CAPEX/OPEX,减少场地和电力消耗。两者的相互融合、相互补充,将会发挥更大的效应。我们可以利用SDN技术将网络节点的功能进一步拆分,使转发功能和业务功能分离,业务功能用NFV技术实现,如数据中心内的负载均衡器设备,然后将转发功能卸载到网卡或者 Openflow交换机上,而较高级的负载均衡策略由虚拟机实现。SDN和NFV的结合能够进一步地使现有的部署性能得到增强且简化互操作性,减轻运营和维护流程的负担。
NFV关注网络功能的虚拟化,而SDN关注控制面和数据面的解耦,两者结合是目前在电信界的热门话题。
SDN控制器在 ETSI NFV架构中的定位,如图3-16所示。SDN控制器可以部署在NFV架构的5处位置。
如图3-17所示,要在NFV架构中引入SDN,我们需要考虑SDN控制器与SDN资源、SDN应用、NFV编排器与其他SDN控制器间引入新的参考点。
同时,我们还需研究SDN控制器与其他模块的关系,即SDN资源、SDN应用、NFV管理和编排以及其他SDN控制器。虽然SDN资源和应用由标准组织、开源组织以及供应商参与,但是无论是在层次上还是组织上,SDN控制器与SDN控制器间的关系、SDN控制器与NFV编排之间的同步等都还不够成熟,需要进一步探究。