穆博+马军锋+徐骁麟
摘要:构建了系统性评估软件定义网络(SDN)/网络功能虚拟化(NFV)技术能力的三级测试方法体系:接口级别的测试方法、网元级别的测试方法和平台级别的测试方法。结合技术发展的具体特点,该体系分级别抽象了测试工作需要开展的测试方向,首次形成了相应的测试评估指标。该测试方法体系将为进一步的测试研究工作提供重要的参考。
关键词: 通信技术(CT);信息技术(IT);SDN;NFV
当前,软件定义网络(SDN)/网络功能虚拟化(NFV)技术已经进入到商业化部署的发展阶段。其中,平台化集成发展、场景化差异发展和开源化创新发展成为现阶段技术发展的主要特征。
随着商业化发展的不断深入,技术发展前期相对缺失的规范化和标准化测试工作越来越成为制约业界发展的重要瓶颈。当前,SDN/NFV技术依据不同的社区生态初步形成了相对孤立的“事实标准体系”,这对于开展测试方法的研究形成了障碍。
1 测试方法体系的总体设计
1.1 两大测试维度
从重构网络架构的角度出发(如图1[1]所示),当前软件定义网络(SDN)/网络功能虚拟化(NFV)基础技术架构大体上可以抽象为3个功能层级:基础设施层、业务控制层和管理编排层。基础设施层要求转发面网元设备具备网络可编程能力,通过业务控制层的南向接口开放网络设备的控制功能;业务控制层要求能够管控基础设施,形成全局视角,借助业务控制层的北向接口向管理编配层提供网络服务能力;管理编排层需要按照具体的网络业务需求调度网络资源,落实应用部署的要求[1]。作为首要测试对象,测试三层基础技术架构的功能/性能能力是开展SDN/NFV测试工作的重要内容。
除基础技术架构之外,与信息技术(IT)手段相融合的统一系统平台能力(如图2所示)也是开展SDN/NFV测试工作需要考虑的另一个重要维度。随着虚拟化技术的不断成熟,SDN/NFV技术越来越多的与分布式存储技术、并行计算技术等IT技术交织协作,催生出融合型技术平台。面对这样的被测对象,传统单一的网络能力测试方法已经难以满足系统评估和分析的需要,开展SDN/NFV的测试工作亟需建立新的系统级测试方法。
1.2 测试视角与测试思路
从测试视角出发,SDN/NFV的测试工作可以分为开发测试和验收测试两大方向:开发测试是项目研发的重要组成部分,通常借助白盒测试的方法测试内部结构;验收测试专注于具体的技术性能指标能否适配外部应用需求,大多数采用黑盒测试的方法测试性能。对比紧耦合于项目研发方法的开发测试,验收测试专注于系统接口能力和整体功能/性能指标,抽象化了不同的技术实现架构和研发细节,更容易形成统一的测试方法体系,这对于指导产业发展,推动商业化进程有着更加重大的意义。
在SDN/NFV基础技术架构下开展验收测试,首先应当从接口能力入手,这些网络接口的功能/性能参数是评测网络能力最基本的技术指标;在此基础上扩展测试范围,应当围绕网络接口连接的网元设备,特别是位于不同功能层级的网元实体展开测试,这些网元实体是完整实现具体网络能力的最小单元。考虑到不同应用场景下SDN/NFV技术体系存在的差异化和平台化特点,有必要结合场景部署的技术要求形成系统/平台级别的评测方法。整体上看:按照从聚焦局部到扩展全局的测试思路,应当建立接口级别、网元级别和平台级别的三级评测方法体系(如图3所示),有针对性地开展测试评估工作。
2 接口级别的测试方法分析
接口能力主要体现了系统与系统之间或系统内部子系统之间的交互性,其测试的重点在于检查数据的交互、传递和控制,以及系统间的逻辑关系。在SDN/NFV基础技术架构下,业务控制层的南北向接口分别连接了基础设施层和管理编排层,功能上“屏蔽了网络技术细节,提供了网络抽象能力”,是整体网络架构中最重要的技术耦合点。对南北向接口开展测试工作,需要结合具体接口的技术发展特点,重点关注3个方面的性能指标:协议/功能一致性、互操作性和高性能。
2.1 南向接口能力测试
南向接口连通了基础设施层和业务控制层,是实现控制与转发相分离,软硬件解耦的重要接口。自SDN/NFV技术提出以来,南向接口得到了开放网络基金(ONF)、国际互联网工程任务组(IETF)等开源社区和技术标准组织的大力支持,形成了以OpenFlow、Netconf、路径计算元件通信协议(PCEP)、边界网关协议传递域内链路状态(BGP-LS)等协议为代表的技术标准体系。考虑到不同设备厂商在基础设施层的设计和实现方面存在较大的差异。
(1)协议一致性。
协议一致性测试检验南向接口能力与标准文档之间的一致性程度,是保障网元设备互联互通的基础型测试工作,具体的测试内容涉及3个方面:信道建立/断开、协议报文交互、健壮性。
·信道建立/断开:测试能否按照标准指定的传输控制协议(TCP)/用户数据报协议(UDP)端口号,完成报文交互,建立/断开通信信道。
·协议报文交互:测试能否按照标准定义的报文格式,完成相应的报文交互,实现协议设定的网络功能。
·健壮性:测试能否按照标准预设的错误处理方法,完成相应的报文交互,正确应答/处理错误信息。
(2)高性能。
高性能测试检验南向接口在高业务负载条件下的网络接口能力,主要的测试指标有:业务处理能力、缓存能力。
·业务处理能力:测试按照标准指定的业务处理方法,南向接口能够完成的最大业务吞吐量。
·缓存能力:测试按照标准指定的业务报文格式,南向接口设置的最大缓存长度。
2.2 北向接口能力测试
北向接口连通了业务控制层和管理编排层,功能上实现了业務编排需求和全局化网络能力之间的映射。接口能力的主要表现方式为RESTful 应用程序编程接口(API),技术上实现了协议交互报文与HTTP方法之间的解耦,提高了接口访问的可用性和执行效率。考虑到主流设备厂商在业务控制层尚未形成统一的网络信息模型,当前,在测试方面,业界主要关注北向接口的功能一致性、互操作性和高性能3方面指标。
(1)功能一致性。
功能一致性测试检验北向接口能力与业务编排需求之间的一致性程度。在尚未形成统一的网络信息模型之前,功能一致性测试是开展互操作性测试工作的唯一前提,具体的测试内容涉及两个方面:资源管理能力和业务编排能力。
·资源管理能力:测试能否全局化管理网络资源,搜集网元、带宽、链路、拓扑等网络信息,并通过HTTP报文交互完成信息传递。
·业务编排能力:测试能否实现业务编排需求与全局化网络能力之间的映射,通过HTTP报文交互调度网络资源,落实业务编排指令。
(2)互操作性。
互操作性测试检验不同网元设备之间的互操作能力,是解除厂商锁定,建设良性市场的关键性测试工作。以功能一致性测试为基础的互操作性测试,具体测试内容涉及:信道建立/断开、功能一致性、健壮性。
·信道建立/断开:测试能否建立异厂商设备的HTTP连接,完成相应的报文交互,建立/断开通信信道。
·功能一致性:测试能否在异厂商设备互联的条件下,进行资源管理能力测试和业务编排能力测试。
·健壮性:测试能否在异厂商设备互联的条件下,完成基本的错误识别、告警和日志记录能力。
(3)高性能。
高性能测试检验北向接口在高业务负载条件下的网络接口能力,主要测试指标有:HTTP信道事务吞吐量、业务处理能力。
·HTTP信道事务吞吐量:测试HTTP信道在进行GET、PUT、POST、DELETE操作时的事务吞吐量。
·业务处理能力:测试不同业务负载的最大吞吐量,包括资源管理类报文负载和业务编排类报文负载。
3 网元级别的测试方法分析
3.1 基础设施层能力测试
基础设施层主要负责形成网络转发面,搜集网元节点的状态信息,通过南向接口上传给业务控制层。典型的基础设施层设备是交换机。按照SDN/NFV技术关于“控制与转发相分离”和“软件与硬件相解耦”的技术要求,白盒化和软件化是SDN/NFV交换机发展的重要特点。考虑到主流厂商的交换设备在能力开放方面存在差异,在测试方面,规格指标和性能指标是当前交换机测试的主要关注点。
(1)规格指标。
规格指标测试检验交换机的功能能力能否达到设备提供商的规格指标,是交换机质量保证的传统测试方法。对于SDN/NFV交换设备,具体的测试内容涉及两个方面:可编程能力和表容量能力。
·可编程能力:测试交换机通过南向接口处理控制指令流(如OpenFlow流表报文)的能力规格,重点关注交换机最大表项宽度(如OpenFlowL2/L3流表位宽和访问控制列表(ACL)位宽)。
·表容量能力:测试交换机能够存储的最大流表数目(如OpenFlow L2流表容量和L3流表容量)。
(2)性能指标。
性能指标测试检验交换机能够达到的最大业务处理能力,是另一种交换机质量比较的传统测试方法。对于SDN/NFV交换设备,具体的测试内容涉及两个方面:可编程性能和数据转发能力。
·可编程性能:测试交换机通过南向接口处理控制指令流(如OpenFlow流表报文、Netconf配置参数)的性能参数,重点关注交换机的流表/配置建立速度。
·数据转发能力:测试交换机的数据通道能否按照RFC 2544的规范要求,进行线性转发,同时,测试交换机在数据通道的缓存长度。
3.2 业务控制层能力测试
业务控制层是SDN/NFV基础技术架构中最重要的一层。通过综合处理南向接口接收到的网络状态信息,业务控制层形成全局性的网络能力视图,向管理编排层提供系统化的网络服务。典型的业务控制层设备是控制器。考虑到实际组网环境中控制器需要管理不同规模的基础设施层,在测试方面,单实例能力和集群能力是当前控制器测试的两大主要关注点。
(1)单实例能力。
单实例控制器负责管控小范围内的基础设施资源,其功能能力是业务控制层最小的功能集合。单实例控制器主要包括三大通用模块(如图4所示):网络资源管理模块、流编程模块和第三方集成模块,具体的测试内容围绕这三大功能模块展开。
·网络资源管理:测试单实例控制器管理基础设施资源的能力,具体包括网元、带宽、链路、拓扑等网络资源的管理上限、南向接口的信道连接数量等资源管理能力。
·流编程:测试单实例控制器的网络编程能力,重点关注流表(OpenFlow协议为例)或者配置(Netconf协议为例)的编程能力。
·第三方集成:测试单实例控制器能否集成到第三方平台,重点关注单实例控制器能力能否整合到平台能力当中。
(2)集群能力。
控制器集群负责管控更大范围的基础设施资源,聚焦于不同集群规模条件下的控制器能力,具体的测试内容包括:集群初始化能力测试和单实例能力测试指标的集群正交。
·集群初始化能力:测试控制器集群在初始化阶段的处理能力,重点关注控制器集群的主被选举时延和角色宣告时延。
·单实例能力测试指标的集群正交:在不同的集群规模条件下(如拓扑结构和拓扑规模),测试控制器集群在网络资源管理、流编程和第三方集成方面的功能/性能能力。
3.3 编排管理层能力测试
编排管理层是SDN/NFV基础技术架构中最高层。通过匹配系统化的网络服务能力与具体的业务部署需求,编排管理层负责形成网络资源的全局化模板,并向业务控制层下发模板调用请求。典型的编排管理层设备是编排器。作为最接近业务应用的SDN/NFV基础技术能力,在测試方面,业务能力测试是当前业界的主要关注点。
业务能力测试检验编排器能否满足业务/应用部署的需求。按照典型的SDN/NFV业务特点进行划分,具体的测试内容涉及3个方面:L2虚拟专用网络(VPN)/L3VPN能力、服务功能链(SFC)能力、虚拟防火墙(vFW)/虚拟负载均衡(vLB)/虚拟网关(vGW)能力。
·L2VPN/L3VPN能力:测试编排器配置部署L2VPN/L3VPN的能力,重点关注形成模板的处理能力和下发模板的能力。
·SFC能力:测试编排器配置部署SFC的能力,重点关注形成模板的处理能力和下发模板的能力。
·vFW/vLB/vGW能力:测试编排器配置部署vFW/vLB/vGW的能力,重点关注形成模板的处理能力和下发模板的能力。
4 平台级别的测试方法分析
ICT统一平台是SDN/NFV技术与IT技术(分布式存储技术、并行计算技术)协同发展的融合型技术平台。按照欧洲电信标准化协会(ETSI)在2014年发布的NFV体系架构标准,ICT技术统一平台实现了“网络功能虚拟化基础设施(NFVI)+虚拟基础设施管理(VIM)”两大主要功能,具备了承载以VNF为代表的业务负载的能力(如图5[2]所示)。ICT技术统一平台设计了多种NFV特色(如错误管理、IPv6、L3VPN等),能够对于不同的负载场景需求进行有针对性的差异化匹配部署,体现了良好的功能弹性。对ICT技术统一平台开展测试评估工作,需要综合ICT测试方法,以平台和负载的关系为主要测试对象,重点关注两个方面的能力指标:功能一致性和互操作性。
4.1 功能一致性
功能一致性测试关注平台能力与负载需求之间的匹配程度,是实现业务负载部署和互操作性测试的重要前提,具体的测试内容围绕平台能力的3个方面展开:计算一致性、存储一致性和网络一致性。
(1)计算一致性。
计算一致性测试检验平台的计算能力能否满足业务负载(如L3VPN/L2VPN、SFC、vFW等)的计算需求,重点关注高性能、规格指标、可靠性3个方面。
·高性能:测试平台的中央处理器(CPU)/内存处理能力能否满足业务负载的需求,重点关注CPU和内存的处理时延和吞吐量。
·规格指标:测试平台的CPU/内存规格指标能否满足业务负载的需求,重点关注CPU和内存的核数和平均利用率。
·可靠性:测试平台CPU/内存的可靠性能否满足业务负载的需求,重点关注CPU/内存的平均无错误时间等可靠性指标。
(2)存储一致性。
存储一致性测试检验平台的存储能力能否满足业务负载(如L3VPN/L2VPN、SFC、vFW等)的存储需求,重点关注高性能、规格指标、可靠性3个方面。
·高性能:测试平台的存储处理能力能否满足业务负载的需求,重点关注串行/随机读写操作的处理时延和吞吐量。
·规格指标:测试平台的存储规格指标能否满足业务负载的需求,重点关注块存储/对象存储的规格大小和平均利用率。
·可靠性:测试平台存储的可靠性能否满足业务负载的需求,重点关注块存储/对象存储的平均无错误时间等可靠性指标。
(3)网络一致性
网络一致性测试检验平台的网络能力能否满足业务负载(如L3VPN/L2VPN、SFC、vFW等)的网络需求,重点关注高性能、规格指标、可靠性3个方面。
·高性能:测试平台的网络处理能力能否满足业务负载的需求,重点关注NFVI结点和虚拟机(VM)的处理时延和吞吐量。
·规格指标:测试平台的网络规格指标能否满足业务负载的需求,重点关注平台能够承载的最大连接数、网络吞吐量、网络利用率。
·可靠性:测试平台网络的可靠性能否满足业务负载的需求,重点关注平台所用网卡的平均无错误时间等可靠性指标。
4.2 互操作性
互操作性测试检验平台与负载之间的互操作能力,是一种解除厂商锁定,建设良性市场的关键性测试工作,具体的测试内容主要围绕负载部署能力的相关指标展开。
负载部署能力测试检验业务负载能否在异厂商平台上实现部署和管理,重点关注负载生命周期管理、负载配置管理、负载健壮性管理和负载性能能力。
·负载生命周期管理:测试能否在异厂商平台上完成完整的负载生命周期,即负载部署、负载运行和负载卸载。
·负载配置管理:测试能否在异厂商平台上配置负载参数。
·负载健壮性管理:测试能否在异厂商平台上监测、记录负载错误信息,并按照设计要求进行错误处理。
·负载性能能力:测试在异厂商平台上负载运行时的性能参数指标,如吞吐量、时延等。
5 测试实践与问题分析
5.1 典型测试实践
在標准化组织和开源社区的支持下,到2016年底,业界主要在两个方向开展了SDN/NFV的测试实践:OpenFlow协议一致性测试和开源控制器能力测试。
(1)OpenFlow接口一致性测试。
在ONF的主导下,发布于2014年的OpenFlow 1.3v协议获得了业界的认可,全球主流设备制造商纷纷基于该协议设计出自己的OpenFlow-enable设备。随着商业化部署的不断发展,OpenFlow接口能力成为业界关注的重点。在这样的技术背景下,ONF提出了OpenFlow 1.3v一致性测试规范[3]:通过394项测试例,分别验证了OpenFlow接口能否在信道建立/断开、协议报文交互和健壮性3个方面与OpenFlow 1.3v规范保持一致。
(2)开源控制器能力测试。
OpenDayLight社区于2016年5月发布了开源控制器OpenDaylight的单实例测试白皮书[4],测试内容覆盖了OpenDayLight控制器在网络资源管理和流编程两大功能方面的处理能力,其中,白皮书在流编程能力(OpenFlow流表配置)方面实现了OpenFlow-Beryllium、ONOS-1.5.1v和Floodlight-1.2v的单实例对比测试。
ONOS社区在2015年4月,发布了开源控制器ONOS-1.2.0v(Blackbird版本)的集群性能测试白皮书[5],测试内容覆盖了ONOS集群在网络资源管理和流编程功能方面的处理能力。
5.2 测试工作中的问题探讨
(1)测试思路局限性。
从测试思路上看:目前已经开展的测试工作仍然聚焦于以OpenFlow协议为代表的南向接口能力和以控制器为代表的网元设备能力,对于以ICT技术统一平台为对象的平台级测试工作,目前尚处于研究阶段。
(2)测试方法滞后性。
从测试方法上看:系统性和规范性测试方法体系的缺失已经成为制约测试工作进一步发展的重要瓶颈。标准化组织的相对滞后和开源组织的快速发展,形成了当前依据社区生态为划分的“事实标准体系”,进一步增加了建设标准化测试方法体系的难度。
(3)测试工具不成熟。
在测试工具方面,传统的测试仪表提供商面临着技术转型的巨大压力,其测试解决方案难以满足评估的需求,特别是围绕ICT技术统一平台开展的测试评估活动。当前以开源项目为主体的开源工具集合成为测试工作的主要依赖。然而,开源项目自身在可靠性和稳定性方面存在缺陷,开源社区在技术支持等服务质量方面存在重大短板,整体上看,缺少可靠的测试工具成为制约进一步开展测试工作的另一个重要因素。
6 结束语
当前,SDN/NFV相关的测试工作还处于比较初级的发展阶段,从测试思路到测试工具,业界还没有形成行之有效的系统级解决方案。未来,伴随着商业化进程的不断深入,SDN/NFV相关的测试工作也将逐步得到业界的重视,吸引越来越多的技术专家参与其中,完善测试方法讨论,研发系统级评测工具,全面提升SDN/NFV技术评测水平。
参考文献
[1] 中国电信.中国电信CTNet2025网络架构白皮书[EB/OL].[2016-07-11](2017-01-24).http://wenku.baidu.com/link?url=VFlm_4wmV7gTbrV0m3uv4Ce4PgR5n9MnWFjTvDC8CMYvzK7hVuR7T6rYasMjGijyU_0pCVOogjtb2NUYXaK5ywvA8NzxiSQu9imf-_SiLYG
[2] ETSI. Network Functions Virtualisation (NFV) Architectural Framework.[EB/OL].[2014-12-21](2017-01-22). http://www.etsi.org/deliver/etsi_gs/NFV/001_099/002/01.02.01_60/gs_NFV002v010201p.pdf
[3] ONF.OpenFlow Switch Specification[EB/OL].[2014-03-27](2017-02-24).https://www.opennetworking.org/images/stories/downloads/sdn-resources/onf-specifications/openflow/openflow-switch-v1.3.4.pdf
[4] OpenDaylight. OpenDaylight性能測试白皮书[EB/OL].[2016-05-20](2017-01-23).https://www.opendaylight.org/sites/www.opendaylight.org/files/odl_performancetechnicalreport_1-1_052716.pdf
[5] ONOS. ONOS性能测试白皮书[EB/OL].[2015-04-12](2017-01-19).https://wiki.onosproject.org/display/ONOS/Blackbird+Performance+Evaluation