一种跨境云内部地理边界发现系统及方法

文档序号:31696243发布日期:2022-10-01 05:29阅读:43来源:国知局
一种跨境云内部地理边界发现系统及方法

1.本发明涉及网络拓扑探测技术领域,具体涉及一种跨境云内部地理边界发现系统及方法。


背景技术:

2.互联网作为最大的人造复杂系统,自诞生以来,其网络规模便不停增长,其网络结构也日益复杂。虽然网络结构极其复杂,但对互联网拓扑结构的研究在过去的很长时间内始终吸引着网络和非网络研究人员。网络拓扑测量
[1-6]
是研究网络结构的基石,是网络协议设计、研究优化网络资源配置、网络地理定位与网络攻击检测与防范等方向的基础。
[0003]
随着各种网络设备的接入,互联网规模不断增长,使得互联网拓扑结构极其复杂,对网络拓扑测量增加许多困难。例如,由于网络拓扑结构的动态变化和负载均衡等机制导致获得错误的拓扑结构。同时网络防火墙对探测数据包的过滤也增大了获取网络拓扑信息的难度。事实上,没有任何实体或组织能够全面而真实地了解整个互联网的网络结构,也没有专为获取网络结构而设计的协议。但是网络拓扑测量意义重大。互联网的各种拓扑属性影响网络协议,网络应用和服务的性能。因此,更好地了解internet拓扑及其主要特征将使网络研究人员能够设计出更好的网络协议或服务
[7]
。此外,准确的网络结构有助于网络工程师和运营商不断尝试改善或优化网络资源配置
[8]
。了解互联网拓扑可能会在安全性方面有一些应用。例如,burch和cheswick
[11]
建议使用互联网拓扑信息来跟踪匿名数据包。
[0004]
随着云服务的不断发展,互联网的格局与原本的生态系统已经从根本上发生了改变:早期根据无谷假设(valley-free)自治域传输流量的路径由0或多个c2p链接(客户服务商链接),0或一个p2p(对等连接)链接以及0或多个p2c(服务商客户链接)链接构成。因此具有跨境传输流量能力的tire-1与tire2网络服务提供商一直被认为是互联网的支柱,他们保证了互联网全球的可达性。但随着云服务的发展,这种情况正在被逐渐的改变,todd等人通过研究as级拓扑图发现越来越的云服务商具有无层次可达性,即网络在不穿越tier-1和tier-2等大型网络服务提供商网络的情况下实现跨境传输流量的能力,可以说云服务的发展正在使互联网逐渐“扁平化”。
[0005]
同时越来越多的企业为了节省开支与人力将网站,将数据库等应用完全托管在云平台上。在用户访问云应用时,即使用户与应用服务器所在的机房不在一个国家甚至不在一个大陆上时,云平台也能够提供快速稳定的流量传输。
[0006]
近年来有关于云服务的研究逐渐增多,bahador
[7]
等人为了研究云是如何隐藏自身流量,使用亚马逊节点对其他as的前缀进行测量,从结果中找出云与其他as间的虚拟私有互联(vpi),yeganeh
[8]
等人则是针对云与云之间的三种不同链接方式(基于流量提供商的公共互联网连接,基于第三方提供商的专用连接,基于云提供商的私有连接)进行了路径、延迟和吞吐量三方面的性能测试并性能差异的原因进行了解释。
[0007]
osama
[9]
等人则是使用端到端(vm-to-vm)的方式对亚马逊、谷歌和微软三家云服务商的跨大陆路径进行了性能测试,之后在尾部数据包的的损失率与抖动性,数据包丢失
的可预见性,以及时延等三个方面将云路径与公共互联网路径进行了对比,并给出了云路径性能更好的潜在原因,最后文章考虑如何在现有的损失减轻技术的帮助下进一步提高这些路径的质量。lorenzo corneo
[10]
等人在不同云服务商的189个机房中创建vm,之后使用rirp atlas平台遍布全球的测量点对vm使用ping,traceroute获取时延以及路径,之后pyasn工具以及peeringdb数据集来为traceroute测到的ip路径打上标签。之后对不同国家到vm的时延差异进行了分析,以及云服务商的ip所占测量路径比率进行了分析。
[0008]
可以看出,现阶段对于云的研究主要集中在研究其流量传输性能以及链接方式,对云内部的拓扑结构研究较少,但事实上云平台流量高效稳定的传输主要依赖于其将产生的流量集中在自身的网络中的特性以及云搭建了自身专用的链接与数据中心,避免了公共互联网拥塞带来的影响。因此云平台流量高效稳定的传输与其内部的拓扑结构息息相关,云内部拓扑中地域边界承载了进行跨境流量传输的重要工作,对云内部地域边界的发现对了解云跨境流量传输性能,考察云在全球的网络结构有重要意义。
[0009]
而由于多数云平台内部的路由器往往对于外部ip的探测报文采取不回应的策略,由外部主机发送的探测包只能探测到云与公共互联网的交界处,因此难以使用公共互联网测量点对云内部拓扑进行探测。需要使用云内部的虚拟机作为测量点,此外在以往的研究中,对测量目标的选取可以分为两种情况:一、保证测量完整性的目标选取:通过对整个ipv4公用地址空间进行抽样的方式选取测量目标;这种方式往往一次测量中要对几百万个目标进行测量,需要消耗大量的时间;同时从云内部出发对全球ip进行探测则会得到大量的云外部数据,对于测量资源是一种浪费;二、保证测量效率的目标选取:只选取少数固定目标进行反复测量以此研究性能的变化,此方式虽然减少了测量时间,但由于测量目标过少,难以保证测量得到的拓扑完整性。
[0010]
由上述可知,现阶段两种常用的目标选取方法均不适用于对云内部拓扑进行探测,如何进行合适的目标选取以保证测量得到拓扑完整性的同时尽可能的减少测量目标数量以及云外部数据所占的比例尚待解决研究。同时,由于云会在不同地区部署多机房,因此对云内部进行拓扑探测势必需要租用多个测量点,对一一使用多个测量点对目标进行测量以及结果的下载会耗费较长的时间,同时底层测量工具生成的结果文件对于非拓扑测量研究人员来讲也不易进行理解。


技术实现要素:

[0011]
鉴于以上问题,本发明提出一种跨境云内部地理边界发现系统及方法,将测量点整合为一个测量平台,以驱动测量点完成对测量目标的拓扑测量,并对结果进行自动拉取与分析,从而得到云内部的地理边界。
[0012]
根据本发明的一方面,提供一种跨境云内部地理边界发现系统,该系统包括用户端和服务端,所述服务端包括前缀选取模块、任务处理模块、测量模块;
[0013]
所述前缀选取模块配置成利用云前缀选取方法,获取属于待测云的ip前缀数据;
[0014]
所述任务处理模块包括任务生成子模块、任务下发子模块、结果分析子模块;其中,所述任务生成子模块配置成获取用户端输入的测量参数数据,并根据所述待测云的ip前缀数据和所述测量参数数据生成测量任务信息;所述任务下发子模块配置成根据所述测量任务信息对所有测量点下达测量任务,获取测量点返回的结果数据,所述结果数据的格
式为二进制数据;所述结果分析子模块配置成对所述结果数据进行分析,以识别云内部的地理边界;
[0015]
所述测量模块配置成根据所述测量任务信息执行测量任务。
[0016]
进一步地,所述前缀选取模块中利用云前缀选取方法,获取属于待测云的ip前缀数据的具体步骤包括:
[0017]
利用多个可以提取云平台ip前缀的数据库,获取云组织名称、自治域、ip前缀的对应关系,构建包含三者对应关系的集合;
[0018]
基于待测云的云组织的名称特点总结获得待测云的云组织名称关键词;
[0019]
基于待测云的云组织名称关键词在所述集合中筛选云组织名称候选项;
[0020]
基于对应关系,在所述集合中查找所述云组织名称候选项所对应的自治域;
[0021]
基于对应关系,在所述集合中查找所述自治域所对应的一个或多个ip前缀;
[0022]
将多个ip前缀进行合并,获得待测云的ip前缀数据。
[0023]
进一步地,所述测量任务信息包括任务基本信息、任务原始目标和测量相关参数;所述任务基本信息包括测量类型、任务id以及任务名称;所述任务原始目标包括具体的ip地址或是cidr格式的网段;所述测量相关参数包括测量工具的配置参数、用于生成具体测量目标的参数以及本次测量使用的测量点列表。
[0024]
进一步地,所述结果分析子模块中对所述结果数据进行分析,以识别云内部的地理边界的具体步骤包括:
[0025]
将结果数据从二进制格式文件转换为路径文本文件;
[0026]
对每个路径文本文件进行处理,获得每个测量点的链接文本文件;具体过程包括:针对每个路径文本文件中的每个路径,将两个相邻的ip提取成为一对ip链接,同时保存发现时间、时延、两个ip间匿名跳数、发现链接的测量点;针对每个路径文本文件,将提取得到的ip链接进行合并,相同的链接合并为1个,并将新链接的时延、发现时间、ip间匿名跳数均进行更新,得到每个测量点的链接文本文件;
[0027]
对每个测量点的链接文本文件进行合并,获得任务的总链接文本文件;
[0028]
创建地理信息标记接口与自治域信息标记接口;
[0029]
使用地理信息标记接口与自治域信息标记接口对所述总链接文本文件中的ip进行标记,并剔除其中无法标记的ip;
[0030]
遍历标记后的总链接文本文件,查找其中的云内部地理边界链接。
[0031]
进一步地,所述系统还包括任务调度模块,所述任务调度模块配置成对测量点的状态进行实时监测,以保证测量任务被顺利执行;具体包括:
[0032]
为每个测量点分配一个标记,该标记的大小用于记录测量点的状态,测量点的状态包括存活、存疑和掉线三种;
[0033]
每隔一段时间对全部测量点进行一次目标可达性探测操作,并根据测量点是否回复以及测量点当前所处状态来修改测量点的标记,并根据修改后标记的数值修改测量点的状态;
[0034]
在任务将要被执行时,利用测量点的状态筛选要使用的测量点,去除状态被标记为掉线的测量点;同时再次主动进行一次目标可达性探测操作,去除本次目标可达性探测操作中没有回复的测量点,得到更新后的测量点列表;
[0035]
根据更新后的测量点列表并按照任务配置将所述测量任务信息传送至测量点列表中的测量点上;
[0036]
在任务执行的过程中,不断地遍历测量点,重复进行目标可达性探测操作,以保证测量任务均在状态为存活的测量点上被执行。
[0037]
根据本发明的另一方面,还提供一种跨境云内部地理边界发现方法,该方法包括以下步骤:
[0038]
步骤1、利用云前缀选取方法,获取属于待测云的ip前缀数据;
[0039]
步骤2、获取用户端输入的测量参数数据;
[0040]
步骤3、根据所述待测云的ip前缀数据和所述测量参数数据生成测量任务信息;
[0041]
步骤4、根据所述测量任务信息对所有测量点下达拓扑测量任务,获取测量点返回的结果数据;所述结果数据的格式为二进制数据;
[0042]
步骤5、对所述结果数据进行分析,以识别云内部的地理边界。
[0043]
进一步地,步骤1的具体步骤包括:
[0044]
步骤11、利用多个可以提取云平台ip前缀的数据库,获取云组织名称、自治域、ip前缀的对应关系,构建包含三者对应关系的集合;
[0045]
步骤12、基于待测云的云组织的名称特点总结获得待测云的云组织名称关键词;
[0046]
步骤13、基于待测云的云组织名称关键词在所述集合中筛选云组织名称候选项;
[0047]
步骤14、基于对应关系,在所述集合中查找所述云组织名称候选项所对应的自治域;
[0048]
步骤15、基于对应关系,在所述集合中查找所述自治域所对应的一个或多个ip前缀;
[0049]
步骤16、将多个ip前缀进行合并,获得待测云的ip前缀数据。
[0050]
进一步地,所述测量任务信息包括任务基本信息、任务原始目标和测量相关参数;所述任务基本信息包括测量类型、任务id以及任务名称;所述任务原始目标包括具体的ip地址或是cidr格式的网段;所述测量相关参数包括测量工具的配置参数、用于生成具体测量目标的参数以及本次测量使用的测量点列表。
[0051]
进一步地,步骤5的具体步骤包括:
[0052]
步骤51、将结果数据从二进制格式文件转换为路径文本文件;
[0053]
步骤52、对每个路径文本文件进行处理,获得每个测量点的链接文本文件;具体过程包括:
[0054]
步骤521、针对每个路径文本文件中的每个路径,将两个相邻的ip提取成为一对ip链接,同时保存发现时间、时延、两个ip间匿名跳数、发现链接的测量点;
[0055]
步骤522、针对每个路径文本文件,将提取得到的ip链接进行合并,相同的链接合并为1个,并将新链接的时延、发现时间、ip间匿名跳数均进行更新,得到每个测量点的链接文本文件;
[0056]
步骤53、对每个测量点的链接文本文件进行合并,获得任务的总链接文本文件;
[0057]
步骤54、创建地理信息标记接口与自治域信息标记接口;
[0058]
步骤55、使用地理信息标记接口与自治域信息标记接口对所述总链接文本文件中的ip进行标记,并剔除其中无法标记的ip;
[0059]
步骤56、遍历标记后的总链接文本文件,查找其中的云内部地理边界链接。
[0060]
进一步地,所述方法还包括:对测量点的状态进行实时监测,以保证测量任务被顺利执行;具体包括:
[0061]
为每个测量点分配一个标记,该标记的大小用于记录测量点的状态,测量点的状态包括存活、存疑和掉线三种;
[0062]
每隔一段时间对全部测量点进行一次目标可达性探测操作,并根据测量点是否回复以及测量点当前所处状态来修改测量点的标记,并根据修改后标记的数值修改测量点的状态;
[0063]
在任务将要被执行时,利用测量点的状态筛选要使用的测量点,去除状态被标记为掉线的测量点;同时再次主动进行一次目标可达性探测操作,去除本次目标可达性探测操作中没有回复的测量点,得到更新后的测量点列表;
[0064]
根据更新后的测量点列表并按照任务配置将所述测量任务信息传送至测量点列表中的测量点上;
[0065]
在任务执行的过程中,不断地遍历测量点,重复进行目标可达性探测操作,以保证测量任务均在状态为存活的测量点上被执行。
[0066]
本发明的有益技术效果是:
[0067]
本发明是在正常拓扑探测的基础上针对云本身的特点进行优化,开发出高质量前缀选取,即根据云流量传输的特点,选择能够较多的发现云内部地理边界的前缀进行探测,减少探测目标数量;快速云地理边界识别,即对于探测结果,能够快速准确的分析出其中云内部的地理边界,减少分析时间;测量状态监控,即时刻监控测量点状态,观察其是否异常掉线并在做出相应处理,同时增量拉取测量点生成数据,在尽可能保证不误判的前提下防止测量点异常导致任务流程卡死,并减少拉取数据所需时间。
附图说明
[0068]
本发明可以通过参考下文中结合附图所给出的描述而得到更好的理解,所述附图连同下面的详细说明一起包含在本说明书中并且形成本说明书的一部分,而且用来进一步举例说明本发明的优选实施例和解释本发明的原理和优点。
[0069]
图1是本发明实施例一种跨境云内部地理边界发现系统的结构示意图;
[0070]
图2是本发明实施例中前缀选取模块选取前缀的流程示意图;
[0071]
图3是本发明实施例中结果分析子模块中云地理边界识别的流程示意图;
[0072]
图4是本发明实施例中不同文件格式示例图;
[0073]
图5是本发明实施例中云前缀选取方法实验结果图。
具体实施方式
[0074]
为了使本技术领域的人员更好地理解本发明方案,在下文中将结合附图对本发明的示范性实施方式或实施例进行描述。显然,所描述的实施方式或实施例仅仅是本发明一部分的实施方式或实施例,而不是全部的。基于本发明中的实施方式或实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式或实施例,都应当属于本发明保护的范围。
[0075]
为了解决以上的问题,本发明提出一种针对跨境云内部地理边界进行测量的系统及方法,用以高效快速的对云内部的拓扑进行探测以发现云内部的地理边界。本发明旨在保证在测得拓扑完整性的基础上对更少的目标进行测量,更快的获得测量结果。
[0076]
本发明实施例提供一种跨境云内部地理边界发现系统,该系统包括用户端和服务端,服务端包括前缀选取模块、任务处理模块、测量模块;
[0077]
前缀选取模块配置成利用云前缀选取方法,获取属于待测云的ip前缀数据;
[0078]
任务处理模块包括任务生成子模块、任务下发子模块、结果分析子模块;其中:任务生成子模块配置成获取用户端输入的测量参数数据,测量参数数据包括测量使用的测量点、测量方式、测量速度、停止条件、待测前缀抽样密度;并根据待测云的ip前缀数据和测量参数数据生成测量任务信息;任务下发子模块配置成根据测量任务信息对所有测量点下达测量任务,获取测量点返回的结果数据,结果数据的格式为二进制数据;结果分析子模块配置成对结果数据进行分析,以识别云内部的地理边界;
[0079]
测量模块配置成根据测量任务信息执行拓扑测量任务。
[0080]
本实施例中,优选地,前缀选取模块中利用云前缀选取方法,获取属于待测云的ip前缀数据的具体步骤包括:
[0081]
利用多个可以提取云平台ip前缀的数据库,获取云组织名称、自治域、ip前缀的对应关系,构建包含三者对应关系的集合;
[0082]
基于待测云的云组织的名称特点总结获得待测云的云组织名称关键词;
[0083]
基于待测云的云组织名称关键词在集合中筛选云组织名称候选项;
[0084]
基于对应关系,在集合中查找云组织名称候选项所对应的自治域;
[0085]
基于对应关系,在集合中查找自治域所对应的一个或多个ip前缀;
[0086]
将多个ip前缀进行合并,获得待测云的ip前缀数据。
[0087]
本实施例中,优选地,测量任务信息包括任务基本信息、任务原始目标和测量相关参数;任务基本信息包括测量类型、任务id以及任务名称;任务原始目标包括具体的ip地址或是cidr格式的网段;测量相关参数包括测量工具的配置参数、用于生成具体测量目标的参数以及本次测量使用的测量点列表。
[0088]
本实施例中,优选地,结果分析子模块中对结果数据进行分析,以识别云内部的地理边界的具体步骤包括:
[0089]
将结果数据从二进制格式文件转换为路径文本文件;
[0090]
对每个路径文本文件进行处理,获得每个测量点的链接文本文件;具体过程包括:针对每个路径文本文件中的每个路径,将两个相邻的ip提取成为一对ip链接,同时保存发现时间、时延、两个ip间匿名跳数、发现链接的测量点;针对每个路径文本文件,将提取得到的ip链接进行合并,相同的链接合并为1个,并将新链接的时延、发现时间、ip间匿名跳数均进行更新,得到每个测量点的链接文本文件;
[0091]
对每个测量点的链接文本文件进行合并,获得任务的总链接文本文件;
[0092]
创建地理信息标记接口与自治域信息标记接口;
[0093]
使用地理信息标记接口与自治域信息标记接口对总链接文本文件中的ip进行标记,并剔除其中无法标记的ip;
[0094]
遍历标记后的总链接文本文件,查找其中的云内部地理边界链接。
[0095]
本实施例中,优选地,系统还包括任务调度模块,任务调度模块配置成对测量点的状态进行实时监测,以保证测量任务被顺利执行;具体包括:
[0096]
为每个测量点分配一个标记,该标记的大小用于记录测量点的状态,测量点的状态包括存活、存疑和掉线三种;
[0097]
每隔一段时间对全部测量点进行一次目标可达性探测操作,并根据测量点是否回复以及测量点当前所处状态来修改测量点的标记,并根据修改后标记的数值修改测量点的状态;
[0098]
在任务将要被执行时,利用测量点的状态筛选要使用的测量点,去除状态被标记为掉线的测量点;同时再次主动进行一次目标可达性探测操作,去除本次目标可达性探测操作中没有回复的测量点,得到更新后的测量点列表;
[0099]
根据更新后的测量点列表并按照任务配置将测量任务信息传送至测量点列表中的测量点上;
[0100]
在任务执行的过程中,不断地遍历测量点,重复进行目标可达性探测操作,以保证测量任务均在状态为存活的测量点上被执行。
[0101]
本发明另一实施例提供一种跨境云内部地理边界发现系统,如图1所示,该系统分为四个模块,分别是:前缀选取模块、任务处理模块、任务调度模块和测量模块。其中,前缀选取模块只用一个功能:使用云前缀选取方法,在每次测量之前选择出属于待测云的ipv4前缀;
[0102]
任务处理模块主要与用户进行交互,其主要包含三个功能:获取测量参数生成任务,将任务信息打包为数据包的形式打包下载,对任务调度模块传来的测量原始结果进行合并与分析,最后将结果展示给用户;
[0103]
任务调度模块用于连接任务处理模块与测量模块,以将系统串联起来,其主要包含:根据任务数据包中的信息将任务存放到数据库中,根据参数生成每个测量点的使用的数据包并传送至测量点;同时控制测量点对任务的开始,暂停,提前终止,并监控测量点状态;并且对各测量点上的任务测量结果数据进行拉取;
[0104]
测量模块是最后进行拓扑测量的模块,其主要有两个功能:接收测量命令以及数据包并在收到开始信号后调用测量工具执行测量命令,实时通知任务状态;监控自身与任务调度模块通信的进程是否正常运行,如果进程异常则重启进程。
[0105]
下面对上述模块进行详细的说明。
[0106]
1)前缀选取模块中使用云前缀选取方法,是考虑到云平台更倾向于将产生的流量集中在自身的网络中这一特性,推断使用云内部测量点对属于云的目标进行测量则获得的大部分结果数据均属于云而提出的,该方法将测量目标由整个ipv4公用地址空间缩小为云所属自治域的地址空间中,这种目标选取方法极大程度的减少了探测目标的数量,并且由于上述特性对拓扑的完整性损失较小。如图2所示,云前缀选取方法具体包括以下步骤:
[0107]
步骤1.根据要进行探测的云组织的名称特点总结出云组织名称关键词;
[0108]
步骤2.在互联网上搜集有关前缀,组织名称,所属as的信息,包括云组织名称与自治域的对应关系以及自治域与ip前缀的对应关系等等;
[0109]
步骤3.使用云组织名称关键词从组织名称中筛选出可能是云组织名称的候选项;
[0110]
步骤4.观察候选项中是否有不属于云的,如果有则转到步骤5;没有则转到步骤6;
[0111]
步骤5.对候选项进行进一步筛选,删除其中不属于云的候选项并修改关键词,转到步骤1;
[0112]
步骤6.获取组织名称对应的自治域号;
[0113]
步骤7.根据自治域号获取所属ip前缀;
[0114]
步骤8.合并从不同数据源得到的自治域号,合并从不同数据源得到的ip前缀;
[0115]
步骤9.使用合并后的自治域号再获取ip前缀,与合并后的ip前缀再次进行合并;
[0116]
步骤10.去除历史测量结果中存在争议的ip前缀。
[0117]
根据本发明实施例,使用云前缀选取方法,在每次测量之前选择出属于待测云的ipv4前缀的具体步骤为:输入待测量云的组织名称关键词集合,首先从数据库中获取需要排除的ip前缀数据,之后从caida网站上下载有关于组织名称以及所对应的ip前缀的数据,并从hurricane网站上下载要探测的云对应的as号与组织名称,之后对caida的组织名称数据进行遍历,不断地找出包含关键词的组织名称,并判断该组织名称是否属于云,如果属于云则根据组织名称从caida数据中依次找出所对应的组织id,自治域号以及ip前缀,如果不属于云则将该组织名称移除,并更新组织名称关键词,如此重复直到关键词没有进行更新为止。之后通过正则表达式从hurricane信息中提取出属于云的自治域号以及ip前缀,并将自治域号与caida数据的自治域号合并,再根据合并的自治域号获取一份ip前缀。之后将三份ip前缀进行合并得到最终的云ip前缀,合并的基本规则为:如果多个ip前缀完全相同则只保留一个,如果一个ip前缀被包含于另一个ip前缀之中则将此ip前缀舍弃。云前缀选取方法伪代码如下所示。
[0118][0119]
进一步将任务处理模块、任务调度模块以及测量模块划分为几个不同的子模块。
[0120]
2)任务处理模块包括任务生成子模块、任务导出子模块、结果分析子模块以及展示子模块。其中,任务生成子模块负责接收用户输入的参数,并对其进行完整性校验,将通过校验的数据写入文件与数据库;
[0121]
任务导出子模块负责检查要导出的任务是否已经导出过了,将未导出过的任务文件按照打包为任务数据包进行下载;
[0122]
结果分析子模块首先将各个测量点的原始测量结果进行解析合并,之后再通过标记数据对结果打上地理自治域的标签;该子模块中使用快速云地理边界识别技术从原始测量结果中识别云内部的地理边界,如图3所示,识别过程具体包括:
[0123]
步骤1.通过开源的解析工具将结果文件从二进制文件解析为路径文本文件;
[0124]
步骤2.针对每个结果文件中的每个路径将两个相邻的ip提取成为一对ip链接,同时保存发现时间,时延,两个ip间匿名跳数,发现链接的测量点等信息;
[0125]
步骤3.对于每个结果文件将得到的ip链接进行合并,相同的链接合并为1个,将新链接的时延,发现时间,ip间匿名跳数信息均进行更新,得到每个测量点的链接文本文件;
[0126]
步骤4.对测量点的链接文本文件进行合并,并且更新归时延,发现时间,ip间匿名跳数,发现链接的测量点等信息,得到任务的总链接文本文件;
[0127]
步骤5.创建地理信息标记接口与自治域信息标记接口;
[0128]
步骤6.使用地理信息标记接口与自治域信息标记接口对总链接文本文件中的ip进行标记,并剔除其中无法标记的ip;
[0129]
步骤7.遍历标记后的文件,找出其中的云内部地理边界链接。
[0130]
根据本发明实施例,使用快速云地理边界识别技术从原始测量结果中识别云内部的地理边界的具体过程为:首先遍历结果文件夹将其中的二进制warts文件经由测量工具自带的sc_warts2text工具转换为文本文件,之后将每个文本文件中相邻的两个ip看作一个链接,其中ttl较小的ip为入ip,ttl较大的ip为出ip并且根据两个ip的时延等信息信息计算出链接的时延,匿名跳数,发现时间等信息,并保存发现该链接测量点。之后对每一个测量点的链接进行归并操作,以出入ip作为判断链路是否相同的标准,将相同的链路合并为一个,同时将时延,发现时间,ip间匿名跳数更新为链接中最小的。之后对不同测量点的文件两两进行二路归并,归并的方式与信息更新的方式与每个测量点文件链接的更新方式的一样,最终归并为一个总链接文本文件。之后使用前缀树构造地理信息标记树以及自治域信息标记树,并且使用地理信息标记树与自治域信息标记树对总链接文本文件中的ip进行标记,并将其中无法标记的ip属性设置为null。最后遍历标记后的文件,找出其中出ip与入ip所属国家不相同且匿名跳数为0的链接,并且将这样链接中自治域属于云的ip标记为云内部地理边界链接,伪代码如下所示。
[0131][0132]
代码中textfile,linkfile,markedfile文件格式分别图4所示。
[0133]
进一步地,由于理论上使用云测量点对云内部目标进行测量时,得到的路径ip应该全部属于云本身,因此,结果分析子模块还对测量结果中不属于云的ip进行追踪,通过发现链接的测量点这一信息,在各个测量点的路径文本文件中寻找发现该ip的测量目标,之后使用whois工具主动对该ip所属组织进行查询,如果查询发现该ip不属于云,则将该ip所属前缀记录,在之后的测量目标选取过程中去除该ip前缀。
[0134]
展示子模块通过网页的形式向用户展示得到的数据结果,以及每个结果ip在本次测量中的邻居ip,三跳之内ip以及由测量点到结果ip的路径。
[0135]
3)任务调度模块包括任务导入子模块、任务下发与结果拉取模子模块、任务控制子模块。其中,任务导入子模块负责接收任务处理模块导出的任务信息数据包,将其解压并将数据放入数据库中;
[0136]
任务下发与结果拉取子模块负责分析导入的任务文件中的各项参数,根据不同的参数生成步骤不同的测量任务数据结构,将测量要使用的文件包传递到对应的测量点上,向测量点下达开始测量的命令并实时拉取测量点得到的数据,在测量结束后打包所有测量点的结果数据;
[0137]
任务控制子模块负责对任务进行进程级别的中断,停止,恢复操作并且时刻监控测量点的状态观察其是否离线。具体地,由于在进行实际探测时有时会发生因网络等原因导致测量点在探测前或者探测中突然掉线,在探测前掉线的测量点会导致本该由此测量点探测的目标未被探测,损失测量结果数据的完整性;而在探测中异常掉线的测量点则可能无法更新探测状态而被认为该测量点无法完成测量任务导致任务卡死。此外,所有测量得到的结果加起来往往较大,在测量之后统一拉取会消耗一定的时间同时也占用了大部分所在机器的带宽。为解决上述问题,本发明在任务控制部分使用测量状态监控方法,该方法具体步骤如下:
[0138]
步骤1.程序开始的时候为每个测量点分配一个标记,此标记的大小用于记录了测量点的状态,测量点的状态包括:存活,存疑,掉线三种,在整个程序执行的过程中,测量点的状态会在这三者间不断转换;
[0139]
步骤2.每隔一段时间对全部的测量点进行一次ping(目标可达性探测)操作,并根据测量点是否回复以及测量点当前所处的状态来修改测量点的标记,并且根据修改后标记的数值修改测量点的状态;
[0140]
步骤3.在任务将要执行时,利用测量点的状态筛选要使用的测量点,去除被标记为掉线的测量点,同时再次主动ping,去除本次ping中没有回复的测量带你,以此得到更新后的测量带点列表;
[0141]
步骤4.根据更新后的测量点列表并按照任务配置为每个测量点打包数据包并传送至测量点上,全部送到后向测量点下达开始测量的任务;
[0142]
步骤5.每隔一段时间,循环遍历测量点执行第6步操作;
[0143]
步骤6.在任务执行的过程中,不断地遍历测量点,并对当前测量点进行ping操作,并根据回复来判断当前测量点是否仍然存活,若仍然存活则执行第7步,或不在存活则将该测量点移除循环;
[0144]
步骤7.判断测量点任务是否完成如果完成则将该测量点移除循环,如果未完成则执行第8步操作;
[0145]
步骤8.对该测量点得到的任务结果数据进行增量拉取。如果循环中还有测量点则执行第5步操作如果没有则执行第9步操作;
[0146]
步骤9.最后对所有测量点结果数据进行增量拉取,之后将所有测量点结果文件打包压缩为一个文件。
[0147]
根据本发明实施例,测量状态监控方法中任务调度模块与测量模块之间使用celery工具进行通信,任务调度模块作为celery的broker,测量模块作为worker。任务调度模块在初始化broker之后会建立一个字典,该字典的键是测量点的别名,值是测量点的标
记,该标记为0则代表测量点存活,如果标记为1-5则代表测量点存疑,如果标记为负数则代表测量点已经掉线。之后每隔一段时间使用celery工具对所有探测测量点执行ping命令,根据是否回复判断作为worker的测量点是否存活,如果收到某一测量点的回复且该测量点的标记是正数则将数字减一,如果测量点标记已经是0则不变,如果测量点标记是负数则将该测量点的标记数加一,如果未能成功回复且测量点标记大于等于0且小于5则将测量点的标记数加一,如果测量点标记为负数或者大于等于5则将测量点标记直接置为-5代表该测量点已经掉线。之后当任务到达任务调度时判断任务配置中所选测量点的标记,将其中为标记为负数的测量点剔除,同时对剩余的测量点再次主动进行一次ping操作,选出其中成功回复的测量点并且以此更新所选测量点列表。根据更新后的测量点列表并按照任务配置为每个测量点打包数据包并传送至测量点上,全部送到后通过celery向测量点下达开始测量的命令。
[0148]
在任务执行的过程中循环执行接下来的步骤:1.遍历测量点对每个遍历到的测量点再次进行ping操作,如果测量点成功回复或者没有连续三轮未回复,则执行第2步的操作,如果测量点连续3轮没有回复则认为该测量点在测量过程中异常掉线。为防止该测量点卡死任务,将该测量点从测量点列表中删除;2.检查celery中该测量点上次任务的状态是否为ready如果是则将该测量点从测量点列表中删除,如果未完成则执行第3步操作;3.使用rsync工具对该测量点得到的任务结果数据进行增量拉取。如果循环中还有测量点则继续循环如果没有则跳出循环。
[0149]
最后对所有测量点结果数据使用rsync进行增量拉取,之后将所有测量点结果文件用tar工具打包压缩为一个文件。
[0150]
4)测量模块可以包括任务接收与执行子模块、自动重启子模块。其中,任务接收与执行子模块主要负责在收到开始任务命令后对数据包进行解压并执行其中的测量脚本,并在测量完成之后通知任务调度模块该测量点任务完成;自动重启子模块负责周期性的向进程发送消息,以根据是否回复判断进程是否存活,如果连续多次发现进程没有回复后则认为该进程出现问题,将进程终止,在确保任务调度模块也监控到该测量点离线之后将进程重新启动。
[0151]
为了能够更好的将信息在各个模块之中传递,本发明设计了两种任务相关的数据结构,分别是任务信息数据包以及测量任务数据结构。其中任务信息数据包(即测量任务信息)为任务处理模块对使用者拓扑探测信息进行包装之后得到的数据包。拓扑探测信息按照功能分类可分为三类:
[0152]
a.本次任务的基本信息,包括测量类型,任务id以及任务名称;
[0153]
b.本次测量的原始目标,这些目标可能是具体的ip地址也可能是cidr格式的网段;
[0154]
c.是与具体探测相关的参数,包括测量工具的配置参数,用于生成具体测量目标的参数以及本次探测使用的测量点列表。
[0155]
根据信息的分类,将该模块的任务数据结构设计为表1所示,其中的basic文件中包含了任务基本信息,target文件包含了任务原始目标,而config文件则包含了探测相关参数,这三个文件进行加密压缩后就形成了一次测量任务的数据包。此外为了方便系统解析文件,除target文件之外,另外两个文件内部均以json格式进行数据的存储。
[0156]
表1任务数据包结构
[0157][0158]
测量任务数据结构是指导整个探测过程中数据准备,命令执行,结果分析等操作的数据结构。其设计如表2所示,其中id中存放本次任务的任务id,starttime中存放本次任务开始的时间,steps为一个列表,其中存放名为step的数据结构,每一个step都代表任务执行过程中的一个步骤,包括生成各个测量点的探测目标文件;探测命令的产生;结果文件的初步解析;探测结果打标签入库等操作。
[0159]
表2任务的数据结构
[0160][0161][0162]
step作为任务具体步骤的数据结构,其具体设计如表3所示,其中inputs,outputs,分别代表本步骤的输入输出,command代表本步骤要执行的命令。
[0163]
表3step的数据结构
[0164][0165]
进一步地,除了上述四个主要模块之外,本发明还设计了其它三个模块,分别是:
[0166]
快速部署模块:该模块目的是加快系统部署速度,防止出现版本不兼容导致的安装失败现象,该模块使用docker软件进行系统源码以及运行环境的打包,将所有模块分别
打包为不同镜像,并将其中的数据库访问,网址访问中的ip地址都换为域名的形式;同时为其中需要手动启动的软件编写启动脚本。在部署新系统的时候,只需要在新机器上安装docker软件,将镜像覆盖到新机器上,并将域名写入新机器的hosts文件中即可;
[0167]
任务日志模块:该模块目的是记录任务执行过程,方便对出现的错误进行回溯的,该模块将任务执行过程中的详细信息记录为一个日志文件以json的形式存储各项信息,并以测量任务数据结构为基础结构,将step进一步划分为任务步骤名称与子任务列表,将该步骤在每个测量点上的执行信息作为列表中的子任务,在此基础上记录其中每一个子任务的开始时间,结束时间。
[0168]
数据加密与登录认证模块:该模块目的是区别不同用户下发的任务以及对任务的数据进行加密。该模块每一个任务处理模块都设置了唯一的userid在并生成任务时作为任务的一个属性放到配置文件中。同时在任务调度模块上设置用户名密码,并将每一对用户名密码都与一个userid进行绑定,只有使用对应userid的用户名密码登录任务调度模块才能将任务成功导入,否则跳过要导入的任务。在拉取时任务调度模块也将根据userid的不同将不属于同一用户的任务传送到各自的任务处理模块去,同时使用linux自带的openssl模块对数据进行加密。
[0169]
本发明另一实施例提供一种跨境云内部地理边界发现方法,该方法包括以下步骤:
[0170]
步骤1、利用云前缀选取方法,获取属于待测云的ip前缀数据;
[0171]
步骤2、获取用户端输入的测量参数数据;
[0172]
步骤3、根据待测云的ip前缀数据和测量参数数据生成测量任务信息;
[0173]
步骤4、根据测量任务信息对所有测量点下达拓扑测量任务,并获取测量点返回的结果数据;结果数据的格式为二进制数据;
[0174]
步骤5、对结果数据进行分析,以识别云内部的地理边界。
[0175]
本实施例中,优选地,步骤1的具体步骤包括:
[0176]
步骤11、利用多个可以提取云平台ip前缀的数据库,获取云组织名称、自治域、ip前缀的对应关系,构建包含三者对应关系的集合;
[0177]
步骤12、基于待测云的云组织的名称特点总结获得待测云的云组织名称关键词;
[0178]
步骤13、基于待测云的云组织名称关键词在集合中筛选云组织名称候选项;
[0179]
步骤14、基于对应关系,在集合中查找云组织名称候选项所对应的自治域;
[0180]
步骤15、基于对应关系,在集合中查找自治域所对应的一个或多个ip前缀;
[0181]
步骤16、将多个ip前缀进行合并,获得待测云的ip前缀数据。
[0182]
本实施例中,优选地,测量任务信息包括任务基本信息、任务原始目标和测量相关参数;任务基本信息包括测量类型、任务id以及任务名称;任务原始目标包括具体的ip地址或是cidr格式的网段;测量相关参数包括测量工具的配置参数、用于生成具体测量目标的参数以及本次测量使用的测量点列表。
[0183]
本实施例中,优选地,步骤5的具体步骤包括:
[0184]
步骤51、将结果数据从二进制格式文件转换为路径文本文件;
[0185]
步骤52、对每个路径文本文件进行处理,获得每个测量点的链接文本文件;具体过程包括:
[0186]
步骤521、针对每个路径文本文件中的每个路径,将两个相邻的ip提取成为一对ip链接,同时保存发现时间、时延、两个ip间匿名跳数、发现链接的测量点;
[0187]
步骤522、针对每个路径文本文件,将提取得到的ip链接进行合并,相同的链接合并为1个,并将新链接的时延、发现时间、ip间匿名跳数均进行更新,得到每个测量点的链接文本文件;
[0188]
步骤53、对每个测量点的链接文本文件进行合并,获得任务的总链接文本文件;
[0189]
步骤54、创建地理信息标记接口与自治域信息标记接口;
[0190]
步骤55、使用地理信息标记接口与自治域信息标记接口对总链接文本文件中的ip进行标记,并剔除其中无法标记的ip;
[0191]
步骤56、遍历标记后的总链接文本文件,查找其中的云内部地理边界链接。
[0192]
本实施例中,优选地,该方法还包括:对测量点的状态进行实时监测,以保证测量任务被顺利执行;具体包括:
[0193]
为每个测量点分配一个标记,该标记的大小用于记录测量点的状态,测量点的状态包括存活、存疑和掉线三种;
[0194]
每隔一段时间对全部测量点进行一次目标可达性探测操作,并根据测量点是否回复以及测量点当前所处状态来修改测量点的标记,并根据修改后标记的数值修改测量点的状态;
[0195]
在任务将要被执行时,利用测量点的状态筛选要使用的测量点,去除状态被标记为掉线的测量点;同时再次主动进行一次目标可达性探测操作,去除本次目标可达性探测操作中没有回复的测量点,得到更新后的测量点列表;
[0196]
根据更新后的测量点列表并按照任务配置将测量任务信息传送至测量点列表中的测量点上;
[0197]
在任务执行的过程中,不断地遍历测量点,重复进行目标可达性探测操作,以保证测量任务均在状态为存活的测量点上被执行。
[0198]
根据本发明实施例,具体实施时可以为下述流程:
[0199]
步骤1.由前缀选取模块从互联网上下载数据,通过对数据的分析以及将不同来源的分析结果进行合并,最后得到了一份属于待测云的ipv4前缀数据以及自治域数据;
[0200]
步骤2.用户向任务处理模块中输入数据测量时的参数,选取的测量点等信息,任务生成子模块根据输入的数据以及前缀选取模块得到的ipv4前缀数据生成target,config,basic文件并将任务信息同时存入数据库中;
[0201]
步骤3.用户要将任务导出的时候任务导出子模块将target,config,basic三个文件经过加密与登录认证子模块的加密后打包为一个压缩包,并进行下载;
[0202]
步骤4.用户将任务压缩包导入任务调度时,任务导入子模块配合加密与登录认证子模块对压缩包进行解压解密操作,并将任务数据放入数据库中;
[0203]
步骤5.任务下发与结果拉取子模块根据导入的任务文件中的各项参数,从测量前缀抽样得到测量目标,根据参数配置生成测量脚本,并将其打包为测量数据包之后传送到测量点上,当所有测量点都收到数据包后对所有使用的测量点下达开始任务的命令,并实时拉取测量点得到的数据,在测量结束后配合加密与登录认证子模块打包并加密所有测量点的结果数据;
[0204]
步骤6.在任务进行的同时如果用户想要对任务的状态进行操作可以通过任务控制子模块对任务进行进程级别的暂停,恢复,停止操作;
[0205]
步骤7.任务处理模块将任务调度模块上本次任务的结果文件拉取下来并使用结果分析子模块从中分析出云内部地理边界节点并将分析后的结果存入数据库中;
[0206]
步骤8.对结果中不属于云的ip进行追踪,找出探测得到该结果的目标前缀,并通过whois工具主动查询该前缀所属组织如果发现所属组织不属于云则认为该前缀存在争议,在下次测量前缀选取是去除该前缀;
[0207]
步骤9.展示子模块从数据库中读取任务结果以网页的形式将结果展示给用户;
[0208]
步骤10.任务日志模块在进行上述流程的同时对每一个涉及到任务状态改变的操作记录日志,并保存到数据库中。
[0209]
需要说明的是,对云的探测除了基本的拓扑结构测量之外,还可以包括时延探测、别名探测、组播探测等等。要想实现这些探测方式都需要使用不同的测量工具,因此,本发明的可扩展性主要体现在对测量工具的扩展性上:当想要增加一个测量工具时,只需要在任务的config文件中增加该测量工具对应的参数配置信息,并且在任务处理模块的结果分析子模块中增加分析原始测量结果的函数,任务调度模块的任务下发与结果拉取子模块中增加生成该测量工具对应测量脚本的函数即可。本发明的执行流程是以任务作为最小数据单元进行数据传输,无论是任务下发的过程还是结果拉取与分析过程均与测量工具无关,因此在新增测量工具时无需对整个执行流程进行修改。
[0210]
本实施例所述一种跨境云内部地理边界发现方法的功能可以由前述一种跨境云内部地理边界发现系统说明,因此本实施例未详述部分,可参见以上系统实施例,在此不再赘述。
[0211]
进一步通过实验验证本发明的技术效果。
[0212]
实验在测量前缀选取方面,以亚马逊云为测量目标,选取caida公布的2022年1月1日的as-organizations开源数据,并且下载了对应时间ripe以及routerview公布的bgp全球路由前缀数据以及hurricane electric的bgp数据集中的数据,经过云前缀选取方法,利用caida数据集中得到了6851个ip前缀,利用hurricane electric的bgp数据集中下载了亚马逊云的数据得到了4337个ip前缀,合并之后得到了6509个属于亚马逊云的ip前缀,这两个数据集以及合并之后所包含的ip地址数量如图5所示。相比于单独的两份数据覆盖的ip地址数量分别提升了约1.7%与13.4%;而在同一时间使用maxmind地理定位数据集中的前缀作为全球ipv4前缀数据集则需要对35333902个ip前缀进行抽样测量,其所要测量的目标数量远高于本发明。
[0213]
实验在云内部地理边界发现率上,使用相同的测量点以及相同的配置分别对云前缀选取方法得到的前缀数据与全球ipv4前缀数据进行探测,经过对前缀抽样分别得到了231070个与35647625个待测ip地址,经过对测量结果的解析,使用云前缀选取方法得到了106804条不同的链接数据以及24736个不同的ip发现了4636个云内部地理边界ip,使用全球ipv4前缀数据方法得到了7340834个不同的ip以及5735949条不同的链接数据发现了5140个云内部地理边界ip,可以看出虽然本发明发现的内部地理边界ip在数量上略小于全球ipv4前缀数据方法,但是在云内部地理边界发现率上要远高于全球ipv4前缀数据方法。
[0214]
综上所述,本发明在极大程度减少了测量目标以及测量时间的基础上,提高了云
内部地理边界的发现率,相比于全球ipv4前缀抽样,采用云前缀选取方法获取的测量目标集缩小了约100倍。同时对比测量得到的结果,虽然云前缀选取方法发现的ip地址与链接数据均远小于全球ipv4前缀抽样,但发现的云内部地理边界仅仅比全球ipv4前缀抽样少了500个,发现率提升了将近200倍。
[0215]
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。
[0216]
本发明援引的文献如下:
[0217]
[1]luckie m.scamper:a scalable and extensible packet prober for active measurement of the internet[c]//proceedings of the 10th acm sigcomm conference on internet measurement.acm,2010.
[0218]
[2]paxson v,mahdavi j,adams a,et al.an architecture for large scale internet measurement[j].ieee communications magazine,1998,36(8):0-54.
[0219]
[3]kalidindi s,zekauskas m j.surveyor:an infrastructure for internet performance measurements[c].in inet’99,san jose,ca,june 1999.
[0220]
[4]mcgregor t,braun h w.balancing cost and utility in active monitoring:the amp example[c].in inet 2000,yokohama,japan,july 2000.
[0221]
[5]huffaker b,plummer d and moore d,et al.topology discovery by active probing[c].in saint 2002,pages 90

96,nara city,japan,january 2002.
[0222]
[6]张宇,方滨兴,张宏莉.中国ip级网络拓扑测量与分析[j].通信学报,2007,28(12):96-101.
[0223]
[7]bahador yeganeh,ramakrishnan durairajan,reza rejaie,and walter willinger.2019.how cloud traffic goes hiding:a study of amazon's peering fabric.in proceedings of the internet measurement conference(imc'19).association for computing machinery,new york,ny,usa,202

216.doi:https://doi.org/10.1145/3355369.3355602
[0224]
[8]yeganeh b.,durairajan r.,rejaie r.,willinger w.(2020)a first comparative characterization of multi-cloud connectivity in today’s internet.in:sperotto a.,dainotti a.,stiller b.(eds)passive and active measurement.pam 2020.lecture notes in computer science,vol 12048.springer,cham.https://doi.org/10.1007/978-3-030-44081-7_12
[0225]
[9]todd arnold,jia he,weifan jiang,matt calder,italo cunha,vasileios giotsas,and ethan katz-bassett.2020.cloud provider connectivity in the flat internet.in proceedings of the acm internet measurement conference(imc'20).association for computing machinery,new york,ny,usa,230

246.doi:https://doi.org/10.1145/3419394.3423613
[0226]
[10]lorenzo corneo,maximilian eder,nitinder mohan,aleksandr zavodovski,suzan bayhan,walter wong,per gunningberg,jussi kangasharju,and
ott.2021.surrounded by the clouds:a comprehensive cloud reachability study.in《i》proceedings of the web conference 2021《/i》(《i》www'21《/i》).association for computing machinery,new york,ny,usa,295

304.doi:https://doi.org/10.1145/3442381.3449854
[0227]
[11]burch h,cheswick b.tracing anonymous packets to their approximate source[c]//usenix conference on system administration.2000.
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1