网络功能虚拟化系列:NFV的开源软件包

我们在之前的系列里面讨论了OPNFV(网络功能虚拟化的网络平台),主要覆盖了有关虚拟架构和相应的支持NFV(网络功能虚拟化)组织管理。本文将主要介绍组建不同虚拟网络功能的开源解决方案。

一个虚拟化的网络功能( VNF )能够运行于一个NFV基础设施( NFVI ),并由NFV Orchestrator( NFVO )和VNF Manager编排。 VNF除了定义良好的功能行为外,预期可对其它网络功能,VNF Manager,EMS和NFVI 提供接口。

商业软件和服务器目标所取代的网络设施范围可包括防火墙,VPN网关,交换机和路由器。 研究者们甚至认为几乎任何网络功能都可以被虚拟化。NFV在如今的市场焦点包括交换机元件,网络设备,网络服务和应用。NFV的典型网络功能被认为是交换机元件,运营商级NAT和路由器,移动网络(回程和接入)的节点,在家庭/小型办公室路由器功能,流量分析设备,IP多媒体子系统( IMS) ,应用层优化功能和安全功能。

虚拟EPC和IP多媒体系统

3GPP是为移动和融合网络功能的网络架构和规格定义网络功能标准的标准化机构。 LTE是从全球移动通信系统(GSM )演变为被称为UMTS系统的早期的3GPP系统 发展而来的。

最常用于当今的LTE移动网络的体系结构被称为核心分组网演进(EPC ),它是由UE ,演进的通用陆地无线电接入网络( E-UTRAN)和EPC核心组成(LTE- ARCH= UE + EUTRAN + EPC) 。在E-UTRAN包括基站,这是所谓的eNodeB ( eNBs) 。EPC包括四个网络单元,即服务网关( SGW) , PDN网关( PGW) ,以及移动性管理实体(MME) [X1] 。移动网络由大量种类繁多的专用硬件设备组成。

由于NFV和SDN被引进于EPC,上面列出的一些组件正在成为虚拟化过程中,开放的API也正在被虚拟化元件之间引入。在下面的表格中,我们从最小的EPC开始,在随后的行中为最小的EPC添加越来越多的功能。最后一列显示了每个功能的3GPP架构组件:

IP多媒体子系统(IMS)是一个用于提供IP多媒体服务的体系结构框架。

当前存在有相当数量的开源项目来实现EPC架构的各个组件。下表中列出了一些软件。然而,需要理解的是,不存在单一的软件解决方案可以实现完整的EPC。为了实现这一目标,不同的软件必须合作而且所谓的“胶”被发明出来从而使得这些软件可以共同实现EPC的功能。

虚拟交换和路由

两个最重要的网络功能是路由和交换功能。NFV的目标是通过运行于商业硬件或虚拟机上来支持各种标准协议,例如BGP & OSPF。下面,我们将介绍一些用于实现交换和路由功能流行的开源软件。

交换:

Linux网桥:这是一种通过IEEE 802.1D协议基于软件的交换机,自带的Linux发行版作为内核模块。它包括FDB (转发DB) , STP(生成树) ,混杂模式以接收所有数据包过滤和流量整形支持 - 这使得它比通过硬件实现的网桥功能更强大。

OpenVswitch ( OVS ) : OVS可能是目前最流行和广泛使用基于软件的交换机。它支持OpenFlow,并且可作为一个通用的交换机。它包括各种功能,例如asVLAN标记, VXLAN ,GRE ,粘接(bonding),基于流的转发(flow based forwarding),用户空间的控制台(user space control plane)等。

Lagopus:这是另外一种兼容OpenFlow 1.3的软件交换机。类似OVS 一般,它也与Intel DPDK非常匹配。,他们在他们的路线图中计划集成其他控制台方案,如Quagga和GoBGP ,对此我相信会非常有利于开放的各种用户解决方案。

Vale/Netmap:类似于Linux网桥和OVS,Vale连接了物理或虚拟网络接口。然而,较之其他软件的交换机,它拥有更高性能(高吞吐量和低CPU使用率)和可扩展性。更好的性能是通过Netmap的API来实现的,事实上,Vale 是作为Netmap分发(distribution)的一部分提供的。

路由:

Quagga:Quagga是个拥有许多小型后台进程的集合,每一个后台进程都有一个特定的任务。这个任务可能是运行一个OSPF或BGP等路由协议。Zebra后台进程负责与内核进行交互,并提供了一个简单的API (称为Zserv )供其他后台进程使用,所以它们并不需要直接调用内核。其他的后台进程运行各自的协议。用户可以配置Quagga,使所有这些后台进程从同一个位置查看它们的配置文件,或者单独配置每个后台进程。

BIRD:BIRD是一个由布拉格查理大学数学和物理学院教授们开发的项目。目前,它由CZ.NIC实验室开发和支持。BIRD项目旨在开发一个功能齐全的动态IP路由程序,主要是针对于(但不限于)Linux , FreeBSD和其他类UNIX系统和GNU通用公共许可证下发布的系统。它同时支持 IPv4和IPv6 (需要使用-enable - IPv6来进行配置)的, 多种路由表BGP ,RIP,OSPF ,静态路由及IPv6路由器公告等。

VYoS:VyOS是一款基于Linux的网络操作系统,它提供基于软件的路由功能,包括各种OSPF,BGP路由协议,集成了防火墙和VPN的支持功能。 VyOS其实是Vyatta(被博科通讯Brocade Communications收购)的一个分支。

虚拟商网元(个人网络设备)

研究人员认为,虽然核心路由器的虚拟化是不可行的,但是至少在不久的将来,由于高性能(吞吐量)的需求,骨干网边缘(PE)路由器的虚拟化将是一个更可行的选择。

虚拟专用网络的服务,如L3 VPN的IP (每个PE设备的作用就像一组虚拟路由器) ,L2 VPN, EVPN和伪线(pseudowires)在被当虚拟化时,这些功能会体现出灵活性和可扩展性,这将是对供应商的一个主要收益之处,许多供应商已经考虑通过执行在云中执行相同的虚拟化来实现例如PE的功能。

与PE路由器相类似,宽带远程接入服务器(B -RAS )是供应商网络将各种互联网流量来源,如DSL ,有线网络,无线宽带网络和以太网等,而汇聚于一个单一由从DSLAM设备出入的网络。它可以是一个简单的路由器从核心到客户端转发数据包(反之亦然),或一个复杂的路由器(通过每个用户)实现IP政策,Qos,包处理(packet manipulation),限制器等虚拟化功能. BRAS的虚拟化功能也被证明 无论是在成本和灵活性/可扩展性方面 都有益于 用于网络服务供应商。

开源个人网络设备

之前提到的大多数路由类开源软件如路由,如Quagga,VyOS和BIRD,都可以用来实现众多PE的功能。这些例如IPtables(netfilter)和Radius-server(freeRADIUS) 之类的软件都属于标准Linux发行版的一部分,可分别用于虚拟防火墙和虚拟AAA 。软件snort在一些NFV应用部署中被用于虚拟入侵检测系统(virtual IDS)。

此外,其他的软件如MPLS-Linux和xl2tp-daemon也可用于虚拟化的PE的功能。最近,AT&T和爱立信共同通过OpenDaylight控制器提出了基于SDN的L3VPN 。

虚拟CPE

客户端设备或CPE是指那些通常位于企业或住宅宽带用户端的网络终端设备,用于与电信服务运营商网络对接服务。通常情况下,服务运营商可以通过从不同的硬件厂商,企业用户和住宅用户来配置和管理客户端设备。

如果不使用虚拟化的CPE,每当任何新技术的应用,增加新的服务,或对安全性,保密性和计量功能的升级都可能会显著增加服务运营商的成本。

通过虚拟的CPE,大多数的CPE功能被拉出客户端并移入运营商的网络(可能是在其数据中心) 。这样产生了一个“简化”的CPE ,CPE充当了连接到服务运营商网络的简单Layer-2转发设备。通常情况下,如DHCP ,防火墙,NAT,路由,VPN等服务通过在运营商的数据中心作为一个虚拟机( VM)实例中运行的虚拟网络功能( VNFs )提供。

开源vCPE :

网络服务,如DHCP ,防火墙,NAT, DNS( vDHCP , VFW , vNAT , VDNS , ) ,都可以通过开源实现,并且可以作为许多标准的Linux发行版的一部分发行。例如, DNS和DHCP可以用dnsmasq来部署。而用于实现NAT和防火墙的IPtables,一直没有有针对于NFV 和致力于构建虚拟客户端设备的独立的开源项目,例如客户路由器,虚拟机顶盒和虚拟的家庭路由器。

虚拟访问网元

驻留在混合光纤的DSL “远程”节点,例如FTTcab和FTTdp ,通常位于街道或建筑物接入网络的功能,正逐渐成为虚拟化的热点。出于经济上的考量,这些节点应尽量紧凑,具有非常低的功率消耗和非常低的维护成本。对这些远程节点的简化可以通过对某些功能如 OLT , DSLAM ,ONU, ONT , MDU和DPU等的虚拟化,把复杂的工作转移到虚拟化环境来达到经济上的可行性。目前尽管还没有任何开源软件来实现这些用于虚拟化的网络功能,但一些大型电信运营商,如AT&T,正在朝着虚拟化这些功能的方向努力,我们期望他们在不久的将来也许会开放源码,但愿这个希望能够早日成为现实!

原文发布于微信公众号 - SDNLAB(SDNLAB)

原文发表时间:2016-06-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏王亚昌的专栏

如何对产品运营情况进行监控

http://groups.google.com/group/dev4server/browse_thread/thread/8a86bb49a561f312

1302
来自专栏喔家ArchiSelf

面向IoT的协议选择思考

对于使用传感器和保持连接性的IoT系统而言,如何使用这些元素和多种互联网技术相结合呢?

3986
来自专栏SDNLAB

一个白牌厂商视角:极简交换机NOS演进史

传统的交换机操作系统(简称NOS)对大众是一个相对封闭的领域。随着白牌交换机的高速增长,NOS纷纷开源,NOS的开发者也从只有设备商工程师,扩大到互联网,运营商...

4034
来自专栏开源项目

码云周刊 | 面试之前,或许该高效率地学点干货!

一周热门资讯回顾 1、程序员多大年纪算高龄,届时该何去何从? ? 随着年龄的增长,程序员会相对难以保持技能更新。许多人宁愿留在自己的舒适区,不冒任何风险。即使...

3036
来自专栏IT派

【大数据分析必备】超全国内常用API接口汇总

下面列举了100多个国内常用API接口,并按照 笔记、出行、词典、电商、地图、电影、即时通讯、开发者网站、快递查询、旅游、社交、视频、天气、团队协作、图片与图像...

2.8K0
来自专栏贾老师の博客

《帝国时代》中的网络编程

1644
来自专栏花叔的专栏

微震,你感受到了么?

这3个比较美好的变动很好理解,花叔就不分析了,花叔今天说说一个不大美好的、但大家又没感知到的事情,因为它给小程序生态带来了一丢丢震荡。

4019
来自专栏java一日一条

对码农而言什么样的代码才能叫做好代码?

好的代码,就像是好的笑话——无需解释就能让别人明白。如果你的代码能够做到不解自明,在大多数时候,你根本无需为其配备说明文档。

501
来自专栏13blog.site

Spring+SpringMVC+MyBatis+easyUI整合进阶篇(七)一次线上Mysql数据库崩溃事故的记录

作者:13 GitHub:https://github.com/ZHENFENG13 版权声明:本文为原创文章,未经允许不得转载。 文章简介 工作这几...

3764
来自专栏纯洁的微笑

于码农而言什么样的代码才能叫做好代码?

好的代码,就像是一辆配备了优秀音响和杯架的汽车,这辆车在行驶到最高速度的时候,你听不到噪音,也不用担心水会洒出来。在它出现故障的时候,任何一名修理工都可以使用最...

1113

扫码关注云+社区

领取腾讯云代金券