查看原文
其他

基于FPGA的下一代电信虚拟网络体系架构,上篇

老石 老石谈芯 2020-12-18

(原文最早于2017年8月发表在老石的个人博客”老石谈芯“,可点击文末的“阅读全文”查看)


目 录

1. 背景介绍

2. 网络功能虚拟化(NFV)的意义

3. 虚拟网络功能(VNF)的有效实现


1

背景介绍

2017年上半年一直在做的项目之一终于迎来了阶段性的成果总结。不久前,英特尔联手HPE(中文名:慧与)以及中国电信北京研究院一起发布了技术白皮书:《为下一代电信基础设施寻找有效的虚拟网络体系架构》,英文全名为:Finding an efficient virtual network function architecture for next-generation telecommunications infrastructure,在系统层面详细阐述了三家公司在推进网络功能虚拟化(NFV)领域所作的最新的工作和取得的成果。此外,今年在上海举办的世界移动大会MWC上,这个项目的原型验证也在HPE的展台进行了公开演示。同时,项目的下一阶段也将顺利开展。



作为这个项目的主要参与者之一,看到这些阶段性的成果不断涌现时,本人自然感到成就感十足,同时也在参与项目的过程中学到了很多知识,结交了很多来自英特尔其他业务部门、以及HPE和中国电信的同事、同行和朋友们。今天的这篇博文,本人将对这部白皮书进行技术层面的解读,将着重讨论FPGA在诸如NFV等虚拟网络架构中的作用和意义。


附上一张五月份去中国电信北京研究院的照片。


2

网络功能虚拟化(NFV)的意义

NFV和虚拟化技术是近几年很火爆的话题,深入探讨NFV的意义大概需要几十篇博客,市面上近几年也慢慢出现了不少书籍单独介绍NFV的相关内容。或许之后我会单独写几篇文章讨论广义上什么是NFV、NFV出现的背景和存在的意义。但本文以及白皮书中针对的是NFV在电信网络中的应用。


电信网络是NFV的一个主要应用场景,它出现的最直接的动因之一就是为了支持指数级的带宽增长。据预测,五年后全球的IP流量将较今日增长超过3倍。在万物互联的今天,尤其是5G、物联网、自动驾驶等技术已经成为各大公司争夺的焦点之时,各种设备和服务都需要电信网络及其数据中心进行处理和支持。然而,传统的电信基础架构和数据中心很难进行有效的扩展,其主要原因有以下两点:


1. 硬件层面:传统电信网络基础架构使用的是各类专用硬件设备,如各类接入设备、各层交换机、路由器、防火墙、QoS等。这样做的问题有很多,例如,不同设备之间的兼容性差、维护升级困难、容易造成供应商垄断从而大幅提高成本、若需要加入新功能则要开发新硬件设备等等。


2. 软件层面:不同设备都需要各自对应的软件进行配置和控制,从而难以在管理员层面进行大范围统一部署和配置,且需要学习来自不同供应商和规格的设备的软件配置方法。若某些网络功能通过软件实现,传统的实现方法中对服务器的有效利用率很低,且无法进行服务的动态迁移,等等。


因此,虚拟化技术 - 更具体而言,网络功能虚拟化NFV技术,逐渐成为各大运营商解决上述问题的有效途径。欧洲电信标准协会(ETSI)关于NFV比较有名的示意图如下所示。


总体而言,和传统方法相比,NFV利用通用的服务器(大多是基于英特尔x86处理器)、通用的存储设备、以及通用的高速以太网交换机,实现传统电信网络基础架构的各种网络功能。具体而言,就是将网络功能在通用服务器中用软件实现,数据使用通用的存储设备存储,网络流量通过通用的网卡和高速交换机进行转发。这样理论上能很好的解决上述硬件层面的问题:使用通用设备而非专用设备,提高了数据中心的可扩展能力,不会被某个供应商制约,反而会通过开放竞争减少硬件采购和部署的成本。


另外,借助虚拟化技术,将网络功能在不同虚拟机中实现,这样理论上能解决软件层面的问题:即某个特定应用不会占用服务器的全部资源,反之,一个服务器可以同时运行多个虚拟机或网络服务。同时,虚拟机在数据中心的扩展和迁移也更加方便,不会造成服务下线或中断。


NFV和另外一项技术:软件定义网络(Software Defined Network - SDN)经常一起出现。它们的一个主要的核心思想就是将网络的控制面和转发面进行分离。这样,所有的数据转发面设备都可以同时被控制、配置、管理,从而避免了管理员需要分别配置每个网络设备的低效情形。


引用一下《中国电信CTNet2025网络架构白皮书》的话:

从更好的适应互联网应用的角度出发,未来网络架构必须要求网络能力接口的开放和标准化,通过软件定义网络技术,能够实现面向业务提供网络资源和能力的调度和定制化,同时为进一步加速网络能力的平台化,还需要提供网络可编程的能力,真正实现网络业务的深度开放。


下图是中国电信在2025年希望实现的目标网络架构:


请注意,在之前的表述中我使用了很多“理论上”怎样怎样,这是由于上面关于NFV的优点很多都是人们美好的想象和愿景。在实际的工程实践中,设计实现有效的NFV架构面临着很多问题。


例如,不同的应用场景中,网络负载的种类五花八门,而很多应用都需要进行线速的处理,如QoS和流量整形(之前的博文介绍过)、VPN、防火墙、网络地址转换、加密解密、实时监控、深度包检测(DPI)等等。即使有DPDK等专用的软件开发库,目前单纯使用软件实现这些网络服务的线速处理,在技术上存在很大困难,且用软件实现的网络功能在性能上很难和专有硬件相比。这样一来,人们会反过来质疑使用NFV的出发点和动机。


同时,鉴于NFV仍处于方案探讨和摸索阶段,很多相关的协议和标准还没有确定,这也在一定程度上使很多企业犹豫是否要投入大量资源去进行前期的探究工作。


因此,如何有效的实现这些虚拟化的网络功能(Virtualized Network Function - VNF),是我们前阶段的主要工作和这篇白皮书主要探讨的问题。


3

虚拟网络功能(VNF)的有效实现

实现虚拟网络功能的“有效性”主要体现在以下几个方面:

  1. VNF必须非常灵活、便于使用;

  2. 容易大规模扩展,不局限于某种应用场景或网络;

  3. 性能方面应该不低于,甚至高于专用硬件。


介于此,白皮书中给出了几个有潜力的发展方向以供参考:

  • 控制面和转发面的分离和独立扩展。

  • 设计并优化、标准化拥有可编程能力的转发面。

在电信网络的应用场景中,NFV的一个典型应用就是虚拟化的宽带远程接入服务vBRAS,即virtual broadband remote access server,又被称为vBNG,即virtual broadband network gateway。在vBRAS中可能包含很多虚拟网络功能,例如远程用户拨入验证服务RADIUS、动态主机设置协议DHCP,以及之前提过的DPI、防火墙、QoS等。


一个重要的发现是,这些网络应用从计算资源的需求上可以分成两类:


一类不需要大量的计算资源,如RADIUS和DHCP同时这类应用很多属于控制平面。因此这类应用很适合直接放在控制平面,并且有很好的纵向和横向的扩展性,也很适合用通用的计算和存储设备进行实现。


另一类应用往往需要很大的计算能力,如流量管理、路由转发、数据包处理等,且通常需要在线速下(如40Gbps、100Gbps或更高)进行处理。这类应用往往属于数据平面。对于数据平面而言,它还需要支持很多种计算量很大的网络功能,这样才能区别于使用专有硬件,符合NFV技术的初衷。综上而言,数据平面应该具备以下两点主要能力:

  • 能线速进行高吞吐量的复杂数据包处理;

  • 同时支持多种网络功能,具有很强的可编程能力。


然而,如果直接使用软件方法实现,这两点功能很难同时满足,这主要是由CPU的性能瓶颈造成的。如果采用其他特制的硬件加速单元,如自研ASIC,又无法灵活的适应不断变化的NFV协议,同时对数据中心的同构性、开发和运维成本等造成过大负担。


因此,我们采用了FPGA作为智能硬件加速平台(见下图),很好的同时解决了处理速度和可编程性两个问题

  • 相比纯软件方法,FPGA在数据包处理上拥有着绝对优势的硬件并行性能,因此被用作硬件加速器使用。

  • 相比于传统的专有硬件设备,FPGA拥有灵活的可编程能力,可以支持各种应用的实现。


在下一篇博文中,我将以vBRAS为例,详细解析其核心思想、FPGA起到的关键作用,和更多技术细节。


参考文献

1. 白皮书《为下一代电信基础设施寻找有效的虚拟网络体系架构》,https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/wp/wp-01273-finding-an-efficient-virtual-network-function-architecture.pdf

2. 中国电信CTNet2025网络架构白皮书,http://www.chinatelecom.com.cn/news/06/bps/bookDownLoad/201610/P020161027347346065464.pdf


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存