一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

openstack加密链路管理方法和系统与流程

2021-10-24 12:56:00 来源:中国专利 TAG:网络安全 加密 链路 方法 系统


1.本发明涉及一种openstack加密链路管理方法和系统,属于网络安全、信息处理技术领域。


背景技术:

2.为了增强openstack集群中虚拟机的反跟踪、反溯源能力,专利cn110191105b提供了一种openstack加密链路实现方法及系统。如图1所示,openstack虚拟机通过加密链路访问目标站点,加密链路由网络节点和若干个中间节点组成;一条加密链路中使用哪些中间节点以及中间节点的连接顺序需要在加密链路建立之前预先设定并告知网络节点管理程序。该专利中预先设定加密链路由中间节点1,中间节点2,
……
,中间节点n按顺序连接而成;网络节点管理程序先控制网络节点连通中间节点1形成一条加密隧道,然后控制中间节点1连通中间节点2形成一条加密隧道,
……
,依次连通这些加密隧道,形成一条完整的加密链路。
3.该方案中加密链路的中间节点列表由网络节点上的管理程序定义,通过管理程序可以自由地排列若干中间节点,组成一条新的链路。随着使用规模的扩大,该方案存在如下待改进之处:1、缺乏对具体的链路中间节点选取和管理的方法;2、在所有节点都完成建立连接之前,网络节点管理程序无法预先知道加密链路是否能够完成建立,即中间节点是否都可连通;3、自由选取中间节点时,没有考虑均衡中间节点的网络延迟和其上已建立的加密隧道数量,进而导致中间节点的流量负载不均衡,不能充分利用中间节点的带宽传输能力。


技术实现要素:

4.发明目的:针对上述现有技术存在的问题,本发明目的在于提供一种openstack加密链路管理方法和系统,实现链路中间节点的自动选取和管理,使得建立的加密链路在网络延迟和负载均衡方面是综合最优的。
5.技术方案:为实现上述发明目的,本发明提供的一种openstack加密链路管理方法,包括如下步骤:根据加密链路上加密隧道数量将openstack集群中的网络节点与目标站点间的中间节点进行分层得到多个中间层,每个中间层至少包括一个中间节点;向网络节点和所有中间节点发出请求以获取其与所有相邻节点之间的网络延迟,并向所有中间节点发出请求以获取其已建立的加密隧道数量;其中网络节点的相邻节点为第一层中间层中所有的中间节点,某一中间节点的相邻节点为其所在中间层指向目标站点的下一层中间层中的所有中间节点,最后一层中间层中的中间节点的相邻节点设为互联网中的指定站点;以网络节点为起点,目标站点为终点,综合网络延迟和中间节点上已建立的加密隧道数量作为相邻节点之间的距离,网络延迟和已建立的加密隧道数量越大则距离越大,
应用a星算法选取使得整条加密链路上距离最小的可连通的中间节点作为加密链路使用的中间节点。
6.作为优选,不同中间层中的中间节点由用户配置或者随机分配。
7.作为优选,向节点发出获取网络延迟的请求时,请求中包括相邻节点的ip地址。
8.作为优选,a星算法中相邻节点之间的距离根据如下算式之一确定:或者其中(y1,y2)是(x1,x2)的相邻节点, x1、y1为中间节点所在中间层的序号,x2、y2为中间节点在中间层中的序号,为 (x1,x2)到(y1,y2)的网络延迟,为(y1,y2)上的加密隧道数量,m为调节参数,d为阶梯宽度,为(x1,x2)到(y1,y2)距离;网络节点记为(0,1),目标站点已建立的加密隧道数量记为0,最后一层中间节点到目标站点的距离以中间节点到互联网中的指定站点的网络延迟计算。
9.作为优选,a星算法中的评估函数为:其中,n为中间层数量,l为调节参数,为所有网络延迟中的最大值,是从起点到(x1,x2)的节点距离之和。
10.进一步地,在a星算法没有成功选出加密链路上的中间节点时,重新对中间层进行划分,并基于重新划分的结果,获取网络延迟和已建立的加密隧道数量,再重新运行a星算法,直到成功找出可连通的加密链路使用的中间节点或达到最大选路次数。
11.作为优选,在a星算法没有成功选出加密链路上的中间节点时,根据算法达到的最深的中间层数确定不可连通层,提示用户或自动对不可连通层的中间节点进行调整,并基于调整后的结果,获取需要的网络延迟和已建立的加密隧道数量,再重新运行a星算法,直到成功找出可连通的加密链路使用的中间节点或达到最大选路次数。
12.本发明提供的一种openstack加密链路管理系统,包括:网络节点管理程序模块,用于记录加密链路使用的中间节点信息,以及保管加密秘钥;链路管理服务模块,用于在接收到设置加密链路请求时,选择加密链路使用的中间节点;包括:节点逻辑分层单元,用于根据加密链路上加密隧道数量将openstack集群中的网络节点与目标站点间的中间节点进行分层得到多个中间层,每个中间层至少包括一个中间节点;信息获取单元,用于向网络节点和所有中间节点发出请求以获取其与所有相邻节点之间的网络延迟,并向所有中间节点发出请求以获取其已建立的加密隧道数量;其中网络节点的相邻节点为第一层中间层中所有的中间节点,某一中间节点的相邻节点为其所在
中间层指向目标站点的下一层中间层中的所有中间节点,最后一层中间层中的中间节点的相邻节点设为互联网中的指定站点;以及,节点选择单元,用于以网络节点为起点,目标站点为终点,综合网络延迟和中间节点上已建立的加密隧道数量作为相邻节点之间的距离,网络延迟和已建立的加密隧道数量越大则距离越大,应用a星算法选取使得整条加密链路上距离最小的可连通的中间节点作为加密链路使用的中间节点。
13.进一步地,所述系统还包括:设置在网络节点和中间节点上的信息采集程序模块,用于在接收到链路管理服务模块发出的获取网络延迟请求和获取已建立的加密隧道数量请求时,通过ping指定的相邻节点ip获取与相邻节点的网络延迟,统计本节点上已建立的加密隧道数量,并向链路管理服务模块反馈。
14.本发明提供的一种计算机系统,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述计算机程序被加载至处理器时实现所述的openstack加密链路管理方法。
15.有益效果:与现有技术相比,本发明具有如下优点:1、本发明根据openstack加密链路需要的隧道数量对中间节点进行逻辑分层,降低了链路中间节点选取的难度,能够将链路中间节点的选取问题抽象为节点间的路径寻优问题,进而采用a星寻优算法获得最优的加密链路使用的中间节点。
16.2、本发明将a星算法应用于加密链路管理,能够在建立加密链路之前,预先知道所选中间节点是否能够形成可连通的加密链路。
17.3、本发明将a星算法应用于加密链路管理,所建立的加密链路综合考量中间节点网络延迟和已建立加密隧道数量,使得所选择的中间节点组成的加密链路在网络延迟和负载均衡方面是综合最优的。
附图说明
18.图1为现有openstack加密链路拓扑示意图。
19.图2为本发明实施例的openstack加密链路拓扑示意图。
20.图3为本发明实施例的加密链路管理交互流程示意图。
21.图4为本发明另一实施例的加密链路管理交互流程示意图。
具体实施方式
22.下面将结合附图和具体实施例,对本发明的技术方案进行清楚、完整的描述。
23.本发明实施例提供了一种openstack加密链路管理方法,在现有方法的基础上增加链路管理服务(链路管理服务可部署在任何与网络节点、中间节点连通的节点上)实现中间节点的自动选取,链路管理服务应用a星算法选取可连通的中间节点,在计算相邻节点(相邻节点在后续描述中详细定义)间的距离时把节点间的网络延迟和节点已建立的加密隧道数量反映到节点距离上,从而能够选取可连通的中间节点组成加密链路,并可以使得加密链路在负载均衡和网络延迟方面是综合最优的。a星算法是经典的寻路算法,具有良好的可采纳性、信息性、单调性,如果问题有解,则a星算法一定能够找到最优解;在后续的描述中,仅阐述如何应用a星算法,而不赘述a星算法本身。
24.具体地,本发明实施例的openstack加密链路管理方法主要包括如下步骤:1、中间节点逻辑分层。
25.在选取一条加密链路之前,首先从逻辑上把中间节点划分为到不同的中间层中;中间层包括哪些节点可以由用户配置,也可以由链路管理服务随机分配;用户可以根据实际加密链路上隧道数量需求配置中间层的层数n(也即一条加密链路上隧道数量)。如图2中所示:这条加密链路有3个中间层,中间层1包括节点:中间层1节点1,中间层1节点2;中间层2包括节点:中间层2节点1,
……
;并且这些中间节点各不重复;每个中间层至少要有一个中间节点。
26.在一条加密链路中,每个中间层会被算法选取一个节点用于组成加密链路;如图2所示的加密链路选取了中间层1节点1、中间层2节点3、中间层3节点2。
27.为了统一表述,把网络节点记为第0层节点1,目标站点记为第n 1层节点1;节点统一可以记为(x1,x2),其中x1为节点所在中间层序号,x2为节点在本层中的序号。
28.相邻层:相邻两层之间没有其他中间层,并且以指向目标站点的方向相邻;例如,第0层的相邻层是第1层,第1层的相邻层是第2层;但是第2层不是第0层的相邻层,第0层不是第1层的相邻层。
29.相邻节点:节点所在中间层的相邻层的节点是本节点的相邻节点;例如,中间层1的所有节点都是网络节点的相邻节点。网络节点的相邻节点为第1层中间层中所有的中间节点;最后一层中间层中的中间节点的相邻节点为目标节点,由于目标站点是互联网中不确定的目标,在建立加密链路阶段可以设置为互联网中的指定站点,如百度等知名网站。
30.2、网络延迟和已建立的加密隧道数量的信息获取。
31.2.1、链路管理服务向网络节点和中间节点发送请求以获取所有节点和其相邻节点之间的网络延迟。
32.请求中包括:节点的相邻节点ip地址。
33.网络延迟:节点和其相邻节点之间的网络延迟单位为微秒,并且为了方便计算,四舍五入小数点后的部分,网络延迟小于1微秒的默认处理为1微秒;网络节点可通过ping相邻节点ip的方式获得网络延迟。
34.为了统一表述,使用如下方式记录节点之间的网络延迟:其中(y1,y2)是(x1,x2)的相邻节点。
35.例如,网络节点和中间层1节点1之间的网路延迟记为tnd((0,1),(1,1)),网络节点和中间层1节点2的网路延迟记为tnd((0,1),(1,2)),依次类推记录。
36.如果节点之间网络不通,则网络延迟记为0;特别地,不需要向目标站点发送请求。
37.2.2、链路管理服务向各中间节点发送请求以获取节点已建立的加密隧道数量。
38.中间节点可以通过查询并统计节点上生成的网络隧道设备数量获取已建立的加密隧道数量。
39.为了统一表述,使用如下方式记录节点(x1,x2)的加密隧道数量:例如,中间层1节点1的加密隧道数量记为tun(1,1),中间层1节点2的加密隧道数
量记为tun(1,2),依次类推记录。
40.特别地,不需要向网络节点和目标站点发送请求,网络节点和目标站点的加密隧道数量默认为0,即,tun(0,1)=0,tun(n 1,1)=0。
41.上述步骤2.1、2.2可以合并执行,减少发送的请求数量。
42.2.3、选取所有网络延迟中的最大值记为tndmax。
43.3、应用a星算法进行中间节点选择。
44.以网络节点为起始点,以目标节点为终点,应用a星算法选取加密链路需要经过的中间节点;下面描述如何把前述步骤中的节点和收集到的数据应用于a星算法。
45.相邻节点:如前所述相邻节点的定义,即为a星算法中相邻节点。
46.不可通相邻节点:相邻节点间网络延迟为0的节点,为a星算法中不可通相邻节点。
47.例如,中间层1节点1是网络节点的相邻节点,假如tnd((0,1),(1,1))=0,那么表示网络节点无法连通中间层1节点1,即中间层1节点1是网络节点的不可通相邻节点。
48.相邻节点之间的距离:把网络延迟和加密隧道数量按照一定的算式转化为节点距离,作为a星算法中相邻节点之间的距离。网络延迟和已建立的加密隧道数量越大则距离越大,应用a星算法的目的是选取使得整条加密链路上距离最小的可连通的中间节点。本实施例中,优选的转换方式是将节点上已建立的加密隧道数量作为影响网络延迟的一个因素,对采集到的网络延迟进行一定百分比的放大,从而得到节点的距离,采用的算式为:其中(y1,y2)是(x1,x2)的相邻节点;m在计算中是一个固定的数值,为调节参数,调节加密隧道数量对相邻节点距离的影响大小,可根据实际的经验值确定;为了避免小数计算将数值放大100倍。例如,计算中间层1节点1和其相邻节点中间层2节点1之间的距离:中间层节点到目标站点的启发距离按如下方式计算,作为a星算法中启发函数:其中,l计算中是一个固定的数值,为调节参数,可根据实际的经验值确定。
49.应用于a星算法的节点的评估函数f:把从起始节点(网络节点)移动到中间节点(x1,x2)的所经过的节点间距离之和记为:,并且那么,节点(y1,y2)的评估函数计算方式为:;其中(y1,y2)是(x1,x2)的相邻节点,并且。
50.通过以上处理,应用a星算法选取从网络节点到目标站点需要经过的中间节点,然后使用这些中间节点组成加密链路;依据a星算法的特性,这条加密链路一定是在以上约定条件下的最优链路。
51.在另外实施例中,也可以采用其他方式将网络延迟和负载转化为a星算法的节点
距离。例如可以把已建立的加密隧道数量进行阶梯式的处理,加密隧道数量除以阶梯宽度d(例如10),然后取整数部分,整数部分不足1的取1,乘以网络延迟作为a星算法距离;具体算式如下:其中d表示阶梯宽度,例如可以为10,实际根据需要调整;是对加密隧道数量进行阶梯式处理的算式,整数部分不足1的取1。
52.如果a星算法没有选出中间节点,那么说明这些节点在以上约定条件下不能形成可连通的加密链路;此时可以得到的信息是:中间节点最深已经选取到哪一层了,那么可以定义它的下一层为不可连通层;例如已经最深选取到第6层了,那么第7层为不可连通层;特别地,如果已经选取到了最后一层第n层了,那么第n层为不可连通层;告知用户不可连通层序号,用户可根据需要调整不可连通层的节点,重复以上过程选出可连通的加密链路。
53.用户、网络节点管理程序、链路管理服务和节点之间的交互图如图3所示。
54.如图4所示,本发明另一实施例提供的openstack加密链路管理方法中,在a星算法选路失败后,也可以利用链路管理服务的自动选择节点功能,实现加密链路自修复功能;当链路管理服务不能从当前的节点中选择出可连通节点形成加密链路时,可以根据选路结果把不可连通层的节点全部删除并重新随机分配(或者重新随机分层),然后重新选择加密链路中间节点;重复以上过程直到选出能够可连通的链路或者达到最大选路次数;这样对用户提高了加密链路整体可用性。
55.本发明另一实施例提供的一种openstack加密链路管理系统,包括:网络节点管理程序模块,用于记录加密链路使用的中间节点信息,以及保管加密秘钥;链路管理服务模块,用于在接收到设置加密链路请求时,选择加密链路使用的中间节点;包括:节点逻辑分层单元,用于根据加密链路上加密隧道数量将openstack集群中的网络节点与目标站点间的中间节点进行分层得到多个中间层,每个中间层至少包括一个中间节点;信息获取单元,用于向网络节点和所有中间节点发出请求以获取其与所有相邻节点之间的网络延迟,并向所有中间节点发出请求以获取其已建立的加密隧道数量;其中网络节点的相邻节点为第一层中间层中所有的中间节点,某一中间节点的相邻节点为其所在中间层指向目标站点的下一层中间层中的所有中间节点,最后一层中间层中的中间节点的相邻节点设为互联网中的指定站点;以及,节点选择单元,用于以网络节点为起点,目标站点为终点,综合网络延迟和中间节点上已建立的加密隧道数量作为相邻节点之间的距离,网络延迟和已建立的加密隧道数量越大则距离越大,应用a星算法选取使得整条加密链路上距离最小的可连通的中间节点作为加密链路使用的中间节点。
56.进一步地还包括设置在网络节点和中间节点上的信息采集程序模块,用于在接收到链路管理服务模块发出的获取网络延迟请求和获取已建立的加密隧道数量请求时,通过ping指定的相邻节点ip获取与相邻节点的网络延迟,统计本节点上已建立的加密隧道数量,并向链路管理服务模块反馈。
57.上述各模块/单元的具体实施细节可参考前述方法,此处不再赘述。
58.本发明另一实施例提供的一种计算机系统,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该计算机程序被加载至处理器时实现上述的openstack加密链路管理方法。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜