基于安全服务链的网络安全服务架构及其实现方法与流程

文档序号:16062492发布日期:2018-11-24 12:20阅读:463来源:国知局

本发明属于信息安全技术领域,特别涉及一种基于安全服务链的网络安全服务架构及其实现方法。

背景技术

随着网络规模的日益扩大和网络业务的多样发展,传统网络安全服务模式的弊端愈发突显。一是安全服务提供方式静态、僵化,大多通过在网络的关键位置部署硬件防火墙、ids等安全设备来提供安全服务,拓扑依赖严重,难以基于单个用户或业务的安全需求实现可定制的安全服务;二是安全服务更新困难,当网络状态或者安全需求发生变化时,需要人工调整安全设备的部署位置和配置相应的策略,运维成本高,灵活性差;三是安全资源浪费严重,安全设备的位置固定,难以为多用户或多业务流提供服务,即使业务流暂时无需使用服务,安全设备也需要始终保持服务状态,以保证及时响应服务请求,造成“高服务配低需求”。

sdn/nfv为革新网络安全服务模式带来了新契机。软件定义网络(softwaredefinednetworking,sdn)将网络的控制功能从转发功能中解耦出来,并使其直接可编程,实现了网络的集中管控;网络功能虚拟化(networkfunctionvirtualization,nfv)将以专有硬件形式部署的网络功能转变为在通用服务器上运行的虚拟网络功能(virtualnetworkfunction,vnf),解耦了硬件资源与软件功能,为网络功能的灵活编排提供了条件,并且目前此类虚拟化平台上运行的vnf可以达到接近硬件的性能。由此,借助sdn/nfv构建安全服务链(securityservicechain,ssc)成为变革传统网络安全服务模式的新途径。一方面,借助nfv技术,在x86服务器上以软件形式运行各类传统安全功能(如防火墙、ips、web过滤器、病毒扫描程序、网络访问控制程序等),另一方面,借助sdn的细粒度流量管控功能,根据用户或业务的安全请求,引导流量按序经过若干安全功能实例。然而,由于网络资源有限,如何将抽象的安全请求转换为具体的、优化的安全功能实例部署数量、位置和流量路由路径,从而在充分利用网络资源的同时达到减小安全服务时延等目标,即基于安全服务链的网络安全服务模式及实现问题亟待解决。



技术实现要素:

针对现有技术中的不足,本发明提供一种基于安全服务链的网络安全服务架构及其实现方法,在安全功能实例在资源需求和处理能力等方面异构的情况下,通过灵活组合实例、精确分割流量、选择承载实例的最优服务节点和建立服务节点间的多路径路由,以充分利用网络安全资源来提供可定制的安全服务,并减少安全服务的时延。

按照本发明所提供的设计方案,一种基于安全服务链的网络安全服务架构,其特征在于,包含安全服务管理平台、安全功能编排引擎和流量牵引引擎,其中,

安全服务管理平台,用于接收用户安全请求,提取安全服务链信息并传送给安全功能编排引擎和流量牵引引擎;

安全功能编排引擎,用于根据安全服务链信息选取承载实例的服务节点,形成安全功能实例部署视图,将安全功能实例部署视图交付给流量牵引引擎,并根据该安全功能实例部署视图向通用服务器下发启动安全功能实例指令;

流量牵引引擎,用于根据安全服务链信息和安全功能实例部署视图,获取安全功能实例之间的路由路径,并根据路由路径信息指导安全服务链创建。

上述的架构中,还包含通用服务器和sdn控制器;其中,安全功能编排引擎根据安全功能实例部署视图向通用服务器下发启动安全功能实例指令,通用服务器在接收到启动安全功能实例指令后,启动安全功能实例,并向安全服务管理平台发送安全功能实例注册请求,安全服务管理平台根据接收到的注册请求完成注册,并向通用服务器下发安全防护策略;流量牵引引擎将路由路径信息发送给sdn控制器,sdn控制器根据收到的路由路径信息向交换机下发流表规则,完成服务链创建。

一种基于安全服务链的网络安全服务实现方法,由上述的基于安全服务链的网络安全服务架构进行实现,该实现过程包含:虚拟安全服务拓扑设计阶段和物理安全服务拓扑构建阶段,其中,

虚拟安全服务拓扑设计阶段,当安全服务管理平台收到用户的安全请求时,提取安全服务链预处理信息,并将该预处理信息发给安全功能编排引擎和流量牵引引擎;

物理安全服务拓扑构建阶段,安全功能编排引擎根据收到的预处理信息,为安全请求所需的安全功能选择承载服务节点,形成安全功能实例部署视图,并发送给流量牵引引擎;流量牵引引擎根据预处理信息和安全功能实例部署视图,获取安全功能实例之间的路由路径,并根据路由路径信息指导创建安全服务链。

上述的实现方法中,虚拟安全服务拓扑设计阶段的提取安全服务链预处理信息中,根据安全请求集合、安全功能实例集合及预设迭代上限,并依据安全功能实例处理能力和资源需求,为安全请求分配满足其吞吐量需求的实例组合。

上述的实现方法中,根据安全功能实例及分配其上的吞吐量需求,对实例组合再进行合并,建立有向的虚拟安全服务拓扑,该虚拟安全服务拓扑表示为:gv=(v,l),其中,v∈v,v是虚拟节点,其代表安全功能实例或流的源/终点;l∈l,l是虚拟边,其表示两两实例之间顺序关系,或流的源/终点与实例之间的顺序关系。

上述的实现方法中,物理安全服务拓扑构建阶段的为安全功能选择承载服务节点,将安全服务节点选择建模为多目标优化问题,从节点资源碎片化程度和路径跳数两个维度评价安全服务节点选择方案;利用基于双向记忆的服务节点选择算法,求解获取满足安全请求所需安全功能的承载服务节点,形成安全功能实例部署视图。

上述的实现方法中,基于双向记忆的服务节点选择算法,包含如下内容:通过抗体群的全局搜索能力,迭代分离优势抗体群和近邻抗体群;优势抗体群经由记忆单元的学习操作与前代pareto-最优解相融合;近邻抗体群通过深度可变的自修复操作,配合备用库从不可行域边缘逼近pareto-最优解;每次迭代都以最新得到的pareto-最优解作为初始抗体群。

上述的实现方法中,物理安全服务拓扑构建阶段中的获取安全功能实例之间的路由路径,由基于混合禁忌搜索的服务路径建立算法实现,实现过程如下:

设置邻域搜索的最大迭代次数、算法的最大迭代次数、算法的无改进最大迭代次数和评价函数;占优解集和禁忌表置空;对于虚拟安全服务拓扑图的虚拟边,根据其端点之间的k最短路径集合,将虚拟边映射到底层网络,生成初始解集合,并更新占优解集;

对于占优解集中任意解,随机选取虚拟边,并调整其k最短路径集合中各条路径上的带宽分配,得到其邻域解;由该任意解的所有邻域解构成其邻域;对邻域中的元素按照评价函数数值进行排序,选取其中的多个元素来更新占优解集;采用轮盘赌策略选出候选解,根据藐视准则从候选解集或非禁忌的候选解集中选取最优解,并更新禁忌表;若占优解集未更新次数超过邻域搜索的最大迭代次数,则停止邻域搜索并进行下一步,否则,返回,重新构建邻域进行迭代,直至满足预设邻域搜索终止条件;

若算法迭代次数超过最大迭代次数,或者算法无改进迭代次数超过无改进最大迭代次数,则输出当前占优解集中的最优解,获取安全功能实例之间的路由路径,否则,返回,重新随机选取初始解进行迭代,直至满足预设算法终止条件。

上述的实现方法中,物理安全服务拓扑构建阶段中根据路由路径信息指导创建安全服务链,具体包含如下内容:流量牵引引擎将路由路径信息发送给sdn控制器;sdn控制器根据收到的路由路径信息,向交换机下发流表规则,完成安全服务链建立工作。

上述的实现方法中,物理安全服务拓扑构建阶段中还包含:安全功能编排引擎根据安全功能实例部署视图向通用服务器下发启动安全功能实例指令;通用服务器在启动安全功能实例后,向安全服务管理平台发送安全功能实例注册请求;安全服务管理平台在收到通用服务器的注册请求并完成注册后,向相应的通用服务器下发安全防护策略。

本发明的有益效果:

本发明网络安全服务架构以sdn/nfv为技术支撑,通过自动地分析安全请求、编排安全功能与引导网络流量来提供安全服务;安全服务实现过程中的建立安全服务链,分为两阶段,首先,在虚拟安全服务拓扑设计阶段,在不同安全功能实例的处理能力和资源需求存在差异的情况下,为安全请求分配满足其吞吐量需求的实例组合,并计算流量分割,从性能角度实现安全功能分解和实例共享,从而最小化实例所需消耗的资源总量。其次,在物理安全服务拓扑构建阶段,规划实例部署的最优方案,以兼顾服务节点的资源碎片化程度和服务节点之间距离,同时,通过引导流量按序经过实例,在完成安全服务链构建的同时减小安全服务时延;具有较强的访问安全性和可维护性,保证对网络设备进行有效管理的同时,保证网络拓扑的安全稳定性。

附图说明:

图1为实施例中网络安全服务架构示意图;

图2为实施例中网络安全服务架构原理图;

图3为实施例中网络安全服务实现方法示意图;

图4为实施例中基于双向记忆的服务节点选择算法流程图。

具体实施方式:

为使本发明的目的、技术方案和优点更加清楚、明白,下面结合附图和技术方案对本发明作进一步详细的说明。实施例中涉及到的技术术语如下:

针对传统安全服务模式中出现的拓扑依赖强、运维成本高、灵活性差、资源浪费、高服务配低需求等情形,借助sdn/nfv构建安全服务链,参见图1所示,本发明实施例提供一种基于安全服务链的网络安全服务架构,包含安全服务管理平台、安全功能编排引擎和流量牵引引擎,其中,

安全服务管理平台,用于接收用户安全请求,提取安全服务链信息并传送给安全功能编排引擎和流量牵引引擎;

安全功能编排引擎,用于根据安全服务链信息选取承载实例的服务节点,形成安全功能实例部署视图,将安全功能实例部署视图交付给流量牵引引擎,并根据该安全功能实例部署视图向通用服务器下发启动安全功能实例指令;

流量牵引引擎,用于根据安全服务链信息和安全功能实例部署视图,获取安全功能实例之间的路由路径,并根据路由路径信息指导安全服务链创建。

安全服务管理平台负责接收和分析来自用户或者网络异常检测工具的安全请求,从中提取和组织安全服务链的相关信息,如安全功能实例的种类、数量及其连接关系等,并将这些信息交给安全功能编排引擎和流量牵引引擎;安全功能编排引擎负责挑选可承载实例的服务节点,形成安全功能实例部署视图,交付给流量牵引引擎,并向服务节点下发指令,创建并启动实例,此外,实例在服务节点上启动后,向安全服务管理平台注册,由后者下发相应的安全防护策略;流量牵引引擎根据安全服务链相关信息和实例部署视图,计算路由路径,指导sdn控制器向交换机下发相应的流表规则,完成流量牵引工作。

优选的,参见图2所示,还包含通用服务器和sdn控制器;其中,安全功能编排引擎根据安全功能实例部署视图向通用服务器下发启动安全功能实例指令,通用服务器在接收到启动安全功能实例指令后,启动安全功能实例,并向安全服务管理平台发送安全功能实例注册请求,安全服务管理平台根据接收到的注册请求完成注册,并向通用服务器下发安全防护策略;流量牵引引擎将路由路径信息发送给sdn控制器,sdn控制器根据收到的路由路径信息向交换机下发流表规则,完成服务链创建。

基于上述的基于安全服务链的网络安全服务架构,本发明实施例还提供一种基于安全服务链的网络安全服务实现方法,参见图3所示,由上述的基于安全服务链的网络安全服务架构进行实现,该实现过程包含:虚拟安全服务拓扑设计阶段和物理安全服务拓扑构建阶段,其中,

s101、虚拟安全服务拓扑设计阶段,当安全服务管理平台收到用户的安全请求时,提取安全服务链预处理信息,并将该预处理信息发给安全功能编排引擎和流量牵引引擎;

s102、物理安全服务拓扑构建阶段,安全功能编排引擎根据收到的预处理信息,为安全请求所需的安全功能选择承载服务节点,形成安全功能实例部署视图,并发送给流量牵引引擎;流量牵引引擎根据预处理信息和安全功能实例部署视图,获取安全功能实例之间的路由路径,并根据路由路径信息指导创建安全服务链。

在虚拟安全服务拓扑设计阶段,在不同安全功能实例的处理能力和资源需求存在差异的情况下,为安全请求分配满足其吞吐量需求的实例组合,并计算流量分割,从性能角度实现安全功能分解和实例共享,从而最小化实例所需消耗的资源总量。在物理安全服务拓扑构建阶段,规划实例部署的最优方案,以兼顾服务节点的资源碎片化程度和服务节点之间距离,同时,引导流量按序经过实例,在完成安全服务链构建的同时减小安全服务时延。

物理网络拓扑可表示为gs=(n,e),其中,物理节点n∈n分为三类:转发节点ntr,仅负责数据转发功能;服务节点nsr,为安全功能实例提供运行平台,记其资源集合为r(包括cpu、内存等),且对c(r)表示资源数量;端节点nend,通常为流的源点和终点,可以是pc机、vm或云。e∈e是物理链路,带宽和时延分别为bwe和late。

安全请求以四元组标识,rq:=(src,dst,ch,run),其中,src和dst分别为rq对应的流的源地址和目的地址;ch是安全服务链,ch={f1,f2,...,fn},fi是安全功能(1≤i≤n),若1≤j=(i+1)≤n,则称fi为fj的直接前继安全功能,记为pre(fj)={fi},同理,fj为fi的直接后继安全功能,记为succ(fi)=fj;run是rq的运行能力需求,本发明将其定义为rq对fi的吞吐量的期望值,它是选择实例的种类和个数,以及是否拆分流量的依据。

同一安全功能可能有多种实例,记fi的实例种类集合为ins(fi)={iti1,iti2,...,itin}。由于不同实例种类可能具有不同的资源需求、处理能力和处理时延,故以五元组标识,itij:=(p_type,type,ins_n,cap,pd),其中,p_type是实例对应的安全功能,如防火墙、ids等;type是实例种类,如不同的防火墙软件;ins_n是实例对服务节点的资源需求集合,记itij对资源r∈r的需求量为cap是处理能力,通常采用吞吐量表征,记itij的吞吐量为cij;pd是处理时延。

在虚拟安全服务拓扑设计阶段,本发明的另一个实施例中,根据安全请求集合、安全功能实例集合及预设迭代上限,并依据安全功能实例处理能力和资源需求,为安全请求分配满足其吞吐量需求的实例组合。具体执行可通过基于实例组合的虚拟安全服务拓扑设计算法(算法1)进行实现,该算法内容可设计如下:记为分配给安全请求rqm的实例itij的个数,i为总的服务节点资源消耗(如式(1)所示,τr是资源r的重要性因子,),d为流量拆分的分散程度(如式(2)所示,在安全服务链一定的条件下,流所要经过的实例越多,其需要进行更多次拆分)。

在得到rqm关于fi的实例组合方案后,记为rqm分配在实例itij上的吞吐量需求,它满足:cij越大,越接近cij。

考虑到某些实例的处理能力可能高于分配在其上的吞吐量需求,可对各实例组合方案再进行合并,以进一步降低服务节点资源消耗。由此,建立有向的虚拟安全服务拓扑gv=(v,l),各符号的具体含义如下:

v∈v是虚拟节点,若其代表实例itij,则权值w(v)是各安全请求分配在该实例上的吞吐量需求集合:当时,反之,生成若干节点v'代表itij,使得对于每一v',都有若其代表流的源点s,则w(v)={rqm.run|rqm.src=s}是以s为源点的安全请求的吞吐量需求集合,终点情况类似。

l∈l是虚拟边,表示两两实例之间,或者流的源(终)点与实例之间的顺序关系。若在rqm和rqn的安全服务链中,都有pre(fj)={fi},且fi和fj的实例itip和itiq分别对应虚拟节点vp和vq,则存在一条从vp到vq的虚拟边,记为l(vp,vq),其权值w(l(vp,vq))是rqm和rqn分配在该虚拟边上的带宽需求集合,即其中当边的端节点含有流的源点或终点时,情况类似。此外,为便于进行虚拟边的多径映射,以id(l)={rqm,rqn,,…}标记l上承载的安全请求。

在物理安全服务拓扑构建阶段,本发明的再一个实施例中,依次将服务节点选择和服务路径建立建模为优化问题,并设计不同的启发式算法进行求解。表1是变量说明。

表1变量说明

本实施例中将服务节点选择问题建模为多目标优化问题(问题p),从节点资源碎片化程度和路径跳数两个维度来评价服务节点选择方案。

其中,frai以ni上各类资源的利用率偏差值衡量其资源碎片化程度(式(6)),偏差值越小,各类资源的利用率越趋于均衡,碎片化程度越低;式(7)表示最小化最大的路径跳数;式(8)是服务节点资源容量约束;式(9)是实例部署的唯一性约束;式(10)和(11)是流的源(终)点的物理位置约束,其中,vs和vd分别为虚拟安全服务拓扑中的源、终点,对应物理位置na和na';式(12)是决策变量取值约束。为便于叙述,式(3)和(7)分别记为f1(x)和f2(x),其中

物理安全服务拓扑构建阶段中的为安全功能选择承载服务节点、形成安全功能实例部署视图,本发明的再一个实施例中通过执行基于双向记忆的服务节点选择算法实现。该基于双向记忆的服务节点选择算法可设计为如下内容:通过抗体群的全局搜索能力,分离优势抗体群和近邻抗体群,其中,前者经由记忆单元的学习操作与前代pareto-最优解相融合,保证解集质量不退化;后者通过深度可变的自修复操作配合备用库从不可行域边缘逼近pareto-最优解,增加抗体群多样性。此外,每次迭代都以最新得到的pareto-最优解作为初始抗体群,加快了收敛速度。算法流程如附图4所示,下面简述算法的相关数据结构以及主要操作。

(1)相关数据结构

定义1:抗体。抗体a是问题p的一个候选解x的编码,a=e(x)=(a1,a2,...,an),其中,af=i表示实例vf部署到服务节点ni上(即xif=1),1≤f≤n,af∈n+;n=|vins+vend|。特别地,由于流的源、终点的物理位置确定,若af对应源(终)点,则其值是已知的,且在后文中如无特别说明,任何操作都不会改变它。

此种编码方式将实例与服务节点之间的二维映射关系转化为了一维向量。为便于叙述,记则对于第it代中任一抗体ai(it),如果f3(e-1(ai(it)))=0,则称ai(it)为可行抗体,反之称为不可行抗体,且f3(e-1(ai(it)))越大,称ai(it)的约束违反程度越大。

如果ai(it)和aj(it)均为可行抗体,且满足以下条件:

则称ai(it)pareto支配aj(it),记为ai(it)>aj(it)。

记第it代抗体群如果对于ai(it),a(it)中不存在其它可行抗体a*(it),满足a*(it)>ai(it),则称ai(it)是a(it)中的pareto-最优抗体。

定义2:记忆单元。记忆单元是抗体群a(it)中所有pareto-最优抗体的集合,即包含了当前pareto-最优的服务节点选择方案,只需从中选择一种用于实施。记忆单元的规模r(it)会随算法运行而动态改变。为提高解集质量,假定其上限值为nm。

定义3:备用库。备用库是抗体群a(it)中前nb个约束违反程度小的不可行抗体的集合。

(2)基于偏好的抗体群初始化

为保证服务节点选择的正确性和考虑路径跳数、资源碎片化问题,本发明为每个实例建立服务节点偏好列表,定义实例vf对服务节点ni的偏好值如式(13),并从安全服务链的起始实例节点出发,依次为各实例按照偏好列表顺序选择满足资源需求的服务节点,并在选择过程中综合考虑待部署实例与已部署实例之间的距离,初步实现优化目标。

其中,表示实例在服务节点上对某种资源的占用比例;σ是一个很小的正常数。由此,按照从大至小的顺序排列各服务节点,构成vf的服务偏好列表pl(vf)。

(3)基于自适应克隆规模的克隆操作

根据抗体ai(it)的抗体-抗原亲和力及抗体-抗体亲和度,对其克隆规模进行自适应调整。

定义4:抗体-抗原亲和力affi(it)。为将可行和不可行抗体的亲和力计算统一起来,将minf3(x)作为问题p的一个目标函数。由此,首先通过比较所有抗体的单个目标函数值(式(14)),得到抗体对该抗原(fj(x))的相对亲和力affij(it)(式(15)),之后将affi(it)定义为抗体对所有抗原的相对亲和力之和(式(16)),这可以避免某个目标函数值过大或过小对整体亲和力结果的影响。

定义5:抗体-抗体亲和度ψi(it)。

ψi(it)=min{exp(-||ai-aj||)}(17)

其中,i≠j,1≤i,j≤n(it);||·||为欧氏距离,且归一化处理后0≤||·||≤1。

综上,ai(it)的克隆规模pi(it)如式(18)。其中,h>n是与克隆规模有关的设定值,取h=3n;int()是取上整函数。由此,当抗体间抑制作用越大(即ψi(it)越大),而抗原刺激越小(即affi(it)越小)时,克隆规模越小。

(4)克隆变异操作

为促进抗体群的进化,需要对抗体进行克隆变异。由于抗体中每个编码标识了实例所要部署的服务节点,为使变异操作有意义,对a(it)中的每个抗体,先随机选中其中的两点,然后以概率mp=mp0·(1-it/t)交换其值,其中,mp0为初始变异概率,it为当前迭代次数,t为最大迭代次数。mp随迭代次数的增加而降低。

(5)克隆选择操作

克隆选择操作从抗体群中分离可行和不可行抗体,分别构成可行和不可行抗体群。进一步,根据pareto支配关系,将可行抗体群中的pareto-最优抗体提取出来,构成优势抗体群p(it);根据约束违反程度,即f3(e-1(ai(it)))的大小,将不可行抗体群中约束违反程度小的前nq个抗体提取出来,构成近邻抗体群q(it)。q(it)中的抗体逼近可行域边缘,将其加入到下一代抗体群中可以提高抗体群的多样性。

(6)近邻抗体群自修复操作

自修复操作通过将资源超载程度大的节点上的实例迁移至资源充裕的节点,减小抗体的约束违反程度,使其进入或更加逼近可行域。

假设近邻抗体群中的抗体按照其约束违反程度由大至小排序,对于qi(it),计算节点nj的资源负担burj,并按其由大至小排序,若存在负担值为0的节点,则进行实例迁移,具体地:从负担值最大的节点开始,随机选择一个实例迁移至负担值为0的节点,若新抗体qi'(it)的约束违反程度小于qi(it),则接受此次迁移,否则,选择其它实例进行迁移,直至遍历完该节点上所有实例,之后再对下一个节点进行实例迁移,直至不存在负担值为0的节点。对抗体来说,节点nj上的实例vk迁移至nj',意味着由qik=j变为qik=j'。假设只对m个抗体尝试实例迁移,则m是自修复操作的深度,改变m可以调整时间开销。

(7)备用库替换操作

通过用近邻抗体群中约束违反程度更小的抗体替换备用库中已有抗体,保证备用库不断逼近可行域。

(8)记忆单元学习操作

按照pareto支配概念,从更新后的优势抗体群和记忆单元中提取pareto-最优抗体,存储在记忆单元中。当记忆单元中的抗体个数超过上限值nm时,采用基于拥挤距离的更新操作。

结合上述操作,基于双向记忆的服务节点选择算法(算法2)的主要步骤描述如下:

本实施例中将服务路径建立问题建模为带容量约束的多商品流问题。

其中,由于在虚拟安全服务拓扑中,同一安全请求可能对应由不同实例构成的多条虚拟路径,将它们的最大时延作为该请求的服务时延cltsd(式(20)),sgn()为阶跃函数,并规定sgn(0)=0。式(21)是物理链路的带宽容量约束;式(22)是流守恒约束。式(23)表示虚拟边必须映射在其端点对应的两个服务节点之间的路径上,xum'和xvn'都是为表达该约束而引入的指示变量,其定义如式(25)。其中,pt(m',n')是服务节点m'和n'之间k最短路径集合。式(24)是决策变量取值约束。

物理安全服务拓扑构建阶段中的获取安全功能实例之间的路由路径,本发明的再一个实施例中通过基于混合禁忌搜索的服务路径建立算法实现,实现过程如下:设置邻域搜索的最大迭代次数、算法的最大迭代次数、算法的无改进最大迭代次数和评价函数;占优解集和禁忌表置空;对于虚拟安全服务拓扑图的虚拟边,根据其端点之间的k最短路径集合,将虚拟边映射到底层网络,生成初始解集合,并更新占优解集;对于占优解集中任意解,随机选取虚拟边,并调整其k最短路径集合中各条路径上的带宽分配,得到其邻域解;由该任意解的所有邻域解构成其邻域;对邻域中的元素按照评价函数数值进行排序,选取其中的多个元素来更新占优解集;采用轮盘赌策略选出候选解,根据藐视准则从候选解集或非禁忌的候选解集中选取最优解,并更新禁忌表;若占优解集未更新次数超过邻域搜索的最大迭代次数,则停止邻域搜索并进行下一步,否则,返回,重新构建邻域进行迭代,直至满足预设邻域搜索终止条件;若算法迭代次数超过最大迭代次数,或者算法无改进迭代次数超过无改进最大迭代次数,则输出当前占优解集中的最优解,获取安全功能实例之间的路由路径,否则,返回,重新随机选取初始解进行迭代,直至满足预设算法终止条件。可设计为包括4个关键内容:数据设置;邻域搜索方式;评价函数;算法终止条件。

(1)数据设置

1.初始解集

为了提高初始解的质量,在算法初始化过程中生成n个初始解,构成初始解集s0={s1,s2,...,sn},其中一个初始解的生成过程为:随机选择虚拟安全服务拓扑图中入度为0的节点,为其所连的所有虚拟边建立相应的服务路径。对于每条虚拟边,首先进行单径映射,即在其对应的k最短路径集合中,按照路径由短到长的顺序依次遍历,直至找到一条满足该虚拟边带宽需求的路径;若不存在这样的单条路径,则按照优先将尽可能多的带宽分配在长度较短的路径上的思想进行多径映射。当遍历完与某节点相连的所有虚拟边后,将该节点和这些边都删除,再随机选择入度为0节点进行迭代搜索,直至遍历完图中所有节点和边。

2.占优解集

对于解集s0={s1,s2,...,sn},将各解按照目标函数值,即(记为h(si))从小到大排序,并选取前m个解构成占优解集ds={s1,s2,...,sm},h(s1)≤...≤h(sm)。在算法执行过程中,通过不断更新占优解集,保证该解集中始终保存着最优解,并且根据占优解集更新与否,动态调节局部搜索深度。

3.禁忌表

假设虚拟边和物理链路都以正整数标识,禁忌表tl=({(l,{yab|1≤a≤|e|,b=l})|1≤l≤|l|},ctl),其中l是虚拟边标识,yab是物理链路a分配给虚拟边b的带宽。禁忌表长度取7。

(2)邻域搜索方式

对于解si,随机选择一条虚拟边,调整其k最短路径集合中各条路径上的带宽分配,保证新的路径建立方案能够满足该虚拟边的带宽需求,从而得到邻域解进而,所有邻域解构成邻域其中ns是邻域空间大小,ns=nsmin+nt·(nsmax-nsmin)/nt,其中,nsmax=l和nsmin=0.5l分别为最大和最小邻域空间,nt和nt分别是邻域搜索的当前和最大迭代次数。需要注意的是,此邻域搜索方式可保证得到的邻域解满足式(22)和(23),但是可能不满足式(21),需要在后续操作予以剔除。

(3)评价函数

将目标函数h(s)作为评价函数,对于不可行解,为其设置极大的评价值进行淘汰。

(4)算法终止条件

只要满足任一条件,算法终止:迭代次数超过最大迭代次数t;经过连续r次迭代,解都没有得到改进,即目标函数值保持不变。

本发明当安全服务管理平台收到用户的安全请求时,执行本发明提出的基于实例组合的虚拟安全服务拓扑设计算法,得到预处理信息;安全服务管理平台将预处理信息发给安全功能编排引擎和流量牵引引擎;安全功能编排引擎根据收到的预处理信息,执行本发明提出的基于双向记忆的服务节点选择算法,为安全请求所需的安全功能选择合适的承载服务节点,即部署安全功能实例;安全功能编排引擎根据安全功能实例部署信息,向相应的通用服务器下发启动安全功能实例指令;通用服务器在启动安全功能实例后,向安全服务管理平台注册安全功能实例;安全服务管理平台在收到通用服务器的注册请求并完成注册后,向相应的通用服务器下发安全防护策略;流量牵引引擎根据从安全服务管理平台收到的预处理信息和从安全功能编排引擎收到的安全功能实例部署信息,执行本发明提出的基于混合禁忌搜索的服务路径建立算法,计算安全功能实例之间的路由路径,并发送给sdn控制器;sdn控制器根据收到的路由路径信息,向相应的openflow交换机下发流表规则,完成安全服务链建立工作。在安全功能实例在资源需求和处理能力等方面异构的情况下,本发明通过灵活组合实例、精确分割流量、选择承载实例的最优服务节点和建立服务节点间的多路径路由,达到充分利用网络安全资源来提供可定制的安全服务的目标。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

结合本文中所公开的实施例描述的各实例的单元及方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已按照功能一般性地描述了各示例的组成及步骤。这些功能是以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不认为超出本发明的范围。

本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如:只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1