NFV实验平台 实验平台的搭建:1.NFVI:多台虚拟化机器(VM/Container)+DPDK(内核态->用户态,用于加速) ====openNetVM2.MANO:  2.1VIM:OpenStack(参考以上开源项目介绍)  2.2NFVO + VNFM:我们的工作3.VNF:具体的NF,ClickOS?或者1-3直接参考OpenSDNCore  环境搭建参考:1. Centos7上部署openstack mitaka配置详解(将疑难点都进行划分)2. 

时间:2024-03-05 10:08:53

 NFV架构如下图所示。

NFVI对应于数据平面,数据平面转发数据并提供用于运行网络服务的资源。

MANO对应于控制平面,该控制平面负责构建各种VNF之间的连接以及编排NFVI中的资源。

VNF层对应于应用平面,其承载可被视为应用的各种VNF。 

 

(1)NFVI

NFVI包括物理基础设施、虚拟化层、虚拟化基础设施三个层次。

物理基础设施介绍了计算硬件、存储硬件以及网络硬件。 

虚拟化层介绍了Linux KVM [71] , Citrix Xen [81] , Microsoft Hyper-V [82] and VMware ESXi [83]等虚拟化技术的虚拟管理程序,以及容器技术(Docker、解决云中多租户问题的FlowN)。VM和Container的区别。

虚拟基础设施相应地有虚拟计算、虚拟存储以及虚拟网络资源。虚拟网络:虚拟服务器(配有虚拟以太网适配器)和虚拟交换机之间互联组成。目前,开发了许多开源和商用虚拟交换机,如Linux Open vSwitch (OVS)、Linux OpenSwitch、OpenStack Distributed Virtual Router (DVR) [112]、Brocade Vyatta 5600 vRouter。与物理基础设施层中解释的硬件加速类似,还有许多基于软件的I / O加速器用于NFV的数据平面:Data Plane Development Kit (DPDK)、Netmap、Single Root I/O Virtualization (SR-IOV)、PF_RING ZC、PFQ。

 

(2)MANO

根据ETSI,NFV MANO的所有职责分为三个部分,即虚拟化基础架构管理器(VIM),NFV Orchestrator(NFVO)和VNF Manager(VNFM)。

其中,

VIM管理和控制NFVI资源(包括网络,计算和存储)。

NFVO主要负责编排NFVI资源并管理VNF的生命周期;

VNFM负责管理多个VNF实例(包括VNF实例化,更新,搜索,扩展和终止);

NFVO,VNFM和VIM的职责存在部分重叠。因此,它们通常被实现为完整的实体。

 

ZOOM补充解决了ETSI NFV MANO的安全问题。OpenMANO、Open Source MANO (OSM)都实现了NFV MANO框架。

此外还有非MANO架构的,如作为OpenStack子项目的Tacker、Cloudify、OPEN Orchestrator(定义全局协调器来协调SDN协调器和VNF协调器)、FROG(一种SDN,NFV和云集成编排架构,侧重于支持异构基础设施)等。其中Tacker的NFV目录提供了各种VNF和服务的属性描述,Tacker的VNFM提供了VNF的基本生命周期管理,NFVO为配置服务提供了VNF放置策略,此外VNFM可以根据不同的策略自动修复和扩展VNF,NFVO能够跨多个VIM和多个站点(即N-PoP)协调VNF。

由于对服务编排的广泛研究,越来越多的努力逐渐转移到NFVO组件,这导致MANO和NFVO之间的边界变得模糊。如Cloudify、OPEN Orchestrator、FROG 等。
除了上述重量级的协调者之外,还有许多轻量级的协调者。例如,M.T。贝克等人。提出了一个轻量级NFV编排框架,使研究人员能够在NFV中模拟他们的部署和编排算法[134]。由于其轻巧的特性,可以非常直接且快速地部署和测试新策略。[135]的主要卖点是服务可扩展性。

 

(3) VNF

Click -> ClickOS 提供了一个高性能和虚拟化的软件中间盒平台,在该平台上使用软件实现了各种中间盒(包括防火墙,运营商级NAT,负载均衡器等)。

除了ClickOS外,还有许多用于构建和管理VNF的开源和商用平台,这些平台通常作为整个NFV解决方案出现在4.4.2节中。

目前,VNF可以在两种环境中实现,一是VM环境,一个是Docker提供的容器环境。基于VM和容器,VNF实现了许多其他技术(VM 、Container、Container in VM、Clear Container、Unikernel)的发展,这些技术在下图中列出。

 

 

 

References:

[134] M.T. Beck, J.F. Botero, Scalable and coordinated allocation of service function chains, Elsevier Comput. Commun. 102 (1) (2017) 78–88, doi: 10.1016/j. comcom.2016.09.010 .

 


开源平台总结:

(1)openNetVMopenNetVM is a high performance NFV platform based on DPDK and Docker containers. openNetVM provides a flexible framework for deploying network functions and interconnecting them to build service chains.

(2)EmPOWER : EmPOWER is a SDN/NFV framework fo Enterprise WLANs. EmPOWER is an open source project providing a WiFi datapath implementation, a reference Controller and a Python-based SDK.

(3)OpenSDNCore :OpenSDNCore是一个软件环境,用于验证NFV和SDN概念,并在数据中心或基于COTS的基础架构之上实现网络功能。从架构的角度来看,它包括三个部分,都是软件实现的。 第一部分是开放式SDN协调器,它提供ETSI MANO对齐管理和编排功能,即管理VNF实例的安装和生命周期,以及编排VNF构成的网络服务。 最后两部分是基于openflow 1.4的OpenSDNCore交换机和控制器,OpenSDNCore控制器支持基于JSON的北界接口,而不是使用REST API。

(4)OpenStack Mitaka:OpenStack最初是一个云计算的开源项目,旨在提供一个简单但可扩展的统一云计算管理平台。NFV的主要特征首先在OpenStack的第10版(即Juno)中引入,并在稳定版本Mitaka(2017)中得到完全支持。 NFV被提议用大容量商业设备取代传统和专有硬件,以建立灵活的服务建设和提供生态系统。同时,OpenStack打算设计一种基于IaaS的服务模型,该模型允许通过通用硬件自动和快速地进行VNF部署和配置。此外,为了支持大规模VNF部署,OpenStack甚至为设备供应商和服务提供商开发必要的插件和API扩展提供了基础。

(5)HP OpenNFV:HP OpenNFV提供开放的NFV就绪参考架构,简化了从传统网络到基于NFV的网络的过渡。由网络基础设施和NFV管理器两个关键部分组成。前者是作为HP NFV系统实现的,而后者是作为HP NFV指令实现的。 虽然这款HP OpenNFV基于ETSI NFV架构,但它是惠普产品和第三方解决方案的开源软件。 此外,惠普与SDN深度合作,以促进NFV的发展和标准化。 HP的NFV架构声明了两个优点。 首先,它是分层的,以便客户可以逐步添加多个功能。 其次,客户有能力选择他们喜欢的工具和设备供应商,这反映了HP OpenNFV的开放性和灵活性。

(6)OPNFV : OPNFV 的独特定位是将不同SDO,开源社区和商业供应商的工作结合在一起,以提供事实上的标准开源NFV平台。 通过整合来自不同组织的这些作品,OPNFV构建了NFVI和VIM。 这两个组件以及API和其他辅助NFV元素构成了NFV的基本框架。

(6)CloudNFV :CloudNFV是由多家公司(例如,6wind,戴尔和CIMI)提出的整合项目。 CloudNFV利用SDN和云计算技术在多厂商网络环境中实施开放式NFV平台。此外,它还提供与传统服务的向后兼容性。 CloudNFV提供的架构解决方案包含三个部分:虚拟化,NFV编排和NFV管理。虚拟化部分抽象出网络服务,功能和资源。业务流程部分根据所需的VNF顺序和网络资源状态来完成VNF部署和服务编排。当流量通过这些VNF时提供服务,NFV管理控制所有与VNF相关的操作,包括启动,监控和销毁VNF实例等.CloudNFV将管理和编排系统视为应用程序,这与ETSI NFV MANO不同。

(7)华为NFV OpenLab:根据华为的报告,他们已经在NFV开放实验室建立了一个多供应商验证平台。 可变和经典的业务场景。 为了给网络运营商提供可用于NFV网络编程和设计决策的数据,华为打算通过不断的项目集成和实践来构建大数据分析平台。 基于此,华为可以与其他组织和网络运营商合作共同设计NFV解决方案(目前合作组包括VMware和Red Hat等)。

(8)Open Baton NFVO : Open Baton NFVO is an open source project providing a reference implementation of the NFVO based on the ETSI NFV MANO specification. 

In order to execute the NFVO you need to have installed a JVM and RabbitMQ. Those components are typically installed as part of the bootstrap installation scripts provided.

 In addition, you need to have a running and configured Virtualized Infrastructure Manager (VIM). Open Baton provides a plugin for getting started with OpenStack as initial VIM.

 

(9) SVNF: scalable vnf placement algorithm. 仿真实验

(10) CoordVNF : This is a framework that enables researchers to simulate deployment/orchestration algorithms in the context of NFV. It is quite straight forward to implement new strategies for the deployment of VNFs and to compare them to existing approaches (CoordVNF and SVNF). 仿真实验?

(11) Tacker : Tacker is an OpenStack based NFV Orchestrator service with built-in general purpose VNF Manager to deploy and operate Virtual Network Functions (VNFs) on an OpenStack based NFV Platform. It is based on ETSI MANO Architectural Framework and provides a fully functional stack to orchestrate VNFs end-to-end.

(12)OpenMANO:

  • openvim: reference implementation of an NFV VIM (Virtualised Infrastructure Manager). It interfaces with the compute nodes in the NFV Infrastructure and an openflow controller in order to provide computing and networking capabilities and to deploy virtual machines. It offers a northbound interface, based on REST (openvim API), where enhanced cloud services are offered including the creation, deletion and management of images, flavors, instances and networks. The implementation follows the recommendations in NFV-PER001.
  • openmano: reference implementation of an NFV-O (Network Functions Virtualisation Orchestrator). It interfaces with an NFV VIM through its API and offers a northbound interface, based on REST (openmano API), where NFV services are offered including the creation and deletion of VNF templates, VNF instances, network service templates and network service instances.
  • openmano-gui: web GUI to interact with openmano server, through its northbound API, in a friendly way.