NFV技术在未来网络试验设施及运营商网络中的应用
2021-02-02谭航关洪涛
谭航 关洪涛
(1.江苏省未来网络创新研究院,南京 211100;2.中国科学院计算技术研究所,北京 100190)
0 引言
2012年10月,欧洲电信标准化协会(European Telecommunications Standards Institute,ETSI)在“SDN和OpenFlow世界大会”上发布了白皮书“Network Functions Virtualization - An Introduction,Benefits,Enablers,Challenges & Call for Action”[1],标志着网络功能虚拟化技术NFV的诞生。
作为一项新的网络技术,NFV的目标是解决传统电信网络由于部署大量不同类型的专用硬件设备所带来的部署维护成本高、功能迭代速度慢、难于为客户提供动态服务等问题,希望通过部署通用的计算、存储、网络设备构建标准化硬件资源池来实现网络功能与底层基础设施的解耦。
为推动NFV技术发展,2012年11月,7家世界领先的电信网络运营商在ETSI中发起成立了专门的NFV工作组ETSI ISG NFV。随着技术发展,ETSI ISG NFV工作组也不断壮大,当前工作组已有79个会员单位和42个参与单位,其中不仅包括了AT&T、中国电信等电信网络运营商,同时也包括了华为、中兴、诺基亚等设备制造商。
在过去的8年,ETSI ISG NFV工作组以两年为一个阶段始终推进着NFV技术进步。其中,第一阶段(2013—2014年)重点促进工业界形成对NFV基本理念的共识;第二阶段(2015—2016年)专注形成支持端到端设备及服务互联的规格标准;第三阶段(2017—2018年)致力于充实NFV体系架构以满足大规模部署及运维的需求。当前第四阶段工作正在进行中,大量新技术被引入NFV架构以实现多方面提升,其中包括轻量化虚拟容器技术、针对5G的增强技术等。伴随各个阶段工作,工作组同步推进NFV技术标准化进步,分别在2013年、2014年和2017年对NFV白皮书进行了版本更新,与此同时形成了完整的NFV技术标准体系,发布了大量的标准化文档。
在未来网络试验设施的路由设备研发和网络建设中,引入NFV技术,研发了设施核心设备——可编程虚拟路由器,并实现了试验设施在满足试验多样性、组网灵活性等多方面需求的目标。同时,还研制了一套服务于运营商网络的NFV平台系统NFCloud,为运营商全省及更大范围的政企客户提供了多种虚拟化网络功能服务。
1 NFV在未来网络试验设施中的应用
1.1 试验设施对NFV的需求
未来网络试验设施是我国网络技术领域的第一项国家重大科技基础设施项目。该项目于2012年被列入国家重大科技基础设施建设中长期规划(2012—2030年),并于2015年经国家发展和改革委员会正式批复立项。项目目标是建设一个覆盖全国的创新试验网络,为各种网络体系结构、协议、应用创新提供一个真实的试验环境,解决新的网络技术从提出到应用过程中缺乏大规模试验验证条件的现实问题,以此推动网络技术快速进步。根据其建设目标,未来网络试验设施具备以下功能诉求。
1.1.1 支持多用户并行
作为一项国家级重大科技基础设施,未来网络试验设施需要支持各高校、科研院所、企事业单位的科学试验研究。具备并行化的试验承载能力是一项重要的设计目标。如图1所示,试验设施需要同时支持多试验用户并行开展大规模网络试验,并保证试验业务间的相互隔离,不同试验用户的试验部署相互独立,流量互不影响,性能有所保障,由此保证试验结果的真实有效。
1.1.2 具备编程开放性
为了支持各类型网络科学试验,试验设施应具备良好的编程开放性。这体现在它应该支持标准的TCP/IP网络协议栈,支持各种常用的网络功能,支持主流的网络应用;同时,支持试验用户根据自身需求对协议栈做出各种修改,增加新型的网络功能和网络应用;此外,为了满足网络体系架构层面的创新,试验设施还应该支持非TCP/IP协议的新型网络协议架构。
1.1.3 支持灵活动态组网
为了实现试验设施资源的充分利用,试验用户的科学试验应具有时效性。当用户需要开展试验时,试验设施分配资源给用户,支持试验的部署与运行。这种方式决定了试验设施需具备动态加载网元的能力。此外,试验网元的连结关系需要根据用户试验的具体要求动态调整,这决定了试验网元在实体资源上的部署和连结需要支持动态建立与删除。
根据上述功能需求,未来网络试验设施本质上是一个由网络功能虚拟化技术构建的新型网络。
(1)支持多用户并行需要通过虚拟化技术实现底层资源与用户试验解耦。试验设施通过虚拟化技术将底层网络、计算、存储等各类型硬件资源抽象化。当用户开始一项科学试验时,试验设施为用户提供抽象的资源供试验应用。当试验结束时用户释放资源,试验设施完成对资源的回收。由此,实现试验设施资源复用和对大规模并行试验的支持。
(2)编程开放性支持试验用户创建各类型虚拟化网络功能单元VNF。由于试验设施主要支持的是网络科学试验,因此试验用户在开展一项科学试验的过程中通常需要创建多个网元节点,其中包括了基础路由交换节点、网络安全节点、网络调度控制节点、网络终端节点等。通常用户的一项科学试验包含了上述多个类型中的一类或多类网元。而用户创建的这些网元实际上就是一些虚拟化网络功能单元VNF。与ETSI定义的虚拟化网络功能单元略有不同的是试验设施中用户创建的VNF带有更强的创新性,而不拘泥于传统的电信或互联网业务。例如为了进行“命名数据网络(Named Data Network,NDN)”[2]这种新型网络体系结构试验,用户可能会创建多个NDN交换节点,而由于NDN网络架构本身不依赖TCP/IP技术存在,因此NDN交换节点也不属于传统TCP/IP网元的一类。
(3)试验用户的动态组网与建立虚拟化服务链的过程本质相同。网络科学试验的一个重要需求就是可以灵活动态的构建试验网络拓扑。在不同的科学试验中用户对于网络拓扑的需要是完全不同的。当用户进行广播通信试验时,通常需要创建一个类星型拓扑,而当用户进行网络连通性试验时通常需要创建一个环状或链状拓扑。无论用户创建的是何种类型拓扑,其本质上都是通过虚拟链路将虚拟化网络功能单元连结起来。这与ETSI定义的NFV网络中的服务链无论从实现方式还是实现结果上都是相同的。两者的差异体现在试验设施中的虚拟化功能服务链从拓扑结构上会呈现更加多样性,而ETSI定义的NFV网络中服务链的结构会更有规律。这主要由试验设施中试验类型的多样性决定。
1.2 NFV在试验设施核心设备——可编程虚拟路由器上的引入
自2012年未来网络试验设施项目列入规划以来,其核心技术一直在不断迭代进步。伴随着ETSI对NFV技术的推动,未来网络试验设施也引入了ETSI架构中的一些先进理念。但由于应用场景的特殊性,未来网络试验设施始终保持着不同于一般商用网络的诸多特点。而这些功能的实现则依托于试验设施核心设备——可编程虚拟路由器。
1.2.1 基于服务器/FPGA架构的PEARL系统
第一代可编程虚拟路由器由中国科学院计算技术研究所在2010年研制,命名为PEARL(Programmable Router Platform)[3]。如图2所示,该系统的设计目标是实现一个新型的路由器设备,支持在单一物理设备上运行多个虚拟路由器实例。多个虚拟路由器实例共享物理路由器的各种硬件资源,其中包括链路端口资源、路由查找资源、转发交换资源等。多个虚拟路由器相互独立,各自拥有自己的控制面和数据面。从上述功能定义可以看出,每一个虚拟路由器实例实际上就是一个虚拟化网络功能单元VNF,但彼时VNF设计的原型还是基于通用路由器架构,虽然该系统支持更多类型的VNF,但并没有将此作为功能的重点。
基于第一代可编程虚拟路由器组建的网络已经具备了在一个物理网络上生成多个虚拟网络平面,通过不同平面支持开展不同的网络科学试验的能力。试验用户要开展一项网络试验需要首先选定所需要的物理设备节点,在每个选定节点上生成一个属于自己的虚拟路由器实例,并通过虚拟链路将这些虚拟路由器实例连结成网络。由于在一个物理路由器上多个虚拟路由器实例共享底层链路端口,因此系统实现上采用了重定义VLAN ID作为不同虚拟路由器实例流量的标识。基于这一方式实现了在物理链路上通过VLAN ID划分虚拟链路。
将可编程虚拟路由器与传统路由器对比可以发现,对虚拟化的支持和对编程开放性的支持是新设备的两大创新特点。此外,作为一个网络路由交换设备,性能依然是其不可或缺的要素。因此,在设计实现过程中围绕着如何支持虚拟化和可编程的同时保持高性能。在具体实现上采用了通用服务器配合FPGA网络加速卡的方式。其中服务器CPU主要负责控制面的处理,FPGA主要负责数据面的处理。服务器在Linux操作系统之上运行KvM虚拟机,每个虚拟路由器的控制面程序运行在不同的虚拟机内。网络数据包经FPGA卡上的网口进入FPGA芯片,芯片内通过不同的流表规则处理不同虚拟路由器流量,对于需要上送的协议包通过虚拟机网口送达不同虚拟路由器控制面。
1.2.2 基于ATCA架构的PEARL2系统
第一代虚拟路由器较好的实现了设计目标,但存在以下两个问题:第一,服务器架构的系统整体性能扩展性受限于单服务器处理能力;第二,FPGA卡在镜像下载后很难进行更灵活的编程处理限制了系统的编程开放性。针对上述问题,江苏省未来网络创新研究院联合中科院计算所共同研制了第二代可编程虚拟路由器PEARL2。
如图3所示,为解决性能扩展性问题,PEARL2采用了分布式架构。硬件基础依托ATCA架构。通过背板和交换板卡构建的交换结构实现接近Tbit级大规模数据交换。在一个机架内配置一块或多块X86刀片板卡负责运行虚拟路由器的控制平面,配置多片网络处理刀片板卡负责虚拟路由器数据平面处理。数据面板卡间的数据交换以及数据面板卡与控制面板卡间的数据交换均通过背板、交换板构成的交换结构。上述结构有效提升了系统的性能可扩展性。
针对FPGA板卡编程开放性局限问题,PEARL2数据面板卡采用了当时流行的众核处理器作为核心处理器件。系统实现过程分别适配了Cavium和Tilera的众核处理器。作为专门针对网络数据流处理设计的处理器,众核处理器相比通用X86处理器在处理网络流量业务时具有更好的性能;另一方面相比传统NP处理器微码编程方式,众核处理器采用标准C语言编程又具有更好的易用性。然而,即便采用了标准C语言作为编程语言,但众核处理器在编程模式及使用方法上仍然同X86处理器存在巨大的不同。例如,Tilera处理器中的Mpipe单元作为网络处理的核心组件在使用过程中需要经过大量的专门学习。这对于为网络试验用户提供一个简单高效的开放编程环境来说是不适合的。因此,采用众核处理器作为网络数据面核心器件的PEARL2系统虽然相比采用FPGA作为核心器件的PEARL系统具有了更强的编程开放性,但编程的易用性和通用性依然严重受限。
1.2.3 基于分布式X86架构的PEARL3
针对PEARL2系统编程通用性差的问题,自2014年起可编程虚拟路由器的研发回归到以X86作为数据面核心处理单元的路线。促使这一改变的另一个原因是Intel在DPDK和SRIOV等加速技术上的进步使得通用X86处理器在优化条件下可以具备与众核处理器相近的处理性能,而其良好的编程通用性却是后者无法比拟的。
ATCA架构的系统具备良好的集成度和较高的性能水平,但如果打破机架约束,采用全分布式X86单元辅以通用交换单元可以在取得与ATCA架构系统逻辑上等价的同时获得更好的规模扩展性。因此在没有物理集成度约束的场景下,全分布式X86服务器配合通用交换机的实现方式成为了一个更具扩展性的解决方案。
恰逢CloudStack、OpenStack等云平台技术普及,其在资源管理方面的全面能力适用于可编程虚拟路由器中的虚拟资源管理,因此PEARL3系统采用了云平台系统的一些技术作为实现基础,重点针对网络能力研发,运用软件定义网络(Software Defined Network,SDN)技术以实现系统内部数据流调度灵活性和流处理性能的提升[4]。
至此,可编程虚拟路由器在实现层面与ETSI定义的NFV系统也更为接近,均采用通用X86计算单元结合通用交换单元方式实现,通过虚拟化技术实现对VNF的承载。相比之下,可编程虚拟路由器在流量调度方式上具有更大的开放性,这主要为了满足试验设施对于不拘一格的用户试验拓扑的支持。
1.3 未来网络试验设施的组网部署
2019年起未来网络试验设施正式开始建设。如图4所示,采用可编程虚拟路由器构建的NFV网络目标建设覆盖全国40个城市共计40个主干节点和30个边缘网络。主干网络拓扑结构分为3个层次,即超级核心节点、一级节点、二级节点。5个城市作为超级核心节点(南京、北京、广州、成都、武汉),8个城市作为一级节点,27个城市作为二级节点。
超级核心节点各部署1台可编程虚拟路由器。超级核心节点之间采用100 G链路Fullmesh互联。一级节点各部署1台可编程虚拟路由器,分别就近通过100 G链路双归到两台超级核心。二级节点各部署1台可编程虚拟路由器,采用单10 G链路连接到临近的超级核心节点、一级节点或二级节点,单链路无双归。
为了进一步提升单节点的数据吞吐能力,每台可编程虚拟路由器又分为两个部分,其中一部分专注于高速数据包的交换转发,另一部分则专注于网络功能虚拟化的实现,由此实现试验设施兼具高速数据交换能力和灵活的虚拟化网络服务能力。通过虚拟化技术,试验设施可以同时支持最多4千个网络试验,单个节点设备也可以支持128个试验VNF并行运行。
2 试验设施NFV技术在运营商网络的应用
基于可编程虚拟路由器构建的试验设施网络实现了一个完整的虚拟化网络,特别是通过对底层虚拟交换单元的优化及采用软件定义的流调度机制实现了灵活高效的VNF服务能力,这一点在流量类VNF应用上的优势尤为突出。因此,江苏省未来网络创新研究院针对性地研制了一套服务于运营商网络的NFV平台系统NFCloud,并在江苏电信等运营商网络部署运行。NFCloud通过在运营商汇聚网络部署一套平台系统可以为全省甚至更大范围的政企客户提供多种虚拟化网络功能服务。
相比ETSI定义的NFV系统,NFCloud由于其在网络层面的深度优化因此在提供诸如防火墙、流量监控、上网行为管理等业务时具有良好的表现。上述业务在传统网络中通常以在用户侧部署专用硬件设备方式实现,存在部署维护成本高、升级不便、灵活性低、故障率高等缺陷。采用NFCloud系统后,上述用户的基本及扩展需求均可以全部由运营商通过虚拟化服务方式灵活实现。
作为非传统业务,上述网络增值服务能够丰富运营商在带宽接入之外的服务类型,同时虚拟化的服务方式进一步实现了业务模式的创新,提高了服务品质,也方便服务内容的扩充。针对运营商接入的政企用户,一些繁杂的组网建设工作可以交托运营商完成,不仅有效降低了用户建维成本,也降低了网络故障的可能性。运营商以虚拟化方式实现上述功能服务不仅可以通过各种热备、伸缩等技术实现更好的服务保证,而且软件化的功能实现方式也更易于服务功能的升级。此外,从整体建设角度看,通过统一虚拟化服务平台能够更好的实现资源的集中调配和按需建设,实现更高效的资源利用率,进而降低总体建设成本。
不同于未来网络试验设施建设一个全新的网络,在运营商现网部署NFV系统面临的最大挑战在于如何与现网设备实现协同。特别是针对流量类VNF如何实现用户流量到虚拟化服务平台牵引。为此,NFCloud实现了一套上下行非对称的流量牵引及路由机制,联合采用VxLAN、NAT等技术实现上下行流量到NFCloud服务平台的导入与导出(见图5)[5]。
3 结束语
网络功能虚拟化技术相比传统组网技术所具备的集约性、高效性决定了其必然成为一个发展的方向。特别是云计算技术的普及,云平台内生的网络功能虚拟化系统更将成为一个主流方向。网络、计算、存储融合的一体化网络系统将取代传统云、网、端分立的局面。
未来网络试验设施在建设过程中还将不断迭代升级,其虚拟化技术目标将向云网端超融合方向发展,这不仅是支持创新型网络试验的需要,也是网络技术的发展方向。同时,针对于运营商现网,NFV技术体现出的优势已经愈发明显,虽然当前网络的SDN化程度不高在一定程度上限制了NFV的更进一步普及,但随着基础网络技术开放性的提升,NFV的普及率还将愈发提高。