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

本文系SDNLAB社区译者计划发布文章,SDNLAB将与国外优质媒体和个人进行长期的内容合作,带来更多的优质技术文章,本文是<<网络功能虚拟化:新兴的虚拟化网络层技术>> 系列文章的第三篇。

本文译者:Andy Yu, 现于湾区一家网络设备供应商担任PM职位,曾先后在AMD,Dell等公司任职多年。

我们在之前的系列里面讨论了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的功能。

EPC/IMS Component

Open source Software

HSS

OpenIMSCore, OpenHSS, Clearwater IMS

P-GW

nwEPC

S-GW

nwEPC

IMS Core

OpenIMS core, Clearwater IMS,

PCRF

FreePCRF

PCEF

OpenIMS

BBERF

–NA–

CDF

OpenCDF

CGF

Open-CGF

ePDG

–NA–

AAA

OpenDPS, OpenBloX

MME

OpenAirINterface

ANDSF

Libdmclient , Funambol DM Server and Client

eNB

Openairinterface

UE

Openairinterface

Network Management

OpenNMS

Service Availability

OpenSAF

SS7, SIGTRAN, MGCP, VoIP

OpenSS7

BI

Pentaho

ERP+CRM

OpenTaps

Enterprise Automation

Ofbiz

Decision Support System

OpenCDS

Billing

jBilling

Service Accounting

OpenPortal

虚拟交换和路由

两个最重要的网络功能是路由和交换功能。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-05

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Android 开发者

Android Jetpack: LiveData 和 Lifecycle 介绍 | 中文教学视频

Android Jetpack 是一系列助力您更容易打造优秀 Android 应用的工具和组件。这些组件能帮助您遵循最佳实践、免除编写繁复的样板代码并简化复杂任...

23010
来自专栏纯洁的微笑

面试为什么需要了解JVM

随着互联网的发展,高并发高可用、快速响应成为软件的必须,而JVM与这些有着密切关联。之前JVM系列好多都是一些由于STW影响到快速响应问题,忽然网站慢一下(抖动...

10710
来自专栏ThoughtWorks

ArchUnit,架构守护神 | 雷达哔哔哔

ArchUnit是一个基于 Java 的测试库,用于检查代码的结构特性,如包和类的依赖关系、注解验证,甚至还能检查代码分层是否一致。我们很喜欢 ArchUnit...

34020
来自专栏程序人生

停下来,歇口气,造轮子

上周四至今,我大概有 50-70% 的时间在造一个轮子,一个叫 merlin 的工具。 事情的起源是这样的 —— 我们内部的一个重要服务,要升级到 elixir...

365160
来自专栏一个会写诗的程序员的博客

20+个很棒的Android开源项目

20+个很棒的Android开源项目 本文摘自文章: 20+ Awesome Open-Source Android Apps To Boost Your D...

14120
来自专栏IT技术精选文摘

《王者荣耀》2亿用户量的背后:产品定位、技术架构、网络方案等

66170
来自专栏SDNLAB

我与SDN的缘分:一名初学者的学习之路与心得

SDN,Software Defined Network,是对传统网络架构的一次革新。经过短短三四个月的学习和实践,我本着授人以渔的理念,辅以我的一些理解,将我...

28840
来自专栏钱塘大数据

【钱塘号专栏】大神级程序员才知道的40个小技巧

1、重构是程序员的主力技能。 2、工作日志能提升脑容量。 3、先用profiler调查,才有脸谈优化。 4、注释贵精不贵多。杜绝大姨妈般的“例注”。漫山遍野的碎...

32470
来自专栏玉树芝兰

如何用正确的姿势发微信群通知?

人数众多的微信群里,你如何管理通知发放进度?想不想使用更高效的办法发通知?本文推荐给你一款小程序,帮助你轻松搞定微信群通知。

21610
来自专栏张善友的专栏

MS MVC框架漩涡中的MonoRail未来

上个星期,Hamilton向微软MVC团队通报了Castle团队从现实应用中获得的所有复杂和不直观的需求,并告知他们如何处理这些事情。另外他还开发了一些集成案例...

20250

扫码关注云+社区

领取腾讯云代金券