面向云网融合SaaS 安全的虚拟网络功能映射方法
2021-12-20李凌书邬江兴
李凌书,邬江兴
(解放军信息工程大学国家数字交换系统工程技术研究中心,郑州 450002)
0 概述
云计算是一种基于泛在网络连接的服务提供形式,网络连接的一端是具有强大计算能力的“云”,另一端是功能简化为输入输出设备的用户终端。“云”端利用虚拟化、分布式计算等技术汇聚碎片化的IT 资源形成共享资源池,再以动态、弹性、按量付费的方式为用户提供可配置的大规模计算和存储服务。云网融合是当前云计算的发展方向之一,功能部署和资源管理纵向下沉到网络层进行统一调度和控制,横向拓展实现包括公有云、私有云、混合云、企业IT 系统等多种资源的协同控制。“多云+多网”将是未来长期存在的需求。
软件即服务(Software as a Service,SaaS)是云计算的一种交付模型,根据美国国家标准与技术研究院(National Institute of Standards and Technology,NIST)的定义,SaaS 使用户可以通过各类客户端接口,直接访问和使用运行在云基础设施上由服务提供商提供的应用程序,而无需管理云基础设施和应用程序。SaaS 模式在面向多租户时保持了快速、弹性、可配置且低成本的特点,而新冠肺炎疫情的出现,更加速了远程办公、在线教育等SaaS 服务落地。据Gartner 调查显示,SaaS 是云计算中最大的细分市场。
SaaS 服务可扩展、可重用和模块化的特性吸引了越来越多的政企业务向云端迁移,人们对SaaS 安全性的考量也与日俱增。数据泄露、数据丢失、认证凭据劫持、不安全的接口、恶意内部攻击和滥用云服务等安全问题严重影响云应用的发展。中国信息通信研究院发布的云计算发展调查报告显示,42.4%的企业在选择公有云服务时会考虑服务安全性,由此可以看出,在高效部署SaaS 业务的同时兼顾安全具有重要的研究意义。
SaaS 业务部署可以抽象为虚拟网络映射(Virtual Network Embedding,VNE),即将承载SaaS业务的容器(执行虚拟网络功能)部署到物理服务器上。当前关于VNE 已出现大量研究。文献[1]通过定义适应度来衡量映射策略的质量,提出一种适用于云环境的虚拟网络映射算法。文献[2]提出一种基于多层编码的遗传算法实现动态场景下业务的高效部署,提高了资源调度的智能性。文献[3]提出一种高效可扩展的虚拟网络服务功能链拓扑设计和映射方法,将拓扑设计和资源映射结合考虑。文献[4]提出一种基于马尔科夫决策过程的虚拟网络功能调度模型,并设计基于Q-learning 的动态调度算法以优化虚拟机的部署和调度。文献[5]针对大规模网络场景下的虚拟网络映射问题进行研究,提出一种基于分区映射的进化算法以提高资源利用率。文献[6]为灵活地满足虚拟网络高带宽、低时延、高时延等不同需求,提出一种基于软件定义网络的自适应VNE算法。文献[7]提出一种基于强化学习的虚拟网络映射算法DeepViNE,通过限制动作的数量加快学习和算法收敛速度。然而,当前研究主要针对资源开销、能耗、负载均衡等方面,关注服务安全性和鲁棒性的研究较少。
文献[8]通过分析安全漏洞来对虚拟化环境中的底层资源安全性进行建模,进而抽象成安全需求作为虚拟网络映射的约束条件。文献[9]对不同的物理节点和虚拟节点均设置安全等级,规定虚拟节点只能部署到不低于其安全性要求的物理节点上。文献[10]也采用类似的思路保证虚拟服务的安全性需求,并提出一种基于强化学习和安全感知的虚拟网络映射算法。上述工作可以有效保护关键云服务的安全,但实质上均是通过选择优质的物理资源来提高虚拟服务的可信性和安全性,并未直接缓解风险,缺少利用云环境冗余性、异构性来提升安全性的考量。
本文对SaaS 业务面临的安全问题进行建模分析,基于冗余执行和交叉校验的思想提出一种面向SaaS 安全的组合服务模式,进而建立拟态化虚拟网络功能映射(Mimic Virtual Network Function Embedding,MVNE)模型和安全性优化机制。在此基础上,提出基于近端策略优化(Proximal Policy Optimization,PPO)的虚拟网络功能映射算法PJM,通过合理的虚拟网络映射提高服务质量。
1 基于云网融合的SaaS 交付模式
本节分析讨论云网融合的研究意义,阐述目前实践中云网融合的实现框架,并介绍SaaS 组合服务的交付模型。
1.1 云网融合的意义
随着云计算从消费领域逐渐转向实体领域,不断扩张的网络规模和业务类型对云架构设计提出了新的挑战,定制化、精细化运营和多云互通成为研究热点。
1)定制化是运营商向服务提供商转型的关键需求。运营商需要以适当的方式开放部分网络资源、网络拓扑以及信道组织的控制权。
2)精细化运营有利于提高网络利用率,帮助运营商实现从经营管道到经营网络,进而实现“增速降费”。
3)多云互通有利于整合多类型资源。国内阿里、华为等云环境相对独立,多云资源难以互通共享,阻碍了SaaS 业务的发展[11]。
云网融合可以有效实现以上需求。目前云网之间的关系日益紧密。一方面,云离不开网,井喷增长的SaaS 应用需要更便捷、安全的网络连接,研究表明,网络性能很多时候成为限制高性能SaaS 应用的瓶颈[12-13];另一方面,网离不开云,网络的控制管理功能(如移动核心网的网元)逐步云化,网络技术的进一步发展势必需要借鉴云计算的理念。提供给云用户的服务本质上是云服务和网络服务的组合,打破传统云和网之间彼此封闭和独立的形态,构建一个云网高度融合的信息基础设施势在必行。
1.2 云网融合的实现框架
1.2.1 云资源编排管理
基础设置即服务(Infrastructure as a Service,IaaS)使用虚拟化技术对各种资源进行抽象和管理,屏蔽资源的位置、管理和配置细节,在用户端呈现为虚拟机(Virtual Machine,VM)或容器(Container)。云资源的编排管理目前存在2 种主流的模式:一种是VM+OpenStack,其中OpenStack 是美国国家航天局与Rackspace 合作的云平台开源项目,旨在提供大规模可扩展、标准化的云计算管理服务;另一种是Container+Kubernetes,其中Kubernetes 是谷歌公司开源的一个容器编排引擎,实现了容器自动化部署、管理与配置。
1.2.2 网络资源编排管理
网络资源的编排管理基于通信链路质量的可测量和可定制特性。SRv6等面向连接的承载协议,依靠SDN控制器收集拓扑信息和下发隧道路径,通过丢包检测、时延检测、路径还原等机制实现端到端质量控制。据此,运营商可提供多条不同服务质量的路由供用户选择。网络虚拟化平台将物理网络分成多个逻辑网络,允许拓扑指定与寻址,其为管理员提供标准规则来管理网络,而不是通过调度路由器和交流机。基于网络虚拟化,运营商无需提供拓扑、容量、内部标签栈等网络参数,用户也无需提供流量分类、转向策略和业务逻辑,即可实现网络资源的编排与交付[14]。资源发现与分配、任务调度与负载、故障发现与定位,则依赖于资源监测技术[15]。
1.2.3 云网融合编排管理
面向服务的体系结构(Service Oriented Architecture,SOA)是云网融合的桥梁[16]。基础设施即服务、平台即服务以及软件即服务均基于SOA 设计,为云基础设施提供商、网络服务提供商以及应用开发者提供了一种高效灵活的沟通机制,也为异构系统集成提供了有效的体系结构原则。本质上,SOA 以服务的形式封装系统资源和功能,并在这些服务之间提供松耦合的交互机制。
图1 所示的云网融合分层框架是一种基于SOA 的逻辑结构。一方面,路由器、交换机、网络链路等网络基础设施基于OpenVirteX、FlowVisor 等技术虚拟化为统一的网络资源,进而由Floodlight、Beacon 等控制面管理工具对其进行编排和管理;另一方面,CPU 资源、内存资源等云基础设施通过虚拟机监视器(Virtual Machine Monitor,VMM)、Linux Containers(LXC)等技术抽象为虚拟机、容器等可以统一管理的云资源,进而由Openstack、Kubernetes 等云编排管理工具对其进行编排和管理。网络和计算资源作为单个虚拟化、动态供应的资源集合,实现了跨网络和计算域的资源灵活协调管理,同时通过建立整体资源视图,进一步释放服务提供的灵活性,使得跨地域、异质的计算系统之间的协作成为可能。
图1 云网融合框架Fig.1 Cloud-network integration framework
目前,云网资源对接主要有2 种形式:在VM+OpenStack 的云资源管理模式下,云网资源对接主要基于OpenStack 的Neutron 组件实现;在Docker+Kubernetes 的云资源管理模式下,云网资源对接主要基于Kubernetes 的Calico 组件实现[4]。然而这2 种形式目前功能较为有限,不能实现广域网上常见的网络配置和调整操作,也不能满足云网融合对主机进行操作系统升级和应用更新的需求。
1.3 SaaS 组合服务模式
SaaS 云中的应用构建方式正向组合服务模式发展,即通过组合一系列松散耦合的可交互功能形成更高级别的应用系统。构成一个服务组合的组件可以是云服务、网络服务、数据资源或者是零散的SaaS子服务,并且不同组件之间存在一定的依赖关系。云网融合下的组合服务构建模式如图2 所示。当服务请求发生时,服务代理对编排管理层提供的各种云服务和网络服务基于服务质量等约束进行选择和组合,配置成终端用户所需要的个性化SaaS 服务。
图2 组合服务构建模式Fig.2 Construction pattern of composite service
组合服务模型类似于国际互联网工程任务组(Internet Engineering Task Force,IETF)提出的服务功能链(Service Function Chain,SFC)技术[17]。一个云服务对应一条服务功能链,一条服务功能链中多个承载不同功能的容器按照一定的业务逻辑相互连接,共同为用户提供特定的服务。由于容器相较于虚拟机更加轻量级、灵活和容易部署,因此本文主要以容器作为虚拟网络功能的承载方式。
2 安全威胁
本节阐述SaaS 服务面临的主要安全威胁,并对其进行抽象建立威胁模型,为后续虚拟网络功能映射研究提供基础。
2.1 SaaS 云的主要安全威胁
SaaS 模式允许多个租户通过虚拟化技术共享底层资源和网络基础组件,这为交叉租户攻击创造了便利条件。云上的用户通常被授予超级用户访问权限,以便管理他们的容器。过高的访问权限使恶意用户能够获取系统IP 或MAC 地址,并恶意使用IaaS网络接口。具有root 权限的恶意用户可以对真实网络组件发动攻击,例如在真实网络上嗅探和欺骗。SaaS 主要面临以下安全问题:
1)容器安全问题。
容器镜像是SaaS 云中软件交付流转的主要形态,但基础镜像来源复杂,源头管控难,且官方镜像仓库和第三方镜像仓库均存在安全漏洞[18]。如果未正确清理镜像,可能会泄露用户隐私信息[19]。攻击者可对镜像进行代码检测和漏洞挖掘,寻找程序脆弱点。攻击者也可以上传包含恶意软件、预置漏洞后门的镜像。
容器间的逻辑隔离属于进程级别的“软”隔离,相较于物理服务器的“硬”隔离,逃逸风险更大,容易导致数据泄露[20]。攻击者可能通过侧信道绕过逻辑隔离来窃取敏感信息(如密码口令或密钥),实现容器跳跃攻击[21]。
2)Hypervisor 安全问题。
Hypervisor 是提供虚拟化的关键组件,用于生成、管理容器以及实现容器的隔离,管理容器对硬件的访问。容器逃逸是指攻击者获得其容器所在直接宿主机上某种权限下的命令执行能力。例如:Xen 中的漏洞可能被攻击者滥用以获得Hypervisor的root权限[22],一旦Hypervisor 被攻击者占领,其管理的所有容器将在攻击者的控制之下,高级攻击者可进一步发起BIOS(Basic Input/Output System)等攻击直接威胁物理服务器,影响IaaS 服务[23]
3)云基础设施的安全问题。
虚拟化网络是在物理网络基础上建立的逻辑网,由基于软件的网络组件(如网桥、虚拟交换机等)构成。传统流量检测机制无法有效监控虚拟网络流量,这使得云中某些恶意活动无法被传统安全工具检测到[18]。此外,虚拟化网络也为拒绝服务、网络嗅探、流量窃听等攻击提供了便利。
2.2 安全威胁建模
在SaaS 云中,容器作为客户业务的实际载体和执行者,是攻击者的首要攻击目标。本文考虑3 种攻击模式,分别是针对容器系统的攻击、针对Hypervisor 的攻击和针对云基础设施的攻击,在这3 种模式下,攻击者的攻击能力不断增强。
假设n个不同的云基础设施(包括公有云和私有云)组成一个多云互联场景,其中共有m台服务器。同时假定一个服务器只构建一个虚拟化层Hypervisor,在Hypervisor上共实例化了l个容器。攻击者已知其要攻击的目标业务由这l个容器中k个容器进行承载,但无法确定是哪些容器。若对所有的云、服务器和主机进行编号,则一个容器c的归属信息可以由一个三元组(nc,mc,lc)表示。同理:针对容器系统的攻击可表示为若则说明攻击成功;针对Hypervisor的攻击可表示为若则表示攻击者以极高的概率攻击成功;针对云基础设施的攻击可表示为则表示攻击者以较高的概率攻击成功。
3 面向SaaS 安全的VNE 模型
本节介绍虚拟网络功能映射问题的含义,提出一种基于网络空间拟态防御(Cyber Mimic Defense,CMD)的组合服务模式,并提出一种拟态化虚拟网络功能映射(MVNE)模型。
3.1 虚拟网络功能映射问题
虚拟网络功能映射指的是为租户请求的虚拟网络功能(Virtual Network Function,VNF)分配物理资源,在SaaS 云中指的是将提供SaaS 组合服务的容器部署到合适的服务器上。SaaS 组合服务的虚拟网络功能映射示意图如图3 所示,其中,为用户提供服务的虚拟网络功能包括A、B、C 3 个容器,底层网络包括a~e 5 个物理节点。VNE 的目标是得出一种映射关系,将容器通过虚拟化层映射到物理节点上,将虚拟链路映射到底层物理链路上。成功映射的前提是物理节点和链路上有充足的资源来承载虚拟网络功能所需要的计算、存储和网络资源。如图3 中虚拟网络功能A 被映射到了节物理点a 上,虚拟链路A-B被映射到了物理链路a-b-f 上。
图3 虚拟网络功能映射示意图Fig.3 Schematic diagram of virtual network function embedding
3.2 基于CMD 的组合服务模式
网络空间拟态防御借鉴多样性、随机性、动态性、非相似余度以及生物启发安全技术,解决目标对象的不确定威胁问题。拟态防御通过异构执行体运行功能相同程序、表决监控冗余执行的输出结果,将拟态构造内的安全威胁转化为广义的不确定扰动影响,使得服务功能的可靠性、可用性与可信性得到质量控制[24]。
作为一种主动防御技术,CMD的核心思想是通过引入动态异构冗余(Dynamic Heterogeneous Redundancy,DHR)体系结构和负反馈机制来提高系统处理未知威胁的能力。DHR 系统架构如图4 所示,其由异构执行体池、输入输出代理、拟态调度器、拟态裁决器组成。云资源池中包括m种功能等价的异构执行体集合E,按服务注册与发现机制动态地从集合E中选出n个执行体作为一个执行体集(1,2,…,n)。输入代理将用户输入转发至对应执行体集合中的每个执行体(容器),拟态裁决器接收多个输出,进行表决后发送给输出代理进行语义标准化处理。在此基础上,拟态裁决器对裁决结果统计分析,实时发现目标对象执行过程中的异常行为并反馈给拟态调度器,由拟态调度器对执行体集进行动态调度操作,如启动恢复清洗机制。
图4 DHR 架构Fig.4 DHR architecture
为有效应对2.1节中的3种攻击模式,可以基于CMD思想对SaaS 组合服务进行改进以提高云服务的安全性。首先基于CMD 对关键节点进行安全加固,即对于重点任务,基于拟态思想对其进行保护,主要表现在构建特殊的SFC 模型,使用多个容器执行该VNF,并对输出进行交叉校验;然后增大承载服务的容器之间的归属信息差异,即对于冗余执行的容器,尽可能使其部署在不同的服务器或云环境中。为方便表述,将这种引入冗余执行和交叉校验的虚拟网络功能映射问题称为拟态化虚拟网络功能映射(MVNE)问题。
3.3 拟态化虚拟网络映射模型
本文利用多层有向无环图(Directed Acyclic Graph,DAG)对MVNE 问题进行建模,如图5 所示。工作任务由G=(V,E,T)表示。其中:V={v1,v2,…,vn},表示执行工作任务的一条服务功能链,vi表示一个需要在容器中被执行的VNF,vi=1 表示是一个需要重点保护的VNF,vi=0 表示是一个普通VNF;E表示传输带宽需求;T表示该业务在服务等级协定中的完成时间约束。
图5 拟态化虚拟网络功能映射示意图Fig.5 Schematic diagram of mimic virtual network function embedding
目前对网络资源的定义普遍较为简单[14-15]。为细粒度刻画网络链路质量,本文将容器之间的网络连接分为3 种情况:1)容器部署在同一个主机上,通过总线交互,时延最低;2)容器在同一个云的不同主机上,信息通过大二层网络传输;3)容器在不同的混合云的主机上,跨云交互延迟较大。令传输时延矩阵为Dw×w,矩阵中元素dij表示服务器i与服务器j之间的传输时延。
此外,容器部署还应满足资源约束。令Ow×x为服务器资源容量矩阵,矩阵中元素qij表示服务器i上第j种资源的容量。假定所有SaaS 业务发起的SFC总数为u,一条SFC 中VNF 的数量为v,混合云中所有可部署容器的服务器个数为w,则对于VNE 问题的优化目标是在满足资源等约束的条件下,最小化整体传输时延,如式(1)所示:
整体传输时延包括处理时延和传输时延,其中,Ev×w×Tv×w表示Ev×w和Tv×w的哈达玛积(Hadamard Product),表 示A中所有元素的和,即
对于MVNE 问题中的安全SFC 而言,其包含一个或多个基于拟态加固的VNF。加固后的整体传输时延取决于性能最差的分支。本文所使用的主要数学符号如表1 所示。
表1 数学符号定义Table 1 Definition of mathematical symbols
为实现3.2 节定义的基于CMD 的组合服务模式,MVNE 模型使用以下3 种机制:
1)容器同驻惩罚机制。当同一个业务的容器部署在同一个主机上时,在优化目标函数中加入一个惩罚项。
2)多云部署奖励机制。若承载拟态化VNF 的容器部署在多个云上,则在优化目标函数中加入一个奖励项。
3)延时裁决机制。经典拟态构造中需要收集所有分支执行体的结果,进行交叉校验后再进行下一步操作。为缩短业务处理时延,引入一种称为拟态化VNF延时裁决的任务预处理机制,流程如图6 所示。
图6 拟态化VNF 延迟处理机制流程Fig.6 Procedure of mimic VNF delay processing mechanism
假定MVNE 有一个冗余执行的子任务X,当裁决模块收到子任务X 中第1 个分支结果后,直接将其用于下个子任务Y 的执行,将之后到达的分支结果用于校验和纠错。然后裁决模块会等待一段时间,获得从冗余执行体发来的输出结果进行校验。如果存在差异,则重新执行子任务X,并根据差异类型和图6 中的流程,选择重新执行Y 或终止Y。
采用延时裁决机制后,MVNE 中SFC 的整体传输时延不再取决于性能最差的分支,虽然冗余执行依然会带来较高的资源开销,但可以显著减少对端到端时延等服务性能的影响。
4 基于深度强化学习的MVNE 算法
当前研究中一般将VNE 问题建模为混合整数线性规划问题(Mixed Integer Linear Programming,MILP)。而MILP 被证明是NP-hard 问题,相关算法在真实云网场景中的应用效率有待提升,且MVNE问题较VNE 问题更为复杂。为提升应用效率,本节提出一种基于近端策略优化的MVNE 算法PJM,首先介绍智能体交互环境和算法框架,然后阐述其中神经网络的构造方法。
4.1 智能体的交互环境
环境是现实问题转换到数学模型的桥梁,其将底层网络和虚拟网络请求都抽象为图的形式,包括节点资源容量、节点处理时延、网络带宽容量、传输时延等数据。如第3.3 节所述,假定底层网络包括w个节点,虚拟网络请求包含v个节点,虚拟网络映射需要同时满足节点约束和链路约束。为简化智能体的处理问题维度,PJM 算法将节点约束在环境中进行预处理转换。首先遍历当前处理的虚拟网络请求的每个节点,找到满足资源约束的底层网络节点,并将计算结果存储到一个v×w维数组Mv×w中,数组中的项mij∈M代表虚拟网络请求中的节点i能够映射到底层网络的节点j上,如果可以则为1,否则为0。M输入RL 模型后,在最后一步与模式生成的映射策略(同样为一个v×w维数组)相乘,得到最终的输出策略。
环境中会对模型的最终输出进行判断,由于M会使得不符合节点约束的输出中出现0,因此对其进行筛选并给予较大的负收益。此外,如果模型输出的映射策略中有底层网络中不存在的边,或是存在不满足边约束等不合理的情况,也会给予一个负收益。只有当映射同时满足节点约束和链路约束时,才会反馈一个正收益。收益值同时受到容器同驻惩罚机制和多云部署奖励机制的影响。
4.2 算法框架
强化学习(Reinforcement Learning,RL)是一种无模型的动态规划问题。强化学习的基本思路是通过智能体不断与环境交互,定义奖励值,引导智能体在不断试错中优化策略,使其适合解决序列决策问题[25]。MVNE 问题可以建模为一个马尔科夫决策过程,对于每个到达的服务分配资源,更新可用资源视图[26]。因此,资源映射问题可以方便地提取出强化学习的三要素(状态、动作和奖励),采样成本低,适合建模为强化学习问题。
本文所提出的PJM 算法是一种深度强化学习算法(Deep Reinforcement Learning,DRL),其算法框架部分与近端策略优化(Proximal Policy Optimization,PPO)算法[27]相同,但PPO 算法不能直接求解MVNE 问题,需要编写环境实现现实问题到数学模型的转变。PPO是一种策略梯度(Policy Gradient,PG)算法,通常定义策略的拟合函数,通过优化拟合函数的参数θ来优化策略[28]。常用的梯度估计量为:
PPO 不使用误差反向传播,而是直接选择一个行为进行反向传播,根据奖级对每种行为进行打分,然后调整各种行为被选择的概率。标准策略梯度算法执行对每个样本数据执行一次梯度更新,而PPO 允许更灵活的小批量更新,相较于信任区域策略优化(Trust Region Policy Optimization,TPRO)算法更简单通用,并具有较低的样本复杂度。本文引入CPI 方法中的概率比率将优化目标表示为:
通过对比新旧策略的差异,不允许新策略出现过于剧烈的改变,从而限制学习率。如式(5)所示:
其中:ε是一个超参数;clip()函数通过限制概率比率来限制变化幅度。
4.3 神经网络构造
PJM 属于一种演员评论家(Actor Critic,AC)算法,因此,需要构造2 个结构相同的神经网络。将资源映射问题建模成一个序列形式的输入,基于当前剩余资源(局部解)使网络输出新加入的节点来拓展当前的局部解,迭代若干次从而得到所有SFC 的映射策略(完整解)。算法的状态、动作和奖励值定义如下:
状态s:网络状态信息由云网融合框架中编排管理层的网络操作系统和云编排管理系统联合提供。状态信息包括当前主机上的业务分布和链路上的流量分布,然后转化为向量格式的剩余资源视图S=[s1,s2,…,sn,l1,l2,…,lm],其中,n为主机数,m为链路数。该视图作为DRL 神经网络的输入。
动作a:由DRL 中的神经网络计算得到,表示SFC 的部署策略,相较于Q-learning 算法,其避免了使用表格存储状态和Q 值而导致消耗大量存储和搜索缓慢的问题。动作作用于网络状态后,将改变网络剩余资源视图。
奖励值r:即策略的回报,本文主要基于业务端到端平均时延计算奖励值。部署策略的质量通过价值函数来判定,则时刻t时的策略质量可表示为:
其中:γ是未来收益折现因子,由于策略价值函数也是由神经网络实现,因此可表示为Q(st,at|θ)。
使用PJM 算法求解MVNE 问题的核心难点在于映射动作存在贯序性。由于每个动作a包含多个点的映射,而这些映射之间相互依赖和影响,导致神经网络无法求解。该问题可以通过专家经验添加预置条件和匹配规则解决,但实现上较为繁琐。本文在PJM 算法中设计了一种输出嵌套结构,使模型每次执行部分节点匹配,然后将得到的匹配结果和上一层(layer)的结果共同作为计算下一个节点的输入参数,从而解决节点之间依赖的问题。
为实现云网资源协同最优调度,PJM 算法的奖励值函数同时考虑了节点(容器)处理时延和链路传输时延的影响,扩大了解空间的范围,解决了使用传统Q-learning 算法可能存在扩展性不足、无法适应大规模场景的问题。
5 实验评估
鉴于冗余设计和交叉校验机制能够直接带来安全性的提升,本节主要关注所提PJM 算法与同类算法在端到端时延等方面的性能提升,并分析不同安全机制对服务质量的影响。
5.1 实验环境设置
仿真网络使用Intel Core i5 3.20 GHz CPU,4 GB RAM 的主机,系统配置为Ubuntu 12.04。网络环境拓扑来自公开数据集SNDlib[29]。PPO算法基于Tensorflow 和OpenAI的开源项目aseline 实现。DRL 环境基于python3 编写。
本文以基于关键映射闭环反馈算法(CCMF)[3]、联合编码的遗传算法(JEGA)[2]和基于Q-learing 的VNE 算法(QVNE)[4]作为对比算法。CCMF 是早期经典的拓扑设计和映射联合优化算法,支持虚拟功能到物理实体的多对一映射。JEGA 是生物启发式近似算法一种性能较好的实现算法,能够在可接受的时间内找到一个可行解。QVNE 是近年来提出的一种流行的基于强化学习的映射算法,其将资源映射建模为一个马尔科夫决策过程,在与环境的交互中寻找最优解。服务链的VNF 个数取值范围为[3,9],其中拟态化VNF 的个数为1。处理时延矩阵和传输时延矩阵的元素在[2 ms,10 ms]范围内随机生成。
5.2 性能评估
所使用的对比算法设计之初是为了解决VNE问题,使其能够求解MVNE 问题进而与所提方法进行对比。因此,首先对其进行修改和参数调整,使对比算法支持重要VNF 的冗余执行。
不同算法的平均服务完成时间如图7 所示,可以看出,随着服务功能链长度的增加,每种算法中平均服务完成时间均大致呈线性增长趋势。一般而言,服务功能链长度与服务的复杂度正相关,是影响端到端时延的主导因素。当服务功能链长度相同时,CCMF 算法的端到端时延性能最差,其采用一种点和边交替映射的启发式搜索机制,分析生成的映射策略可以发现,输出策略受算法初始点选择影响较大,容易陷入局部最优。JEGA 算法的端到端时延性能表现仅优于CCMF,其虽然是一种全局搜索算法,但容易出现早熟收敛问题。本文基于深度强化学习的PJM 算法具有最短的服务完成时间,相较于当前次优的方案(QVNE 算法)平均降低了12.2%的端到端服务完成时间,这主要是因为PJM 使用策略梯度直接对策略的总期望奖励进行优化,能更有效地更新策略空间中参数。
图7 不同算法的平均服务完成时间Fig.7 Average service completion time of different algorithms
不同算法部署80 条服务功能链数量的执行时间如表2 所示。JEGA 算法基于联合编码方式的遗传算法寻优,具有最快的收敛速度,这主要得益于JEGA 算法简单的逻辑,但JEGA 算法收敛速度和最终解质量与迭代参数有关,收敛性能一般以降低解质量为代价,由上文可知JEGA 算法输出结果的端到端时延较差。PJM 算法的运行效率次之,其直接选择一个行为进行梯度更新和小批量更新的方法,具有较高的学习效率,虽然线下的时间开销大于JEGA,但得出的映射策略可以获得更优的部署效果,降低服务的端到端时延。基于Q-learing 的QVNE 算法由于使用Q 表进行状态存储,空间复杂度较高,状态搜索困难导致运行速度较慢。CCMF算法由于容易出现进化停滞,算法收敛最慢,而且MVNE 问题中存在一个VNF 连接多个VNF 的情况,而对节点和边交替映射的CCMF 算法不适合处理这种复杂的结构。
表2 不同算法执行时间Table 2 Execution time of different algorithms s
强化学习类算法(PJM 和QVNE)的训练过程如图8 所示,可以看出,随着算法不断迭代,平均回报值均呈上升趋势。PJM 算法的训练成绩优于QVNE且更快达到收敛,这是因为梯度更新使其具有更快的训练效率。
图8 强化学习类算法的训练过程Fig.8 Training process of reinforcement learning class algorithm
对不同的VNE 部署模式性能进行分析,评估引入3.3 节中3 类安全机制后对时延性能的影响。根据附加安全机制,可以分为5 种VNE 模式:一般模式(VNE),拟态模式(MVNE),禁止容器同驻的拟态模式(MVNE-V1),采用延时裁决的拟态模式(MVNE-V2),禁止容器同驻和采用延时裁决的拟态模式(MVNE-V3)。不同VNE 模式下SFC 总传输时延如图9 所示。可以看出,不进行拟态化改造的普通映射方式具有最短的传输时延,拟态化安全增益均以一定的性能开销为代价。
图9 不同VNE 模式下SFC 的总传输时延Fig.9 Total transmission delay of SFC in different VNE modes
禁止容器同驻的拟态模式(MVNE-V1)的传输时延最大,因为难以保证多个执行分支都具有良好的传输时延性能,而业务需要等待多个分支的结果进行交叉校验,带来了较大的时延开销。MVNE-V2相较于MVNE,MVNE-V3 相较于MVNE-V1 都有一定的传输时延下降,验证了延迟裁决机制的有效性,可以规避拟态化容器中性能最差执行分支对性能的影响,但提供SaaS 组合服务的容器中的恶意容器越多,频繁的重复计算将导致延迟裁决机制的作用越小。此外,由于延迟裁决机制在严格执行交叉校验和大数表决之前就预执行了后面的功能,降低了一定的安全性,因此不适合数据敏感型的SaaS 业务。
6 结束语
传统网络安全防护措施多在本地部署入侵检测、防火墙等硬件设备,而SaaS 云的基础设施部署在云端,攻防对抗也发生在云端,因此可以利用SaaS 云中异构资源丰富和服务部署灵活的特点,通过交叉校验来提高安全性。本文结合当前基于云网融合SaaS 交付模式的特点,提出一种面向SaaS 安全的虚拟网络映射方法,将基于CMD 的组合服务模式建模为一个整数线性规划问题。在此基础上,提出基于深度强化学习的PJM算法,对状态、动作、奖励等概念进行定义,并设计一种输出嵌套结构规避MVNE 的映射贯序问题。实验结果表明,PJM 算法可有效缩短端到端时延,有助于运营商提供高可用、高可信、高安全的SaaS 服务,为电子签约、线上金融等高安全需求的SaaS 业务部署提供借鉴。但该算法面临一定的维度灾难问题,且作为一种演员评论家算法,其涉及的参数较多,参数调整较为繁琐。下一步将对PJM 算法的扩展性进行优化,并对SaaS 服务抽象出服务功能链进行划分,通过分区分段映射降低复杂度。