发明内容
本发明的目的在于提供一种面向IP定位的大规模网络别名解析方法,用于解决现有的基于主动探测和基于统计分析的网络别名解析方法存在的准确率、效率一般,难以满足大规模网络的别名解析需求,从而影响了IP定位等实际应用的效果的问题。
为了实现上述目的,本发明采用以下技术方案:
一种面向IP定位的大规模网络别名解析方法,包括以下步骤:
步骤1:样本集和构造:
从公开数据源或路由节点已知的网络获取一定数量存在别名关系的接口IP对,构成集合S0;同时,获取一定数量的不存在别名关系的IP对,构成集合S1;总的样本集合S=S0∪S1;待解析的所有路由器接口IP构成集合S';
步骤2:相关数据获取:
分布式部署多个探测源,对集合S及S'中的接口IP进行探测,获取从源IP到接口IP的时延和路径;通过查询相关IP信息库,获取每个接口IP所属ISP及Whois信息;通过探测源对接口IP对应的路由器主机进行监测,获取其操作系统版本、端口开放情况以及主机运行状态信息;
步骤3:非别名IP过滤:
对S'中的任意接口IP进行两两组合,并利用步骤2获取的数据,对IP所属ISP、探测路径及对应主机运行状态进行统计;根据非别名IP的过滤方法,排除不存在别名关系的接口IP,剩余IP构成集合S”;
步骤4:分类特征表示:
利用IP
i,IP
j的时延、探测路径、Whois、路由器主机信息,根据分类特征生成方法,为样本(IP
i,IP
j)构造特征向量F
i,j(F
1,F
2,F
3,F
4);获得S中所有IP对的特征向量,构造集合F;对于过滤后生成的集合S”中的IP对,构造集合F’;其中,IP
i,IP
j为任意构成待判别的IP对的两个待解析的IP;
步骤5:分类模型训练:
将特征向量集合F作为分类器的输入,对分类器进行训练,得到分类模型;
步骤6:别名解析:
对于集合S”中待解析的IP对,将其特征向量集合F’输入步骤5中训练好的分类模型,得到分类结果R,即任意一对IP的别名解析结果。
步骤3中所述的非别名IP的过滤方法,采用如下非别名IP的过滤规则:
步骤a:不属于同一ISP的任意两个非骨干路由接口IP不存在别名关系;
步骤b:出现在同一条探测路径中的两个接口IP不存在别名关系;
步骤c:从同一探测源获取的路径,其中跳数对应但IP却不同的情况出现次数≥3时,两个接口IP不存在别名关系;
步骤d:从同一探测源获取的路径的跳数差异≥4时,两个接口IP不存在别名关系;
步骤e:相同时刻,对应主机运行状态不同的任意两个接口IP不存在别名关系。
步骤4中所述的根据分类特征生成方法,为样本(IPi,IPj)构造特征向量Fi,j(F1,F2,F3,F4)的方法为:
步骤4.1:计算特征向量F1;
设任意两个待解析的接口IP为IPi,IPj,分布式部署n个位于不同位置的探测源N1~Nn,从每个探测源分别对IPi,IPj进行多次探测,对每个IP获取一个最小时延,以尽可能减小网络拥塞等影响;对于IPi,其n个最小时延定义为ti,1,ti,2,…,ti,n,对于IPj,其n个最小时延定义为tj,1,tj,2,…,tj,n;为IPi,IPj构造时延向量Di(ti,1,ti,2,…,ti,k,…,ti,n),Dj(tj,1,tj,2,…,tj,k,…,tj,n);利用下述公式计算Di与Dj的相似度Sd,将其作为时延相似度特征值Sd:
其中,F1=Sd;
步骤4.2:计算特征向量F2;
设任意两个待解析的接口IP为IPi,IPj,从探测源N1~Nn分别对该两个IP进行m次探测;对于IPi,IPj的探测路径,分别取m次探测中出现次数最多的路径跳数作为从探测源Nn到该IP的探测路径长度,将从Nn得到的IPi,IPj的路径向量分别记为pathi,n,pathj,n,pathi,n表示为:(A1,n,A2,n,…,Al,n,…,Ax,n),pathj,n表示为:(B1,n,B2,n,…,Bl,n,…,By,n);其中,x,y分别为IPi,IPj路径的长度,Al,n,Bl,n分别为两个IP的路径上的第l跳出现的所有路由器接口IP构成的集合;若IPi,IPj为别名IP,则应有Al,n≈Bl,n,(Al,n∩Bl,n)≈(Al,n∪Bl,n),且x≈y,若IPi,IPj为非别名IP,则Al,n与Bl,n,x与y有一定差异;因此从Nn得到的IPi,IPj的路径的相似度Sn表示为:
其中,当x<y时,置A
x+1,n~A
y,n为
反之,当y<x时,置B
y+1,n~B
x,n为
最终,将IP
i,IP
j的路径相似度S
p可表示为从n个探测源获取的路径的相似度的平均值,即:
其中,F2=Sp;
步骤4.3:计算特征向量F3;
存在别名关系的两个IP,当其Whois信息完全相同时,定义Whois信息总条数为H,记第h条Whois信息为Ih,1≤h≤H;设任意两个待解析的接口IP为IPi,IPj,当其第h条信息相同时,定义v(Ih)=1,否则v(Ih)=0;不存在别名关系的两个IP,定义Whois信息中所属网段、网络名称、所属国家、状态信息4条信息项构成的集合为I,将信息项Ih的权值w(Ih)表示为:
其中,p<0.5<q,且p=0.1,q=0.9;对于IPi与IPj,定义其相同Whois信息项构成集合为K,则其Whois信息相似度Sw可表示为:
其中,F3=Sw;
步骤4.4:计算特征向量F4;
设任意两个待解析的IP为IPi,IPj,从n个探测源分别对其进行Z次探测,并根据每一次的探测结果,获取IP对应主机的操作系统版本、端口开放情况以及主机运行状态信息;在确保IPi,IPj对应的主机运行状态相同的情况下,根据主机操作系统版本、开放端口数量及端口状态,计算两个IP对应的主机信息相似度如下:
第z次探测时,对于IPi,IPj,若其对应路由器主机操作系统相同,则系统相似度s1,z=1,否则s1,z=0;设IPi,IPj对应路由器主机开放的相同的端口数量为nsame,总的开放端口数量为nall,则端口开放相似度s2,z=nsame/nall;则对于第z次探测时,IPi,IPj的主机信息相似度Sz可表示为:
as1,z+bs2,z;
其中,a,b为权值,且a=0.3,b=0.7;
将IPi,IPj的主机信息相似度表示为所有探测中信息相似度的均值Sh,即:
其中,F4=Sh;
步骤4.5:为样本(IPi,IPj)构造特征向量Fi,j(F1,F2,F3,F4)。
本发明的有益效果:
(1)本发明提出了一种面向IP定位的大规模网络别名解析方法,利用本方法可对大规模网络中的路由器接口IP进行准确、高效的别名解析,从而有望对大规模网络的路由器级网络拓扑进行准确的刻画。
(2)本发明提出了提高别名解析效率的非别名IP过滤方法,根据接口IP所属ISP,探测路径,及对应路由器主机信息的特性设计非别名IP过滤方法,在进行别名解析之前,依据非别名IP过滤方法,排除不可能存在别名关系的IP对,从而有望减少别名解析的工作量,提高别名解析的效率。
(3)本发明构建了区分别名IP及非别名IP的四维特征向量,根据别名IP及非别名IP在直接时延、探测路径等方面的统计差异,将别名解析问题转化为机器学习中的分类问题,构建了分类特征向量,训练分类模型并用于对大规模网络的接口IP进行别名解析,有望提高别名解析的准确率。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明所述的一种面向IP定位的大规模网络别名解析方法,包括以下步骤:
步骤1:样本集合构造,具体采用以下方法:
从公开数据源或路由节点已知的网络获取一定数量存在别名关系的接口IP对,构成集合S0;同时,获取一定数量的不存在别名关系的IP对,构成集合S1;总的样本集合S=S0∪S1;待解析的所有路由器接口IP构成集合S'。
步骤2:相关数据获取,具体采用以下方法:
分布式部署多个探测源,对集合S及S'中的接口IP进行探测,获取从探测源IP到接口IP的时延和路径;通过查询相关IP信息库,获取每个接口IP所属ISP及Whois信息;通过探测源IP对接口IP对应的路由器主机监测,获取其操作系统版本、端口开放情况以及主机运行状态信息。
步骤3:非别名IP过滤,具体采用以下方法:
对S'中的任意接口IP进行两两组合,并利用步骤2获取的数据,对S'中的任意接口IP所属ISP、探测路径及对应主机运行状态进行统计;
根据非别名IP过滤方法,排除不存在别名关系的接口IP,剩余IP构成集合S”;
具体的:
实际网络中的路由器,一般都具有多个接口,每个接口都会配置一个IP;同一路由器上的多个接口IP之间互为别名关系,而不同路由器上的接口IP不存在这种关系;假设某个网络存在P个路由器,每个路由器有Q个接口IP,在获取到该PQ个接口IP后,传统的别名解析方法直接对其中任意的两个IP进行组合,并对IP间是否存在别名关系进行判别,需要解析的IP对数量为
但其中真正存在别名关系的IP对数量仅为
二者之比为(PQ-1)/(Q-1),P越大,二者差异越明显;如图6所示,设每个路由器平均有10个接口,即上述Q=10,红色曲线表示传统方法认为可能的别名对即需要解析的IP对数量,绿色曲线表示实际的别名对的数量,对比发现随着路由器数量的增加,二者差异越来越大。
通过上述分析可知,若能够在别名解析之前,尽可能的过滤掉那些不可能存在别名关系的IP对,则可以减少别名解析工作量,显著的提高别名解析的效率。
进一步的,为了本领域技术人员进一步理解本发明的技术方案,下面将对本发明所述的非别名IP过滤方法做详细说明:具体的,本发明对路由器接口IP的直接时延、探测路径、Whois信息、IP对应路由器主机信息等大量相关数据进行统计分析,并对别名IP与非别名IP在这些数据方面的统计差异进行详细介绍;
第一、直接时延:
从探测源IP向目标IP发送请求数据包,目标IP会对请求进行响应,通过该过程中目标IP对请求的响应时间,可得到探测源IP与目标IP之间的直接时延;该直接时延与探测源IP和目标IP之间的距离有较大关系,在网络性能良好、拥塞不明显的情况下,距离越远,时延越大;同一探测源IP到处于相同地理位置的两个目标IP的时延往往相似,而到不同位置的目标IP的时延总会存在一定差异(除非目标IP大致分布于以探测源IP为圆心,探测源IP与目标IP距离为半径的圆上);存在别名关系的IP,配置在同一个路由器的不同接口上,其地理位置相同,因此两个别名IP相对于同一源IP的时延应很相似,而不存在别名关系的IP之间应不具有这种相似性;通过现有数据统计分析可知:同一探测源到一对别名IP的时延大多较为相似,差值较小,约<5ms,而到一对非别名IP的时延相似程度较低,时延差值较大。
第二、探测路径:
路由器主要负责为转发的每个数据包寻找一条最佳的传输路径,从而将数据包高效地传送到下一跳;为了能够快速选择出最佳路径,路由器中保存了包含数据转发策略的路由表,供路由选择时使用;通常,该路由表在相当一段时间内是不变的,即路由节点的下一跳是相对固定的;从探测源IP到目标IP,通常会经过多个路由器,由于每个路由节点的下一跳在一段时间内都相对固定,那么从探测源IP到目标IP的整条路径也是固定的。
别名IP,被配置在同一路由器上,无论其地理位置,还是在拓扑中的逻辑位置都是相同的;根据上述路径的稳定性可知,从同一探测源IP到别名IP的探测路径应相同或极为相似,而到非别名IP的路径相似度应相对较低;利用traceroute,获取从同一探测源到大量接口IP的探测路径,对这些路径进行分析发现,其相似程度可分为如下A~D四种情况,图2-图5为不同情况的示意;其中,由于路径的方向是由所经过的路由器决定的,因此,当两条路径跳数对应但IP却不同的情况出现次数≤2时,路径的方向是相似的,当两条路径的跳数差异≤2时,路径的长度是相似的。
A.两个接口IP的探测路径方向、长度都极为相似;如图1所示,从探测源T到IP1,IP2的探测路径,跳数基本相同,且对应的每一跳都基本是同一路由节点;
B.两个接口IP的探测路径方向相似,但长度不相似;如图2所示,从探测源T到IP1,IP2的探测路径,跳数差异较大,但初始的多跳路由节点基本相同;
C.两个接口IP的探测路径长度相似,但方向不相似;如图3所示,从探测源T到IP1,IP2的探测路径,跳数基本相同,但对应的每一跳几乎都是不同一路由节点;
D.两个接口IP的探测路径方向、长度都不相似;如图4所示,IP1,IP2的探测路径,跳数存在一定差异,且对应的每一跳都是不同一路由节点;
对于上述四种情况,A中两个接口IP很大程度上存在别名关系,而C、D中两个IP一般不可能存在别名关系;对于B,当探测路径跳数相差较少时,该两个IP可能存在别名关系,当路径跳数相差较大,如3跳及以上时,该两个IP几乎不可能存在别名关系,还有一种极端的情况是两个接口IP出现在同一条路径上,此时两个IP被配置在不同的路由器上,不可能存在别名关系;对1×106对别名IP及非别名IP的探测路径进行统计分析,对应不同路径相似程度的IP对所占比例如表1所示:
表1:路径相似程%度统计
表1列出了别名IP及非别名IP的探测路径相似程度对应A,B,C,D的比例,以及每种情况下路径的方向及长度的不同相似程度的具体比例;由表1的统计结果可得:所有的别名IP对的路径相似程度都属于A或B,但属于A的占98.1%,而属于B的仅占1.9%,且非别名IP对中,路径相似程度属于A的仅有0.4%,而有13.1%的属于B,这说明两个IP探测路径相似程度属于A时,很大程度上可能互为别名,属于B时是否为别名存在一定的不确定性,而当属于C或D时,基本不会成为别名;这种别名IP及非别名IP在探测路径的方向,长度方面相似程度的差异,可用于过滤不可能存在别名关系的IP,以及判别IP间是否存在别名关系。
第三、Whois信息:
IP的Whois信息,即IP的详细数据信息,主要包括IP所属单位描述、IP的持有者及相关相关信息、信息最后修改时间等;存在别名关系的IP,被配置在同一个路由器上,其Whois信息往往相同,而非别名IP的Whois信息差异较为明显;对1×106对别名IP及非别名IP的Whois信息进行统计,结果如表2所示,由表可以看出,至少有98.4%的别名IP对的Whois信息基本一致,相同的信息条数≥15,而约93.9%的非别名IP对的Whois信息仅有4项相似,如技术联系人、通讯地址等信息;尽管非别名IP间也存在个别的信息项相同,但总体而言,别名IP对与非别名IP对在Whois信息相似程度方面的差异,可以为别名解析提供帮助;由于IP的Whois信息无需通过探测获取,仅通过查询Whois信息库即可得到,因此即使在待解析的路由器接口IP对探测无响应时,仍能够在一定程度上利用Whois信息进行IP间别名关系的判别。
表2:相同Whois信息项的条数统计
第四、路由器主机信息:
作为网络中重要的“枢纽”,路由器主要负责网络中数据包的转发;像计算机使用Windows、Linux等作为操作系统一样,在路由器上,也有软件在运行,可以等同地认为它们就是路由器的操作系统,这种系统主要负责完成路由表的生成和维护,如FreeBSD、JuniperJUNOS、OpenBSD等;不同的路由器的操作系统可能不同,存在别名关系的IP对应的路由器其操作系统一定相同;为了提供多种服务,满足不同的网络需求,路由器也会开放多个端口,不同的路由器开放的端口可能不一样,存在别名关系的IP对应的路由器其开放的端口及对应端口的状态一定相同;此外,在相同时刻,存在别名关系的IP对应的路由器的运行状态(即在线或者离线)是一致的,而不存在别名关系的IP对应的路由器,可能由于断电或网络中断等原因导致其运行状态不会一致。
同样的,分别对1×106对别名IP及非别名IP的主机信息进行统计后发现,约89.8%的别名IP对应的路由器的操作系统信息一致,约96.6%的别名IP对应的路由器的端口开放情况完全一致,所有的存在别名关系的一对IP对应的路由器的运行状态完全一致,而非别名IP对应的路由器上述信息一致的比例分别仅为12.1%,6.9%,1.0%,差异较为明显;进一步的,IP所属的互联网服务提供商(Internet Service Provider,ISP)信息,也可用于判别IP间是否存在别名关系;配置在同一路由器上的IP,往往都属于同一ISP(骨干网路由器除外,因为个别骨干路由器不同接口IP可能属于不同ISP);若某两个接口IP不属于同一ISP,则该两个IP不存在别名关系。
通过上述统计分析可知,别名IP的直接时延、探测路径、whois信息、路由器主机信息等数据相似性较高,而非别名IP间的这种相似性往往较低,因此,可得到以下非别名IP过滤方法,主要采用以下非别名IP过滤规则:
步骤a:不属于同一ISP的任意两个非骨干路由接口IP不存在别名关系;
步骤b:出现在同一条探测路径中的两个接口IP不存在别名关系;
步骤c:从同一探测源获取的路径,其中跳数对应但IP却不同的情况出现次数≥3时,两个接口IP不存在别名关系;
步骤d:从同一探测源获取的路径的跳数差异≥4时,两个接口IP不存在别名关系;
步骤e:相同时刻,对应主机运行状态不同的任意两个接口IP不存在别名关系。
对于待解析的所有路由器接口IP集合S'及任意组合的一对IP,使用上述非别名IP过滤方法进行过滤;需要说明的是,以上非别名IP过滤方法是有先后顺序的;这是因为步骤a中IP所属ISP可以通过查询现有的数据库获取,而步骤b、c、d,为确保准确性,综合采用多个探测源并行探测,并根据探测结果进行判别,耗时较少;步骤e则需要对IP对应的主机监测一段时间,因此将其放在最后进行,且仅对通过步骤a~d过滤后的IP进行监测。由上述分析及表1统计结果可知,通常探测路径的跳数差异≥3时,两个IP基本不存在别名关系,但为了降低个别特殊IP对带来的误判,在规则d中,进一步将阈值增大为4。
依据上述非别名IP过滤方法,排除待解析的所有路由器接口IP集合S'中不存在别名关系的IP对后,生成剩余的IP集合S”。
步骤4:分类特征表示,具体采用以下方法:
利用IP
i,IP
j的时延、探测路径、Whois、路由器主机信息,根据分类特征生成方法,为样本(IP
i,IP
j)构造特征向量F
i,j(F
1,F
2,F
3,F
4),获得S中所有IP对的特征向量,构造集合F;对于过滤后生成的集合S”中的IP对,构造集合F’。
进一步的,为了本领域技术人员进一步理解本发明的技术方案,下面将对本发明所述的分类特征生成方法做详细说明:
步骤4.1:时延相似度计算:
由上述非别名IP过滤方法中对直接时延的统计分析可知,同一探测源IP到存在别名关系的两个IP的时延往往较为相似,到不存在别名关系的两个IP的时延相似度较低,但受实际网络状况对时延的影响,仍有个例不符合该规律;仅利用单一探测源IP到任意两个IP的时延相似度,难以判别IP间是否存在别名关系;而从多个探测源IP分别获取到两个IP的时延相似度,能够减少网络状况的影响;为此,对待判别的IP对,采取从多个不同位置的探测源IP,分别获取到两个IP的时延,对于其中的每个IP,利用获取到的多个时延,为该IP构造时延向量;对待判别的两个IP,计算其时延向量的相似度,并将作为一维分类特征,具体方法如下:
设任意构成待判别的IP对的两个待解析的IP为IPi,IPj,分布式部署n个位于不同位置的探测源N1~Nn,从每个探测源分别对IPi,IPj进行多次探测,对每个IP获取一个最小时延,以尽可能减小网络拥塞等影响;对于IPi,其n个最小时延定义为ti,1,ti,2,…,ti,n,对于IPj,其n个最小时延定义为tj,1,tj,2,…,tj,n;为IPi,IPj构造时延向量Di(ti,1,ti,2,…,ti,k,…,ti,n),Dj(tj,1,tj,2,…,tj,k,…,tj,n);利用下述公式计算Di与Dj的相似度Sd,将其作为时延相似度特征值Sd:
其中,F1=Sd。
步骤4.2:路径相似度计算;
由上述非别名IP过滤方法中对探测路径的统计分析可知,一定时间内,路由转发的下一跳往往是不变的,从探测源IP到目的IP的路径相对固定;存在别名关系的接口IP处于同一路由器上,当从同一探测源对其进行探测时,探测路径(方向和长度)往往较为相似;对待解析的IP对,分别获取不同探测源IP到两个接口IP的路径,并根据路径构造向量,从而计算两个IP的路径相似度,作为分类特征,具体的:
设任意两个待解析的接口IP为IPi,IPj,从探测源N1~Nn分别对该两个IP进行m次探测。由于路由器至少拥有2个接口,一些大型核心骨干路由器通常拥有10~30个接口,为保证能够尽可能全的发现探测路径上每一跳路由器的接口IP,应置探测次数m大于路由器接口数量,如取m=50;按如下方式计算从探测源Nn到IPi,IPj的路径相似度;
对于两个IP的探测路径,分别取m次探测中出现次数最多的路径跳数作为从探测源Nn到该IP的探测路径长度,将从Nn得到的IPi,IPj的路径向量分别记为pathi,n,pathj,n,pathi,n表示为:(A1,n,A2,n,…,Al,n,…,Ax,n),pathj,n表示为:(B1,n,B2,n,…,Bl,n,…,By,n);其中,x,y分别为IPi,IPj路径的长度,Al,n,Bl,n分别为两个IP的路径上的第l跳出现的所有路由器接口IP构成的集合;若IPi,IPj为别名IP,则应有Al,n≈Bl,n,(Al,n∩Bl,n)≈(Al,n∪Bl,n),且x≈y,若IPi,IPj为非别名IP,则Al,n与Bl,n,x与y有一定差异;因此,本文将从Nn得到的IPi,IPj的路径的相似度Sn表示为:
其中,当x<y时,置A
x+1,n~A
y,n为
反之,当y<x时,置B
y+1,n~B
x,n为
最终,将IP
i,IP
j的路径相似度S
p可表示为从n个探测源获取的路径的相似度的平均值,即:
其中,F2=Sp。
步骤4.3:Whois信息相似度计算:
由上述非别名IP过滤方法中对Whois信息的统计分析可知,对于大多数存在别名关系的一对IP,其Whois信息较为一致,但统计发现,少量不存在别名关系的IP,其个别Whois信息项也相同,这可能是由于信息更新不及时等原因导致;为了更好的根据Whois信息相似程度判断IP间是否存在别名关系,本文对不同的Whois信息项赋权值,计算IP间Whois信息的相似度,并将其作为一维分类特征;具体表示如下:
存在别名关系的两个IP,当其Whois信息完全相同时,总条数记为H(通常为17),记第h条Whois信息为Ih,1≤h≤H;设任意两个待解析的IP为IPi,IPj,当其第h条信息相同时,有v(Ih)=1,否则v(Ih)=0。
不存在别名关系的两个IP,个别Whois信息项如所属网段、网络名称、所属国家、状态信息等也可能相同,该几项信息对于判别IP间是否存在别名关系的贡献,要小于仅当IP间存在别名关系时才会相同的Whois信息,因此为不同信息项赋不同的权值;设该4条信息项构成的集合为I,则将信息项Ih的权值w(Ih)表示为:
其中,p<0.5<q,本文取p=0.1,q=0.9;对于IPi与IPj,设其相同信息项构成集合为K,则其Whois信息相似度Sw可表示为:
其中,F3=Sw。
步骤4.4:主机信息相似度计算:
由上述非别名IP过滤方法中对路由器主机信息的统计分析可知,存在别名关系的IP对应的主机,在操作系统版本、端口开放情况以及主机运行状态方面,较为一致,尤其在主机运行状态和端口开放方面,具有高度的一致性;不存在别名关系的IP,其对应主机的上述信息,往往不同,但个别IP的操作系统版本或部分开放端口相同;因此,为了充分考虑不同主机信息的特点,更好的依据主机信息对IP间别名关系进行判断,按如下方式计算IP对应主机的信息相似度:
设任意两个待解析的IP为IPi,IPj,从n个探测源分别对其进行Z次探测,并根据每一次的探测结果,获取IP对应主机的操作系统版本、端口开放情况以及主机运行状态信息;对于任意时刻,只有在IPi,IPj对应的路由器主机的运行状态完全相同的情况下,这两个IP才有可能配置在同一路由器不同端口上,即存在别名关系;所以在确保IPi,IPj对应的主机运行状态相同的情况下,根据主机操作系统版本、开放端口数量及端口状态,计算两个IP对应的主机信息相似度如下:
第z次探测时,对于IPi,IPj,若其对应路由器主机操作系统相同,则系统相似度s1,z=1,否则s1,z=0;设IPi,IPj对应路由器主机开放的相同的端口数量为nsame,总的开放端口数量为nall,则端口开放相似度s2,z=nsame/nall;则对于第z次探测时,IPi,IPj的主机信息相似度Sz可表示为:
as1,z+bs2,z;
其中,a,b为权值;
因为个别不存在别名关系的IP,其对应主机的操作系统也存在相同的情况,但开放的端口数量及状态几乎没有相同的,相对来说端口开放相似度对于判别IP间的别名关系贡献更大,因此在计算Sz时,有a<0.5<b,本文取a=0.3,b=0.7;
考虑到别名IP间,上述信息任意时刻都较为相似,而非别名IP则不然,因此,将IPi,IPj的主机信息相似度表示为所有探测中信息相似度的均值Sh,即:
其中,F4=Sh。
步骤4.5:为样本(IPi,IPj)构造特征向量Fi,j(F1,F2,F3,F4)。
最终得到如下分类特征表,如表3所示:
表3:分类特征表
步骤5:分类模型训练,具体采用以下方法:
将特征向量集合F作为分类器的输入,对分类器进行训练,得到分类模型。
步骤6:别名解析,具体采用以下方法:
对于集合S”中待解析的IP对,将其特征向量集合F’输入已训练好的模型,得到分类结果,即任意一对IP的别名解析结果。
为了验证本发明所述的一种面向IP定位的大规模网络别名解析方法的有效性,下面将;利用实验给出了多组测试及结果分析;采用几种不同的方法进行多组别名解析,并从正确率、效率及应用于IP定位的效果等方面,对不同方法进行对比分析。
实验中接口IP样本数据来源于CAIDA,该网站提供了大量的可靠路由器级网络拓扑数据,其中包含路由节点,以及节点的接口IP和位置信息,每个节点的多个接口IP相互间存在别名关系,由此可构造存在别名关系的IP集;同时,不同节点间的接口IP,不存在别名关系,由此构造不存在别名关系的IP集。
为获取时延及路径信息,对于上述样本中属于中国的路由节点接口IP,在郑州、北京、上海、广州、天津、成都等地部署10个探测源,并从每个探测源对各个IP进行探测;同样的,对于属于美国的路由节点接口IP,在纽约、芝加哥、亚特兰大、华盛顿、迈阿密、西雅图等地部署10个探测源,并从每个探测源对各个IP进行探测;接口IP的ISP、Whois信息,主要通过查询相关IP信息库获取,IP对应的路由器主机信息,则利用Nmap获取。
利用获取到的IP的时延、路径等信息,对样本进行如下的别名解析测试。
具体的实验设置如表4所示:
表4:实验设置表
利用表4样本,分别对本发明所述的一种面向IP定位的大规模网络别名解析方法中的非别名IP过滤方法的效果及别名解析效果进行测试,并分析测试结果,如表5和表6所示:
表5:过滤结果
利用如表4所述的样本,在获取到所需相应数据后,表5给出了对分布于中国北京、上海及美国纽约、迈阿密的样本的过滤结果,其中测试时4个城市的别名IP及非别名IP数量均为1×106对。
分析表5结果可得,仅有个别别名IP对非别名IP过滤方法当作非别名IP对过滤掉,其中有41对位于中国上海的IP被步骤c过滤掉,有23对位于美国迈阿密的IP被步骤d过滤掉,被过滤掉的主要原因是一对IP中的其中一个IP可能由于丢包等原因导致探测不通,而另一个探测可达,该情况极少出现;而通过步骤a~e,四个城市中分别有83.4%,81.7%,84.6%,86.2%的非别名IP对被准确过滤掉;由此可以看出本发明所述的一种面向IP定位的大规模网络别名解析方法中的非别名IP过滤方法能够准确过滤掉大部分非别名IP对,同时保留别名IP对,使用该方法,能够大大减少别名解析的工作量,从而提高效率。
为了测试本发明所述的一种面向IP定位的大规模网络别名解析方法的别名解析效果,从表4所述的样本中取别名IP对及非别名IP对,分别构造集合S0,S1,其中分布于中国的样本数量为2×107,分布于美国的样本数量为3×107;本文采用SVM分类器,对样本进行分类测试;为了考察本发明所述的一种面向IP定位的大规模网络别名解析方法对样本数据量的依赖程度,分别设置如下三组测试,每组测试进行三次随机抽样:
1)1/4的数据用于构造训练集,3/4的数据用于构造测试集,对应a1~a3;
2)1/2的数据用于构造训练集,1/2的数据用于构造测试集,对应b1~b3;
3)3/4的数据用于构造训练集,1/4的数据用于构造测试集,对应c1~c3;
测试结果如表6所示:
表6:训练、测试集构造及对应分类结果
其中,分类正确率Acc(Accuracy)、漏报率Ma(Missing alarm)、虚警率Fa(Falsealarm)计算如下,分类正确率Acc:(TT+FF)/(X+Y),漏报率Ma:TF/Y,虚警率Fa:FT/X;X表示测试集中别名IP对的数量,Y表示测试集中非别名IP对的数量,TT表示被正确分类的别名IP对的数量,FF表示被正确分类的非别名IP对的数量,FT表示被错误分类的别名IP对的数量,TF表示被错误分类的非别名IP对的数量;由表6可得,本发明所述的一种面向IP定位的大规模网络别名解析方法所获得的正确率较高,漏报率和虚警率都较低;上述三组共9次测试的正确率维持在95%~97%之间,测试a1~a3的平均正确率为95.9%,b1~b3的平均正确率为96.4%,c1~c3的平均正确率为96.5%;由相同样本量的测试结果可得,本发明所述的一种面向IP定位的大规模网络别名解析方法的性能具有稳定性;对比测试a1~a3,b1~b3与c1~c3可以看出,即使使用少量训练样本数据,也能获得相对较好的分类模型及分类效果。
准确、高效的别名解析,对于获取能够反映真实网络结构的路由器级网络拓扑,从而支撑IP定位意义重大;现有部分典型方法如RadarGun、MIDAR、TreeNET等,在别名解析方面具有相对良好的效果;为了验证本发明所述的一种面向IP定位的大规模网络别名解析方法所的准确性,从表4中所述的样本中取别名IP对及非别名IP对,其中分布于中国的样本数量为3×107,分布于美国的样本数量为5×107;分别利用RadarGun、MIDAR、TreeNET进行5次别名解析;如表7所示,表7给出了不同方法每一次测试对应的正确率(Acc),漏报率(Ma)及虚警率(Fa);
表7:不同方法多次测试结果对比
由表7所示,RadarGun、MIDAR、TreeNET及本发明所述的一种面向IP定位的大规模网络别名解析方法都能够获得一定的效果,平均的正确率分别为82.7%,91.4%,90.6%,95.8%,MIDAR,TreeNET和本发明所述的一种面向IP定位的大规模网络别名解析方法的正确率较高;本发明所述的一种面向IP定位的大规模网络别名解析方法相比于前三中方法正确率分别提高了15.8%,4.8%,5.7%;上述测试结果中,四种方法的5次测试所得正确率的标准差分别为0.0380,0.0129,0.0062,0.0056,相比于其他两种方法,TreeNET及本发明所述的一种面向IP定位的大规模网络别名解析方法多次测试结果正确率较为一致,具有稳定性;此外,在测试时,将别名IP对作为正例样本,非别名IP对作为负例样本,本发明所述的一种面向IP定位的大规模网络别名解析方法多次测试所得漏报率都要低于虚警率,说明虽然本发明所述的一种面向IP定位的大规模网络别名解析方法存在将部分别名IP对误判为非别名IP对的情况,但通过本发明所述的一种面向IP定位的大规模网络别名解析方法所获取的别名IP对仍然较为准确可靠。
为了验证本发明所述的一种面向IP定位的大规模网络别名解析方法对别名解析的高效性,同样采用表4所述的样本数据,分别利用RadarGun、MIDAR、TreeNET及本发明所述的一种面向IP定位的大规模网络别名解析方法,对不同规模的网络(即包含不同数量的接口IP),在相同的实验环境下,分别进行3次测试,并对测试所用时长进行对比分析;考虑到MIDAR需分布式多源探测以提高效率,且本发明所述的一种面向IP定位的大规模网络别名解析方法也需要通过多个探测源获取相关数据,为了公平的比较不同方法的效率,对于MIDAR及本发明所述的一种面向IP定位的大规模网络别名解析方法,通过相同配置的10台主机配合完成测试,而对于RadarGun及TreeNET,则将每一次测试的样本平均分为10份,分别在上述10台主机上利用该两种方法进行别名解析,并记录10台主机中的最长耗时。
当网络规模的不断增大,接口IP数量由1×106个递增到5×106个时:别名IP对的数量分别为7.325×106,1.901×107,2.421×107,2.944×107,3.602×107;非别名IP对的数量分别为7.903×108,1.311×109,2.404×109,3.224×109,4.003×109。对于Radargun和TreeNET,对所有的IP对都要进行解析;MIDAR认为当从两个目标IP获得的IP-ID序列变化速率相似度低时,这两个IP不可能共享IP-ID计数器,即不存在别名关系,依据该理论可过滤掉的IP对的比例分别为10.6%,15.3%,25.1%,19.9%,22.10%;而对于本发明所述的一种面向IP定位的大规模网络别名解析方法,通过规则过滤掉的不存在别名关系的IP对的比例分别为67.3%,72.7%,71.4%,69.9%,75.2%。
表8:不同方法效率对比
表8及图6给出了随着网络规模的增大,接口IP数量的增加,不同方法3次测试所用时长。根据表8及图6的结果可以看出,接口IP数量不同,各个方法所用时长不同,且随着IP数量的增加,所用时长都在增加,每次测试基本都是RadarGun耗时最长,其次为MIDAR,TreeNET,本发明所述的一种面向IP定位的大规模网络别名解析方法耗时最短;由图6中曲线的斜率变化可以看出,相比于本发明所述的一种面向IP定位的大规模网络别名解析方法,RadarGun、MIDAR、TreeNET所用时长增长的速率较大,当接口IP数量为1×106时,RadarGun、MIDAR、TreeNET的平均耗时分别为本文算法的3.1倍,2.2倍,1.6倍,但当接口IP数量增加到5×106时,分别增加到了4.2倍,2.6倍,2.1倍;这是由于为了能够获取到IP-ID,RadarGun和MIDAR需要对每个IP进行大量探测,但MIDAR在别名解析前进行了初步的过滤,而RadarGun没有使用任何过滤机制,因此MIDAR效率高;TreeNET没有设定过滤规则,但其根据IP对探测的响应情况,不完全依赖于IP-ID,还综合了基于路由器主机名的解析等方法,而这种无需探测的解析效率极高,因此TreeNET总体效率高于MIDAR;对于本发明所述的一种面向IP定位的大规模网络别名解析方法,在别名解析前,利用多个探测源的探测结果,平均过滤掉了约71.3%的非别名IP对;本发明所述的一种面向IP定位的大规模网络别名解析方法对IP对应主机运行状态监测时长设定为2.5小时,在监测的同时,并行获取用于别名解析的时延,探测路径等数据,可节省大量时间,效率最高,且仅当需要解析的IP数量较大时,耗时才出现明显变化。
此外,曲线上“I”形的上端和下端分别表示耗时的正方差及负方差值,线上的点表示耗时的均值,通过对比四条曲线可以看出,对于相同接口IP数量的多次测试,RadarGun、MIDAR耗时最不稳定,差异较大,而本文算法耗时相对稳定。上述结果在一定程度上说明本发明所述的一种面向IP定位的大规模网络别名解析方法在别名解析效率方面有一定优势。
为了进一步验证本发明所述的一种面向IP定位的大规模网络别名解析方法的有效性,下面将对上述几种方法在实际IP定位中的应用效果进行对比;
一种逐层逼近的街道级定位方法(SLG),在最后一层,将与目标IP存在最近共同路由器且相对时延最小的地标的位置,作为目标的位置估计;由于探测获取的拓扑实际为路由器接口级拓扑,当地标与目标分别于最近共同路由器的不同接口IP相连时,如果不进行别名解析,则此时无法得知二者实际与同一路由器相连,因此无法通过地标的位置估计目标IP的位置,定位将失败。
LENCRIP定位方法,寻找与目标IP存在最近共同路由器且相对时延最小的三个地标,并根据三点定位思想对目标IP进行街道级定位,与SLG面临的问题类似,该算法的前提条件也是能够找到最近共同路由器,因此若想降低定位失败率,在寻找共同路由器前也需要进行别名解析。
PoPG定位方法,则利用划分的PoP对目标IP进行城市级定位,该方法需要通过别名解析,将城市内部本应属于同一个大规模PoP的多个小PoP进行合并,提高PoP的完整性,并用于IP定位;因此,别名解析的效果将一定程度上决定所获取的PoP的完整性,从而决定IP定位的效果。
本发明将不同的别名解析方法运用到上述三种典型的定位方法中,对实际网络环境中的目标IP进行定位测试,并对定位结果进行分析;对于SLG与LENCR,分别在中国北京,美国加利福尼亚州取1000,3000个街道级地标作为待定位目标IP,对于PoPG,分别在中国北京,美国加利福尼亚州取50,000个城市级地标作为待定位目标IP,分别对三种方法在使用及不使用别名解析时对目标IP的定位效果进行对比,表9给出了具体的定位结果:
表9:定位测试结果对比
如表9所示,在使用及不使用别名解析两种情况下,三种定位算法对中国北京及美国加利福尼亚州的目标IP进行定位的失败率;其中,每种定位算法第一栏的数据表示定位算法不使用任何的别名解析方法时的定位失败率,而每种定位算法第二栏的数据则表示定位算法使用对应的别名解析方法后,对目标IP定位的失败率;由表9可以得出,在使用别名解析方法前后,三种定位算法对两个地区的目标IP的定位效果差别较大,使用别名解析后,定位失败率明显降低;其中,对于SLG,相比未使用别名解析,使用RadarGun,MIDAR,TreeNET及本发明所述的一种面向IP定位的大规模网络别名解析方法后定位失败率平均分别降低了24.2%,45.0%,39.9%,65.5%;对于LENCR,分别平均分别降低了30.4%,48.4%,42.1%,64.1%;对于PoPG,分别平均分别降低了25.6%,42.4%,34.2%,58.1%;通过对比发现,使用本发明所述的一种面向IP定位的大规模网络别名解析方法后,三种定位算法的定位失败率降低最多,间接的说明了本发明所述的一种面向IP定位的大规模网络别名解析方法的别名解析效果最好。
综上所述:
(1)本发明提出了一种面向IP定位的大规模网络别名解析方法,利用本方法可对大规模网络中的路由器接口IP进行准确、高效的别名解析,从而有望对大规模网络的路由器级网络拓扑进行准确的刻画。
(2)本发明提出了提高别名解析效率的非别名IP过滤方法,根据接口IP所属ISP,探测路径,及对应路由器主机信息的特性设计非别名IP过滤方法,在进行别名解析之前,依据非别名IP过滤方法,排除不可能存在别名关系的IP对,从而有望减少别名解析的工作量,提高别名解析的效率。
(3)本发明构建了区分别名IP及非别名IP的四维特征向量,根据别名IP及非别名IP在直接时延、探测路径等方面的统计差异,将别名解析问题转化为机器学习中的分类问题,构建了分类特征向量,训练分类模型并用于对大规模网络的接口IP进行别名解析,有望提高别名解析的准确率。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。