基于软件定义的安全功能服务链部署方法

2021-11-20 01:56寅,何
计算机工程与设计 2021年11期
关键词:虚拟化链路部署

唐 寅,何 嘉

(成都信息工程大学 计算机学院,四川 成都 610225)

0 引 言

随着电子商务、社交网络、即时通讯等海量新型互联网应用的出现,目前以TCP/IP协议为核心的互联网体系架构已很难满足快速增长的业务需求,亟需突破传统的固化封闭式网络体系架构。基于软件定义网络[1](software defined networking,SDN)和网络功能虚拟化[2](network function virtualization,NFV)等技术,如何合理、高效部署满足用户多样化需求的服务功能链(service function chain,SFC)已成为学术界和产业界关注的热点问题之一[3-10]。

在已有研究中,文献[7]将功能部署和流量路由问题建模为混合的整数线性规划问题,降低网络时延并实现负载均衡。文献[8]基于强化学习技术实现智能化的服务链资源调度与部署。文献[9]面向运营商网络中的资源碎片构建服务链优化策略,有效提高资源利用效率。但已有研究大多没有考虑同时到达的多条服务链的部署顺序,或是忽略了物理节点可提供的功能类型。本文基于SDN和NFV技术,开展基于软件定义的安全服务部署研究,提出了一种安全功能服务链部署方案。通过预处理同时到达的多个需求序列,优先部署资源需求较大的服务链,避免出现资源瓶颈,有效提升部署成功率;综合考虑多维度的资源需求和功能需求,降低网络成本,保障服务质量。

1 相关技术

1.1 软件定义网络

SDN的基本思想是将网络控制与数据转发相互分离,解耦网络控制功能和数据转发功能。采用编程模式实现集中化的管理控制功能,简化了网络管理的复杂性并促进网络的发展和创新。典型SDN采用三层逻辑架构,最上层为应用层,处理用户各种不同的业务应用;最底层的基础设施层负责基于流表的数据处理、转发和状态收集,中间的控制层为SDN的核心,主要负责对基础设施层各类资源的编排和管控。

SDN的核心思想主要包括:①将控制平面与数据转发平面分离;②通过集中控制器,实现网络策略、安全策略的集中管理和运维状态的全局性实时监控;③标准化南、北向接口,实现网络资源软件化定义。通过SDN技术理念,能够实现网络管理、应用部署自动化,安全管控集中化,同时提高网络传输性能。

SDN的上述特点实现了网络能力虚拟化、服务化,网络不再仅仅是基础设施,更是一种服务。在 SDN 框架理念中,通过将控制层和转发层分离,解决了网络节点繁多并且节点需要处理的数据量大的瓶颈,以及虚拟化节点增多并且存在无法实现租户隔离或者租户应用不在同一区域时的应用隔离的问题。基于SDN的集群网络体系,可以在网络搭建环境中灵活使用集群技术,当新的申请不能在本集群中满足时,可以申请其它设备中的虚拟资源,并且将原集群扩展到新的集群。通过将安全资源池化,形成安全资源中心,基于SDN方法可动态分配虚拟防火墙、WAF、IPS、VLB等虚拟化安全设备资源,形成安全服务链,为用户按需分配不同的安全服务。

1.2 NFV技术

NFV技术是由欧洲电信标准化协会(European telecommunications standards institute,ETSI)为突破传统电信网络架构局限性而提出的。NFV技术旨在通过将传统专业网元设备上的网络功能提取出来,并以虚拟化、软件化的形式运行在通用的硬件平台上,使网络资源同计算资源和存储资源一样进行池化和虚拟化,提供虚拟主机的可隔离、移动性、扩展性与硬件设备解耦合等优势,接受统一调度,实现软件化网络功能的灵活加载、按需部署和更新,方便远程管理和维护。

典型NFV体系结构如图1所示。NFV基础设施将通用服务器提供的计算、存储和网络资源进行虚拟化,形成不同类型的资源池。虚拟网络在虚拟化资源池的基础上实现各种网络功能。NFV管理和编排则在纵向上负责对上述两个部分进行配置和系统集成。

图1 NFV典型架构

1.3 软件定义安全

SDN和NFV架构的出现为安全体系提供了新的发展思路,并在文献中提出了软件定义安全(software defined security,SDS)概念。即,软件定义安全是通过将安全数据平面与控制平面分离,在底层将物理安全设备抽象为安全资源池,支持顶层以编程的方式进行统一、按需、灵活的安全服务编排与管理,以实现更加灵活、动态的安全防护机制。

借助SDN技术的流量调度优势和NFV技术的动态管理优势可简化安全服务功能的部署难度。通过利用SDN技术的拓扑感知和流量控制能力,有利于制定更加智能的部署策略并进行更快速、便捷的流量调度。基于NFV技术可以实现安全硬件的虚拟化,构建包含多种安全功能的安全资源池,并支持安全功能的灵活管理和动态部署。

2 系统架构与问题建模

2.1 系统架构

基于SDN和NFV技术,可以通过安全服务链的方式为虚拟网络提供定制化的安全服务,把匹配的网络流量导向安全服务链,进行安全控制和审计,这种方式使得安全防护服务部署更加灵活可控,便于操作。

图2给出一种基于软件定义安全架构的虚拟网络安全防护系统实现方法,系统主要由以下几部分组成:虚拟计算资源池、虚拟安全资源池、虚拟机监控管理器(Hype-rvisor)、支持虚拟接口的交换机、传统安全设备群、SDN控制器和安全控制中心平台。

图2 基于软件定义的虚拟网络安全防护系统架构

基于软件定义的虚拟网络安全防护系统通过将安全资源池化,形成安全资源中心,支持动态分配虚拟防火墙、WAF、IPS、VLB等虚拟化安全设备资源,形成安全服务链,为用户按需分配不同的安全服务。系统同时支持内嵌式虚拟安全资源池和外挂传统安全设备资源群,通过统一的安全控制中心平台定义规划安全服务链,实现安全资源与物理环境松耦合,支持安全资源中心动态扩容的同时业务不受影响。

安全控制中心平台根据用户需求,从虚拟安全资源池或外接安全设备群中获取安全资源,定制所需安全服务链,随后向SDN控制器下发流量牵引指令,将源虚拟机的流量重定向到该安全服务链,数据流经过vFW、vIDS等安全设备或虚拟安全设备组成的安全服务链的检测和防护后,再将流量送回目的虚拟机,确保了对虚拟化网络流量的有效监控和管理。以vIDS为例,具体工作过程如下:

(1)识别被牵引的数据流所属网络设备;

(2)判断系统设备类型,如果是非虚拟化设备则转步骤(3),否则转步骤(4);

(3)直接从物理网卡上捕获数据包;

(4)否则,读取虚拟网络配置信息,从虚拟网卡上捕获数据包;

(6)对数据包进行预处理,将处理后的数据包提交给入侵检测引擎;

(7)入侵检测引擎根据数据包的域标志,选择相应的入侵检测规则;

(8)根据相应的入侵检测规则,对网络数据包进行解包,提取数据包的特征;

(9)入侵检测引擎从入侵检测规则库中,获取入侵行为特征;

(10)进行特征匹配,如果发现入侵特征,则根据安全策略采取相应的入侵响应。

类似地,数据流被引接至按需定制的安全服务链后,在其它(虚拟)安全设备进行检测与防护的机制与传统安全设备工作机制基本相同,只是需要建立与虚拟机管理器、vSwitch、SDN控制器等的规范消息格式,从而能够及时检测发现和阻止安全威胁,并通知安全策略调整,维护整个虚拟网络环境的安全。

2.2 问题描述

在软件定义安全架构中,通过控制转发分离的特性,网络控制变得更加灵活并更具有扩展性。通过对底层物理网络进行虚拟化和逻辑抽象,由SDN控制器引导转发流量自动通过虚拟服务节点,可实现灵活、便捷、高效的服务功能,这种流量按序通过虚拟服务功能节点组成的序列称为服务链,如图3所示。

图3 服务链

面向用户的安全服务需求和由上层编排、下发的安全服务链,需要选择一条满足安全服务能力、安全功能顺序、资源需求的最优路径,该问题即基于服务链的安全功能部署问题(或称为映射问题),如图4所示。其中,图4(a)为一条安全服务链请求,按其功能请求顺序可表示为(FW,NAT,IPS)。存在多种部署方式可满足安全服务链的功能需求,如图4(b)和图4(c)。但从图中可知,图4(c)中的第二种部署方式明显优于图4(b)中的第一种部署方式。因此,需要开展安全功能服务链部署问题的研究,即依据安全服务需求序列选择相应的安全功能组件并进行路由,在最大限度满足功能需求、资源需求的前提下降低网络成本,保障服务质量。

图4 两种安全服务功能链部署方式

2.3 问题建模

底层网络拓扑可以用一个加权图表示GS=(VS,ES), 其中VS是由交换节点、安全功能节点构成的物理节点集合,VS=TS∪NS。TS表示由M个路由节点构成的交换节点集合,NS为防火墙等安全功能节点集合,共包含N个安全功能节点。NS支持实现φ种安全功能,即安全功能集合Ω={ω1,ω2,…,ωφ}={NAT,FW,IDS,IPS,…}。 ∀ni∈NS的计算资源能力和存储能力分别表示为Ci和Si,物理节点ni的安全功能能力Fi⊆Ω。ES是物理网络中链路集合, ∀es∈ES存在属性带宽能力,包含链路es的上行带宽容量B(es↑) 和下行带宽容量B(es↓)。es=(vi,vj),vi和vj为链路es的起点和终点。 ∀vi,vj∈VS, 如果i

图5 底层网络拓扑示例

定义同时到达的R条服务链请求Φ={Q1,Q2,…,QR}, 其中服务链请求Qr(∀Qr∈Φ) 可表示为有向序列Qr=(qr,0,qr,1,qr,2,…,qr,h-1,qr,h,qr,h+1,…,qr,H,qr,H+1), 共包含H个安全功能需求。其中,qr,0和qr,H+1分别表示服务链Qr的入口节点和出口节点,qr,h-1是qr,h的前一个安全功能需求,qr,h+1是qr,h的后一个安全功能需求。从qr,h到qr,h+1的需求链路表示为link(qr,h,qr,h+1), 对应带宽表示为bw(qr,h,qr,h+1)。 定义三元组 (fr,h,cr,h,zr,h) 表示 (qr,h所需的安全功能需求和资源需求,即fr,h为qr,h所需的安全功能需求,cr,h和zr,h分别为qr,h的计算资源需求和内存需求。如图6所示,服务链请求集合Φ={Q1,Q2,Q3}, 其中Q1的入口节点和出口节点分别为v1和v8,Q1共包含3个安全功能需求,依次为f1、f4和f2,f1是f4的前一个安全功能需求,f2是f4的后一个安全功能需求。Q1中f1功能需求需满足的计算资源需求和存储资源需求分别为3和1。从f1功能到f4功能的链路link(f1,f4) 对应的带宽需求bw(f1,f4)=4 Mbps, 从f4功能到f2功能的链路link(f4,f2) 对应的带宽需求bw(f4,f2)=3 Mbps。 在服务链部署过程中,既要满足安全功能的按序排列,也要满足安全功能之间的带宽需求。

图6 服务链请求示例

(1)

(2)

如果安全服务链请求Qr可成功部署于物理网络之上,则定义变量Zr=1,否则Zr=0。因此R条服务链请求Φ的部署问题可形式化为

(3)

s.t.

(4)

(5)

fr,h∈Fi, ∀vi∈NS,∀r∈[1,R],∀h∈[1,H]

(6)

(7)

(8)

(9)

其中,式(4)和式(5)分别保障了选择的物理节点能够满足安全服务需求的计算资源需求和存储资源需求,式(6)表示选择的物理节点能够提供服务链的安全功能需求。由于服务链中的每个安全功能需求能且仅能部署在一个物理安全节点上,因此定义式(7)以保障每个安全功能需求能且仅能部署在一个物理安全节点。式(8)表示选择的路由链路能够满足服务链的带宽需求。如式(9)所示,服务链部署于物理网络后,除接入流量和接出流量外,物理网络中所有节点应满足流量守恒。

3 一种启发式服务链部署算法

为了降低部署安全服务链所产生的网络成本,本文在满足服务链带宽需求、成功部署安全功能的前提下,将网络成本最小化作为服务链生成时的优化目标,提出一种启发式算法PMC(security service function chain placement with minimum cost)。面向同时到达的多个服务链请求,综合考虑各个服务链请求的计算资源需求、存储资源需求和网络资源需求,优先部署资源需求较大的服务链,避免物理节点的资源能力成为服务链部署的瓶颈,满足更多的服务链部署请求。

3.1 服务链综合需求定义

由于同时到达的服务链需求存在差异,定义W={w1,w2,…,wR} 表示所有R条服务链请求的综合需求,其中wr∈W为服务链请求Qr的综合需求。则wr可表示为

(10)

(11)

(12)

(13)

根据服务链综合需求大小对服务链请求降序排列,更新Φ为排序后的服务链请求序列,依次部署服务链。

3.2 PMC算法

本文提出一种启发式算法,实现对多样化安全功能服务链的协同部署。PMC算法的具体流程如下。

PMC算法:NFC Placement with Minimum Cost

输入:底层网络拓扑及相关属性、服务链请求序列Φ

输出:部署结果PATH,服务功能节点放置结果。

服务链请求序列到达;

(1) 根据式(10)计算综合需求W

(2) 对W降序排列,依据排序结果更新Φ

(3) for eachQrin Φ do

(4) ifQr中存在特权节点then

优先部署该节点, update PATH

(5) end if

(6) 根据带宽需求大小降序排列Qr中的所有链路请求,

(7) for eachlink(qr,h,qr,h+1) inQr

(8) ifxr,h=False andxr,h+1=False, then //两个端点均未部署

1、县域发展不平衡,且差距较大。受区位条件、发展基础等因素的影响,广西县域之间主要经济指标差距较大。如:2016年,县域经济总量最大的桂平市,GDP为322.72亿元,比排位居后的 10个县(市、区)GDP总和(288.69亿元)还多,是排最后1位的凤山县(21.24亿元)的15.2倍;从财政收入来看,2016年北流市财政收入跃居全区县(市)第一位(24.86亿元),相当于排位居后12个县(市、区)财政收入总和。

y(qr,h,qr,h+1)←1//标记为待定状态

(9) elseifxr,h=True andxr,h+1=True, then

选择满足链路带宽需求且hop数最小的路径路由, update PATH;

(10) else //以qr,h尚未部署,qr,h+1已部署为例

(11) ifxr,h-1=True, then

选择满足qr,h功能需求、 物理资源需求, 满足link(qr,h,qr,h+1)和link(qr,h-1,qr,h)两段链路带宽需求且两段链路网络成本之和最小的物理节点部署qr,h

(12) else

选择满足qr,h功能需求、 物理资源需求、link(qr,h,qr,h+1)带宽需求且与qr,h+1之间hop数最小的节点集合

(14) if size(Candi(qr,h))==1, then

选择Candi(qr,h)中的唯一节点, 部署qr,h, update PATH;;

(15) else

考虑qr,h的相邻未部署请求qr,h-1, 为qr,h选择部署节点, update PATH

(16) end if

(17) end if

(18) ify(qr,h-1,qr,h)==1 then

返回步骤(8)优先部署link(qr,h-1,qr,h)

(19) end if

(20) end for

对于同时到达的服务链请求序列,根据式(10)对每条服务链综合需求进行计算,并根据需求大小决定服务链处理顺序,优先映射需求较大的服务链,以满足更多的服务链需求,如步骤(1)~步骤(2)。

对于任意一条服务链,入口节点和出口节点已确定,即qr,0和qr,H+1已确定。在服务链部署过程中,遍历服务链中所有安全功能需求,优先部署只存在唯一部署方案的服务链功能请求,如步骤(4)~步骤(5)。如图6中对于服务链Q2中的安全功能需求q2,2=f5, 在图5所示的物理拓扑中只存在节点v15可提供该功能,即该功能需求能且仅能部署在节点v15上,则将功能需求q2,2部署在节点v15上(即N(q2,2)=v15)。

对于每条服务链,对通信链路按照带宽需求排序,并依据此顺序依次部署链路。如果链路link(qr,h,qr,h+1) 的两端的功能需求qr,h和qr,h+1均未部署,则标记链路link(qr,h,qr,h+1) 为待定状态,即y(qr,h,qr,h+1), 并部署下一条流量;如果链路link(qr,h,qr,h+1) 的一个端点已经成功部署,则对链路link(qr,h,qr,h+1) 进行部署。

如果链路link(qr,h,qr,h+1) 的两个端点均已部署,选择满足链路带宽需求且hop数最小的路径路由,即步骤(9);如果链路link(qr,h,qr,h+1) 的一个端点已经成功部署,则选择链路link(qr,h,qr,h+1) 中尚未部署的另一个端点(以qr,h为例,则qr,h+1表示已成功部署的端点)。如果端点qr,h的前一个和后一个安全功能均已部署,则根据端点qr,h的前一个安全功能需求qr,h-1和后一个安全功能需求qr,h+1, 在Gs可提供qr,h功能且满足计算资源和存储资源的候选节点中,选择满足link(qr,h,qr,h+1) 和link(qr,h-1,qr,h) 两段链路带宽需求且两段链路网络成本最小的安全功能物理节点作为qr,h的部署节点,即步骤(11);如果qr,h的前一个或后一个安全功能未部署,则采用K最短路径算法在可提供qr,h功能且满足计算资源和存储资源的所有候选物理节点中选择满足link(qr,h,qr,h+1) 带宽需求的节点和链路进行分配(步骤(13));如果存在多个候选节点,则综合考虑qr,h的前一个或后一个尚未部署的安全功能需求,尽量将两个连续的安全功能需求部署在同一个物理节点上(步骤(15)),并判断Qr中经过功能qr,h的另一条链路link(qr,h-1,qr,h) 是否处于待定状态。如果链路link(qr,h-1,qr,h) 处于待定状态,则使用相同的方法对链路link(qr,h-1,qr,h) 及其端点进行部署,并继续判断经过功能qr,h-1的未分配链路是否处于待定状态,即步骤(18))。如果链路link(qr,h-1,qr,h) 不是待定状态,则根据带宽需求排序得到的顺序部署下一条链路,直至服务链Qr中的所有功能需求和链路需求均部署完成。如果在部署过程中,Gs无法提供服务链需要的安全功能或无法满足服务链的资源需求,则该服务链部署失败。

4 算 例

本文基于图6所示的小规模物理网络拓扑,分别采用PMC算法和FF算法(优先适应算法,First-Fit)模拟同时到达5条服务链请求时服务链部署实施的结果。FF算法的核心思想是在满足安全功能需求、物理资源需求、网络资源需求的节点和链路中选择与迁移需求节点距离最短的第一个物理节点并部署服务链。两种算法部署的模拟实验结果见表1。

表1 部署效果对比

从表1可看出,采用PMC算法的5条服务链均能成功部署,而采用FF算法只成功部署了4条服务链,1条服务链部署失败。这是因为PMC算法通过对服务链综合需求进行评估,优先部署资源需求较大的服务链,有效避免了资源瓶颈导致的部署失败。此外,在PMC算法中,由于服务链安全功能需求qr,h是在Gs可提供qr,h功能且满足计算资源和存储资源的候选节点中,选择满足link(qr,h,qr,h+1) 和link(qr,h-1,qr,h) 两段链路带宽需求且两段链路网络成本最小的安全功能物理节点作为qr,h的部署节点,并且当存在多个候选节点时,综合考虑qr,h的前一个或后一个安全功能需求,尽量将两个连续的安全功能需求部署在同一个物理节点上,因而可有效节约部署成本。

5 结束语

SDN技术和NFV技术的兴起为传统安全模式提供了新的发展思路。本文首先简要介绍了SDN和NFV的典型架构模式,并提出基于软件定义理念的安全服务部署问题。通过提出一种启发式算法,优化安全服务部署成功率,有效降低网络成本,保障服务质量。未来将面向动态化的安全服务需求,展开安全功能服务链迁移与重配置技术研究。

猜你喜欢
虚拟化链路部署
一种基于Kubernetes的Web应用部署与配置系统
天空地一体化网络多中继链路自适应调度技术
晋城:安排部署 统防统治
部署
基于OpenStack虚拟化网络管理平台的设计与实现
对基于Docker的虚拟化技术的几点探讨
基于数据包分割的多网络链路分流系统及方法
H3C CAS 云计算管理平台上虚拟化安全防护的实现
部署“萨德”意欲何为?
存储虚拟化还有优势吗?