构建一个完整、准确的互联网域间拓扑对于协议设计、故障诊断、安全分析等具有十分重要的意义。然而,互联网拓扑构建需要依赖大规模、分布式的探针。近年来,虽然一些测量平台致力于部署探针,但是这些探针的数量和覆盖范围有限。如果能发现并利用更多的互联网开放探针资源,无疑对于互联网拓扑测量而言具有十分重要的意义。
多家互联网服务提供商积极部署Looking Glass (LG) 探针并允许用户在这些探针上运行一些测量命令,例如traceroute或BGP。服务提供商部署LG探针用于提供观察其网络状况的窗口以吸引客户使用他们的网络服务,并帮助调试和解决互联网连接和性能问题。这些LG探针为研究人员提供了从不同位置(例如核心路由器、边界路由器等)观察互联网的机会。尽管LG探针具有一定的优势,但由于每个LG网页都是独立运营和管理的,缺乏关于所有可用LG网页的集中索引,难以充分发挥LG探针的价值。目前研究人员往往使用一些非权威性的web源(包括Traceroute.org, PeeringDB, BGP4.as, BGPLookingglass.com)发布的部分LG网页的列表,很多LG网页可能并没有整合到列表中。
为了发现更多的互联网开放探针资源,我们提出了一种高效的聚焦爬虫方法用于发现互联网中的LG网站。进一步地,为了帮助研究人员更便利地使用LG探针,我们设计了用于自动访问LG探针的工具,并公开提供了关于可自动访问的LG探针列表。从实验结果来看,相比于之前广泛使用的1446个LG探针,我们新发现的910个LG探针极大的提升了可用探针的数量(提升62.9%)以及地理和网络覆盖范围。除此之外,我们还利用部分新发现的LG探针帮助提升AS拓扑的完整性,实验发现仅用8个新发现的LG探针可以帮助补充1428个新的AS链路和10个新的AS。接下来将详细介绍我们的设计思路和实验结果。
LG聚焦爬虫设计
具体地,以已知的LG网页集合(我们将其称之为LG种子集)为起始,爬取过程主要负责寻找有可能提供LG服务的网页(我们称其为候选URL)。考虑到LG网页之间的链接比较少,爬取过程主要采用基于超链接指导的和基于相似性指导的两种搜索方法来帮助找到更多的LG网页。显然,爬取过程采集的候选URL并不一定都是LG URL,仍需设计一个高性能的分类器用于进一步将其分类为相关还是不相关。为此,我们设计了一个两步分类器用于分类过程,具体包括基于URL特征的预过滤器和基于网页内容特征的分类器。
其中,预过滤器可以过滤掉85%不相关的URL,避免了大量消耗在无关URL上的资源。至于剩下的URLs(我们称其为预过滤URL),我们下载其网页内容并利用基于内容特征的分类器实现更准确的分类效果,进而得到相关URL(即被分类器确认为LG页面的URL)。需要说明的是,无论是预过滤器还是过滤器,我们均采用针对只有正样本和无标签样本的场景提出的机器学习方法,即PU学习算法,来解决缺乏标注的负样本这一问题。每当新的相关URL被发现时,其可作为已知LG网页开启新一轮的迭代爬虫,该迭代探索过程可以帮助找到更多相关URL。
图1 LG聚焦爬虫架构
1.2种子集
我们从公开的web源(包括Traceroute.org,PeeringDB,BGP4.as, BGPLookingglass.com)采集了2991个已知的LG URL。其中,1736个URL可以成功下载html网页内容,其余的URL响应HTTP错误消息。经过人工检查,我们发现部分LG网页已经过期且不再提供LG服务,删除之后我们共得到1085个提供LG服务的有效网页。
1.3爬取过程
许多之前的研究注意到,网页通常会包含一些指向相关主题网页的超链接[1],因此常用基于超链接指导的搜索方法完成爬取过程。本文也实现了该搜索方法,即提取已知LG网页中包含的内外链接作为候选URL。但由于很多LG网页并没有链接到任何其他的LG网页,仅采用这种搜索方法难以发现他们。为了发现更多的LG网页,我们设计了一种基于相似性指导的搜索方法。考虑到LG网页之间在某些方面很可能是相似的,该搜索方法主要借助搜索引擎帮助找到和已知LG网页相似的网页作为候选URL,之所以选择搜索引擎是因为他们部署了强大的爬虫基础设施并提供成熟的搜索算法。关键问题是如何得到有价值的搜索条目,我们利用合适的方法分析已知LG网页URL,标题和主体部分提取共享特征,进而构建有效的搜索条目。
1.3.1 基于标题的搜索条目
考虑到网页标题是关于网页内容的简短描述且通常包含较少的单词,我们采用频繁项集挖掘算法Apriori[2]从已知LG网页标题中提取频繁出现的单词或短语作为共享特征。需要注意的是,一些LG网页标题中包含部署该网页的运营商的组织名称或者AS编号,将这些名称或者编号视为相同的关键字可为我们提供更具价值的信息。具体来说,在提取频繁项集之前,我们将所有组织名称和AS编号替换为两个虚拟词,即ORG和ASN。提取频繁项集后,如果发现这两个虚拟词出现在频繁项集中,则将其替换为每个AS的组织名称和AS编号,进而构建一系列的搜索条目。
在上述过程中,确定标题中哪些词代表组织名称是比较困难的。虽然CAIDA提供了关于AS与组织名称映射的数据集[3],但不同的组织在将其名称嵌入LG网页标题时可能会有不同的命名规范,例如全称、首字母缩写或其他缩写等。错误的匹配和替换会导致提取出的共享特征存在偏差。针对这一问题,我们发现LG页面标题往往采用公司网站的二级域名来表示组织名称,因此我们从PeeringDB中收集每个AS的公司网站URL,并使用Tldextract python库解析得到一个二级域名列表,然后将已知LG网页标题中匹配二级域名的单词或短语替换为虚拟词ORG。
替换之后,我们采用频繁项集挖掘算法从已知LG网页标题中寻找频繁项集。表1显示了当支持度阈值设为0.12时的频繁项集及其对应的支持度。从表中可知,频繁1-项集和2-项集都是频繁3-项集的真子集,这意味着将频繁1-项集和2-项集作为搜索条目得到的搜索结果是频繁3-项集得到的搜索结果的超集。为了平衡召回率和准确率,本文选择频繁3-项集来构建搜索词。
表1频繁项集及其对应的支持度
(支持度阈值设为0.12)
1.3.2基于主体的搜索条目
与URL和标题相比,LG网页的主体部分通常包含更丰富的信息,这意味着分析主体部分虽然复杂但是能帮助构建更有效的搜索条目。通常LG网页主体包含很多单词,其中有些单词虽然出现频率很高,但并不代表LG页面的任何共同特征。因此,我们采用TF-IDF(Term Frequency-Inverse Document Frequency)[4]加权模型来分析已知LG页面主体部分。该模型可识别出在已知LG页面主体中经常出现但在非LG页面中不常出现的词,将其作为LG网页共享特征,从而构建有效的搜索条目。
通过分析LG页面主体,我们发现其通常包含一些控制元素,例如输入、选择和按钮元素,用于支持用户执行测量任务。为了降低计算复杂度,我们从有效LG网页中提取信息含量丰富的文本(即上述三个元素的开始和结束标记之间的内容),并将其合并成一个文档。接着我们使用TF-IDF模型进行分析,该模型需要使用逆向文件频率(IDF)文本语料库来排除频繁出现在其他各类文档中的单词。为此,我们从新闻组数据集[5]收集了11314份文档作为IDF语料库。根据合并的主体文档和IDF语料库,TF-IDF模型会为文档中每个单词计算如下权重值:
其中(词频)意味着单词在主体文档中出现的频率,(逆向文件频率)代表单词在其他文档中出现频率的倒数,这里的为11314,是IDF语料库中包含单词的文档数量。
显然,IF-IDF权重较高意味着单词经常出现在LG网页主体中但不常出现在其他类型的文档中。因此具有较高权重的单词可作为LG网页的共享特征,我们提取了49个权重大于0.05的单词(包括ip_address、router、traceroute等),并将每个单词分别与“looking glass”组合构成搜索条目。
1.3.3 基于URL的搜索条目
事实上,搜索引擎提供的搜索算法支持根据页面与搜索条目的相关性对搜索结果进行排名。因此,我们可以直接以2991个已知的LG URL作为搜索条目并借助搜索算法得到候选URL。例如,如果我们在必应中使用https://www.sprint.net/tools/looking-glass作为搜索条目,返回的搜索结果中包含其余LG URL,例如https://lookingglass.seasonlink.com/。因此,每个已知的LG URL都可用作一个搜索条目。
1.3.4 讨论
除了搜索条目之外,搜索引擎对基于相似性指导的搜索方法采集的候选URL也存在一定的影响。我们采用谷歌、必应和百度做了一些简单的实验,发现谷歌限制了单一用户的请求频率,而必应没有限制。至于百度,我们简单地搜索了一些条目并将返回的搜索结果与必应搜索结果进行比较,发现必应返回的搜索结果与我们的搜索词更相关。因此,我们在论文中选择使用必应。当然,这些搜索引擎未来都可以充分利用以发现更多的LG网页。以谷歌为例,我们可以通过协商达成定期使用搜索引擎的协议。此外,我们计划与必应进行协商以应对被封锁的风险。
1.4分类过程
上述爬取过程采集的候选URL并不一定都提供LG服务。在本章节,我们设计了一个分类器将所有的候选URL分类为相关还是不相关。不相关的URL将被丢弃,以避免进一步深入分析它们而消耗不必要的资源。
1.4.1 设计考虑
在设计分类器时主要有两点考虑:
(1)选择的分类算法必须能够处理缺乏标注的负样本(非LG页面)这一问题。将候选URL分类为相关还是不相关可以看作是一个二分类问题。传统的有监督分类算法(例如决策树,支持向量机)需要正负标记样本进行训练,然而在这项工作中,我们只有少量已知LG 页面(正样本)和大量无标记的候选URL,使得传统的有监督分类方法难以解决我们的分类问题。另一方面,无监督分类方法没有充分利用已知LG页面的标记信息,其对应的分类结果可能并不理想。为此,我们采用一种半监督分类方法-PU学习[6],在给定少量正样本和大量无标记样本的情况下,该方法可以训练分类器用于区分未标记样本中的正样本和负样本。
(2)实现高效且准确的分类效果需要选择合适的分类特征。为了准确地对候选URL进行分类,我们应该充分利用所有可用的信息,例如网页内容。但是,爬取过程得到的候选URL不包含相应的网页内容,下载大量候选URL对应的HTML文件既耗时又占用带宽,导致分类过程效率低下。我们注意到LG页面的URL通常区别于非LG页面的URL,因此,我们考虑仅根据URL特征预先过滤掉一些不相关的候选URL,对于剩下的候选URL,再下载其HTML页面并根据URL和选定的HTML内容特征进一步分类。具体来说,我们设计了一个两步分类器,包括基于URL特征的预过滤器和基于网页内容特征的分类器,可以实现较高的分类效率和准确率。
1.4.2 特征提取
PU学习模型仅能处理固定长度的数字输入,而网页URL和HTML文件都由变长的字符串组成。因此,我们需要进行特征提取,即从URL或HTML文件中构建合适的特征向量,需要说明的是特征向量应该是包含丰富且非冗余的信息,以促进后续的训练和分类步骤。
URL特征提取。本文采用词袋模型将一组URL转换为固定长度的特征向量。具体地,该模型首先创建一个包含URL集合所有单词的有序词汇表,并为每个单词赋予一个整数索引,接着为每个URL构建其特征向量,其中为整数索引为的单词在当前URL中出现的次数。
网页内容特征提取。直观上,HTML文件相比于URL包含更丰富的信息,因此通过预过滤器的候选URL将交由基于内容特征的分类器进行进一步检查。当然,并非HTML文件中所有文本都包含有价值的信息,无信息含量的文本可能会对PU学习算法产生负面影响。正如之前在2.3中介绍的,页面标题和页面主体中输入、选择和按钮元素内的文本内容对于区分相关和不相关的URL有一定的价值。此外,上述三个元素中ID属性、NAME属性和VALUE属性的值也包含有价值的信息。对于每个LG网页,我们将网址和HTML文件中具有信息含量的本文结合起来,并利用词袋模型将其转化为特征向量以表示该页面。
1.4.3 PU-Bagging模型训练
为了应对缺乏标注的负样本这一问题,我们选择一种典型的PU学习方法,即PU-Bagging算法[7],帮助构建基于URL特征的预过滤以及基于内容特征的分类器。PU-Bagging算法采用引导聚合技术(称为bagging)从正样本和未标记样本中学习分类器。具体地,该算法重复N轮以训练N个基分类器,其中每一轮训练过程中,为了解决缺乏标注的负样本这一问题,该算法从未标记样本中随机抽取部分样本作为“负样本”,并基于抽取的负样本和已知的正样本训练有监督分类器。然后将多个分类器的预测结果聚合作为最终的分类结果,这样可以减少随机选择“负样本”引入的方差。有研究[7]表明PU-Bagging算法可以获得出色的性能表现,且相比于有偏SVM方法可以在较短的时间内完成训练(尤其是在未标记样本集较大的情况下)。
以第一轮迭代为例(LG种子集作为输入),我们采用基于超链接指导的搜索方法从1736个成功下载网页内容的种子页面中提取超链接作为候选URL。同时,我们采用基于相似性指导的搜索方法对已知LG网页URL,标题和主体进行分析,构建100987个搜索条目。然后将每个搜索条目输入到必应搜索引擎中,采集前10500个搜索结果作为候选LG URL。
为了评估基于相似性指导的搜索方法的有效性,我们定义四个指标:候选URL中相关URL的数量,相关URL的浓度(候选URL中被分类为相关URL占候选URL的比例),候选URL 中发现的新的可自动化使用的LG探针数量(在4.1章的过程之后),新的可自动化使用的探针浓度(新的可自动化使用的探针数量除以候选URL的数量)。这些指标可以较好地衡量基于相似性指导的搜索方法的收益和效率。
表2 实验结果
从表2可知,基于相似性指导的搜索方法共获得了4111个相关的URL和608个新的可自动化使用的LG探针,这比基于超链接指导的搜索方法得到的相关URL(新的可自动化使用的LG探针)多约28(13)倍。结果表明,受益于搜索引擎和精心构建的搜索条目,我们提出的基于相似性指导的搜索方法可以有效地找到许多相关页面和新的LG探针。此外,我们发现相比于基于网址和标题的搜索条目,基于主体的搜索条目得到的搜索结果中相关URL浓度以及探针浓度更高。当然,这并不意味着基于网址和标题的搜索条目没有价值,它们还是可以帮助找到许多基于主体的搜索条目无法找的相关页面和新的LG探针。
每当新的相关URL被发现时,其可作为已知LG网页开启新一轮的迭代爬虫。实验表明迭代对于获取更多相关URL以及新的可自动化使用的LG探针是有意义的。除了上述第一轮迭代的实验结果外,在后续的三轮迭代中,我们额外采集了2047333个候选URL,并获得了 46551个相关URL以及280个新的可自动化使用的LG探针。
2.2两部分类器的有效性
为了评估基于URL特征的预过滤器和基于内容特征的分类器的性能,我们采用接收器操作曲线下面积接收者操作特征曲线(AUC)、真阳性率(TPR)和假阳性率(FPR)作为评估指标。其中AUC越高,说明分类器在区分正样本和负样本方面的性能表现越好。
2.2.1 评估基于URL特征的预过滤器
我们将第一轮迭代得到的数据集(包含2991个LG种子URL和919893个未标记的候选URL)随机拆分为三个子集:训练数据集(98%)、验证数据集(1%)和测试数据集(1%),其中验证和测试集中未标记的候选URL被手工标记,从而用于调整超参数和评估模型泛化能力。考虑到PU-bagging算法中超参数数量较少,易于验证和调整,我们仅采用了上述简单的验证方法而非使用N折交叉验证(需要手工标记整个数据集),而且考虑到整个数据集足够大,随机选取的1%验证集和1%测试集已经包含足够的样本用于调参和评估。
超参数调整。PU-Bagging模型中有一些超参数(例如集分类器的数量N、引导样本的大小K和分类阈值T)会影响预过滤器的分类性能,需要进行仔细选择。为此,我们利用训练集训练在不同的超参数下的基于URL特征的预过滤器,并得到一系列经过训练的预过滤器,然后根据其在验证集上的AUC性能表现,选择N为100,K等于训练集中正样本的数量(即2931)作为最优超参数。
另外,阈值T对于分类结果也有较大的影响,具体可以通过TPR和FPR来衡量。TPR高意味着大多数真正提供LG服务的候选URL能成功地被分类为相关URL,FPR低意味着少数并不提供LG服务的候选URL被错误地分类为相关URL。对于预过滤器而言,在某种程度上,保证较高的TPR比实现较低的FPR更重要,因为TPR低意味着很多LG网页会被错误过滤掉,而FPR低仅仅导致后续基于内容特征的分类器消耗较多的资源开销。图2(a)绘制了当K=2931,N=100时,不同阈值T下经过训练的预过滤器在验证集上的FPR和TPR分布。可以发现,T为0.2072能实现较高的TPR(99.07%)以及可接受的FPR(15.54%),因此我们选择T=0.2072。
图2(a)不同阈值T下经过训练的预过滤器的TPR和FPR分布
(b)不同阈值T下经过训练的分类器的TPR和FPR分布
分类结果。接着我们利用测试集(包含102个正样本和9127个负样本)评估具有最佳超参数的预过滤器的泛化能力,发现能达到FPR为15.36%,TPR为96.08%的分类性能,与上述在验证集上的性能表现基本一致。具体而言,在测试集中,预过滤器成功过滤掉7725个非LG网址,节省了下载相应的HTML文件的资源。同时,它只过滤掉4个LG网址,对最终结果的影响相对较小。
鉴于上述训练的预过滤器性能表现良好,我们用其对所有919893个候选URL进行分类。789967个候选URL被分类为不相关并立即被过滤掉,剩余的12992个候选URL被分类为相关,我们称之为预过滤URL。为了评估预过滤器带来的收益,我们将其过滤掉的无关URL的数量作为评价指标,发现预过滤器可以在损失较少LG网址(1-TPR)的同时将需要下载HTML文件的候选URL数量减少约85%,显着提高了分类效率。
2.2.2评估基于网页内容特征的分类器
对于上述预过滤器得到的12992个预过滤URL,我们成功下载了其中77113个URL对应的HTML文件。另外,正如章节2.2所述,目前有1085个提供LG服务的种子页面。由成功下载的未标记的HTML文件和种子页面构成的数据集被随机拆分为三个子集:训练集(94%)、验证集(3%)和测试集(3%),其中验证和测试集中未标记的候选URL被手工标记,从而用于调整超参数和评估模型泛化能力。
超参数调整。和上述确定预过滤器的超参数过程类似,我们选择N为100,K为1020作为基于内容特征的分类器的最优超参数。进一步地为了确定T,我们绘制了不同阈值T下经过训练的分类器在验证集上的TPR和FPR分布,如图2(b)所示。对于基于内容特征的分类器而言,我们希望能同时实现较高的TPR和较低的FPR,这意味着得到的相关页面是LG页面的概率较高。从图2(b)可知,T为0.4292时的分类器可以达到较高的TPR(95.24%)以及较低的FPR(4.25%),所以我们选择T为0.4292。
分类结果。接着我们利用测试集(包含77个正样本和2269个负样本)评估具有最佳超参数的分类器的泛化能力,发现其能实现较高的TPR(96.10%)和较低的FPR(4.10%)。换句话说,在测试集中,分类器成功过滤掉了2176个非LG页面,节省了尝试从中提取探针的资源消耗。同时,它只丢弃3个LG页面。
接着,我们使用训练好的基于内容特征的分类器对77113个预过滤URL进行分类,其中4226个URL被分类器分类为相关,我们称之为相关URL。值得注意的是,所有相关URL将作为新的已知LG页面开启新一轮的迭代。四轮迭代后,我们得到了50777个相关页面,用于后续的分析和实际应用。
通过聚焦爬虫,我们得到了很有可能是LG页面的相关页面,其对于测量研究非常有用。例如,研究人员可以手工分析每个相关页面提取可用的探针列表,并手动使用这些探针执行测量命令。但是对于想要以更具扩展性的方式完成测量任务的研究人员而言,如果我们能自动化地使用这些LG探针,将会更加实用。在本节中,我们开发了一种工具用于提取可自动化使用的LG探针,并展示这些探针在促进测量研究方面的实用价值。
LG网站通常具有不同的输入接口来收集和解析测量请求,缺乏输入接口规范阻碍了LG探针的自动使用。因此,我们需要开发一种工具来自动提取探针的输入接口信息,并通过发送测量请求以及分析测量响应来检查这些LG探针是否支持自动化使用。
3.1.1提取探针输入接口信息
我们设计了基于模板匹配和基于关键词匹配的方法用于提取探针的输入接口信息。
模板匹配。有研究[8,9]发现LG服务的部署往往基于几个流行的开源项目,且这些开源项目有不同的输入接口规范。本文通过分析论文[8]和[9]中提到的开源项目所创建的 HTML文件,推导出八个输入接口模板,其中每个模板均记录了表单元素中输入字段的名称、类型和用途。接着,我们遍历相关页面,检查其表单元素中输入字段名称和类型是否与模板相同,最终共发现1302个相关页面与模板成功匹配。
关键词匹配。至于剩余的相关页面,我们检查其表单元素中是否包含特定关键字(例如ping、trace、BGP或Bird、Router ID),发现516个相关页面是关键字匹配页面。
对于模板匹配和关键词匹配页面,我们自动将每个探针的信息(即它支持的所有命令以及运行每个命令所需的输入字段)汇总到一个文件中,总的来说,我们提取了4980个探针的输入接口信息。作为比较,我们使用上述匹配方法对1085个提供LG服务的种子页面进行分析,发现792个种子页面是模板匹配或关键字匹配页面,共提取了4450 个探针的输入接口信息。
3.1.2自动发布测量请求
在上述提取的探针输入接口信息的基础上,每个测量请求可以转换为将特定值填入相应的表单输入字段的操作。具体地,我们采用Mechanize库以编程的方式填写表单所需的输入字段并将表单提交到相应的Web服务器。服务器收到表单数据后,会响应测量请求并返回测量结果。
3.1.3分析测量响应以确定支持自动化使用的探针
如果探针能成功响应自动化发送的测量请求,我们将其称为支持自动化使用的探针。具体地,我们自动发布ping测量请求依次要求每个探针发送ping数据包到一个受控主机(运行tcpdump以捕获收到的ICMP数据包)。如果该主机可以接收到ICMP ping数据包,则表示对应的探针是支持自动化使用的。同时,可以从ICMP数据包中提取探针的IP地址,然后通过查询IP2AS以及地理定位数据库了解探针的网络和地理位置,方便研究人员选择特定区域的探针完成测量任务。
使用上述方法,我们成功地从种子页面中确定了1446个可自动化使用的探针,并从相关页面中确定了1296个可自动化使用的探针。去重后,我们发现相关页面中有910个可自动化使用的探针没有包含在任何种子页面中,这些探针被称为新发现的可自动化使用的探针。
研究人员已经注意到当前可用探针的地理和网络覆盖范围有限阻碍了我们对互联网的全面了解[10],如果我们新发现可自动化使用的探针能实现地理和网络覆盖改进,将会很有价值。此外,我们还进行了一个简单的案例研究来证明这些探针在提升互联网拓扑完整性方面的潜在价值。
3.2.1地理覆盖范围改进
虽然有一些公开的IP地理定位数据库,但众所周知,获得准确的IP地址到地理定位映射仍然是一个挑战。我们发现有些LG网页中会给出探针的地理位置,相对而言比较可靠。通过正则表达式匹配,我们成功提取了390个探针的国家级定位信息以及316个探针的城市级定位信息。对于其余探针,我们购买IP2location DB9数据库来将其映射到国家和城市级位置。需要说明的是,我们将DB9数据库与网页中提取的可靠定位信息进行比较,发现DB9数据库的国家级定位的准确率能达到97%,还是可以接受的。
图3 探针地理分布
图2绘制了1446个已知的可自动化使用的LG探针(蓝点)和 910个新发现的可自动化使用的LG探针(红点)的地理覆盖范围,其中点的大小代表相应地理区域中探针的数量。1446个已知的可自动化使用的探针分布在75个国家,386个城市,910个新发现的可自动化使用的探针覆盖了55个国家,282个城市。新发现的探针使得研究人员能从8个新的国家和160个新的城市执行测量命令,而在这些区域未发现已知的LG探针。尤其,这8个新的国家主要分布在东非和南亚,其网络连通性和性能近年来引起了很多研究人员的关注。
3.2.2网络覆盖范围改进
推断路由器所的网络归属也并非易事,我们注意到一些LG页面会给出探针所在的自治域信息,通过正则匹配,我们提取了526个探针的自治域信息。然后我们使用bdrmapIT[11]工具构建一个IP2AS数据集,帮助获取323个探针的自治域信息。对于剩余探针,我们进一步查询路由表前缀获取自治域信息。
经分析发现,新发现的探针使得研究人员能从288个新的自治域执行测量命令,而在这些AS内未发现已知的LG探针。进一步地,我们将这些自治域根据其在互联网中的层次结构进行分层,发现绝大部分新的自治域(287个)都分布在互联网边缘。之前的研究[12]表明可以通过将探针放置在互联网边缘来改善AS级拓扑的完整性,这也说明我们新发现的LG探针对于提高互联网拓扑的完整性具有一定的价值。
3.2.3提升拓扑完整性的案例研究
为了说明新发现的LG探针的潜在价值,我们利用支持显示BGP邻居IP宣告(或接收)路由这一测量命令的探针采集大量的BGP路由表信息,并将获取的AS级别拓扑数据和其他常用的测量平台采集的数据比较,发现了10个新的AS以及1428个新的AS链路。
利用LG探针采集AS路径信息。运行显示BGP邻居IP宣告(或接收)路由测量命令返回的AS路径可以帮助构建AS级互联网拓扑。我们注意到一些常用的LG开源项目模板(例如HSDN[14]和Cougar[13])通常在show BGP summary测量命令的响应页面中提供显示BGP邻居IP宣告(或接收)路由这一测量命令的输入接口。
借助章节4.1中提出的自动发布测量请求的方法,我们可以自动控制探针收集AS路径信息。具体而言,在提取的探针输入接口信息的基础上,我们以编程的方式填写所需的输入字段,向每个探针发送show ip BGP summary测量请求。返回的响应网页会给出与探针相连的每个BGP连接的状态,以及相邻的BGP路由器IP地址和所属自治域。然后,通过点击每个相邻IP所对应超链接,我们可以控制探针运行显示BGP邻居IP这一测量命令来收集有关邻居IP的详细信息,包括显示其宣告(或接收)路由的超链接。通过进一步访问这一超链接,我们可以控制探针运行显示BGP邻居IP宣告(或接收)路由测量命令获取BGP路由表,再使用正则匹配提取AS路径。
提升AS拓扑完整性。使用上述方法,我们成功地从14个LG探针和8个新发现的LG探针中提取了AS路径信息。作为比较,我们还从两个流行的BGP采集项目(RIPE RIS和RouteViews)下载了2020年12月的路由表快照构建AS拓扑。对比发现这8个新发现的LG探针可以帮助观察到10个新的AS以及1428个新的AS链路。这一结果与以往研究的结论一致[12],常用的BGP探针数量有限且通常集中在互联网核心导致存在许多无法直接观察到的“阴影区域”,更多的BGP探针(尤其是分布在互联网边缘的探针)对于发现更多的 AS链路很有价值。
讨论:其他的新发现LG探针对于提升AS级拓扑的完整性也有十分重要的意义。实际上,支持traceroute或显示BGP路由测量命令的探针的数量比上述案例研究中使用测量点数量多很多。对于支持traceroute的探针,我们可以自动地控制他们traceroute到目标IP地址,得到IP级别的路径。对于支持显示BGP路由的探针,我们可以控制他们返回到达指定网络前缀的BGP路由信息。这里需要解决的问题是如何为支持traceroute测量命令的探针选择合适目标IP地址以及如何为支持显示BGP路由测量命令的探针指定目标网络前缀。由于一些LG探针限制用户请求速率,我们需要仔细选择目标IP和目标网络前缀以在提高拓扑完整性方面取得高效的性能,这将作为我们的后续工作进一步开展。
点击二维码,关注我们
文章如有侵权,请联系删除!!!
原文始发于微信公众号(湘雪尘奕):【转发】互联网开放探针资源自动发现和自动访问
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论