陳嘉欣,許 博,胡 超*
(陸軍工程大學(xué) 指揮控制工程學(xué)院,江蘇 南京)
IP 地址作為網(wǎng)絡(luò)空間實(shí)體的重要標(biāo)識,在整個互聯(lián)網(wǎng)的構(gòu)架中扮演著至關(guān)重要的角色。受隱私保護(hù)的影響,通常難以利用GPS 獲取網(wǎng)絡(luò)空間實(shí)體的地理位置信息,IP 地理定位則是解決這一問題的重要手段。目前IP 地理定位技術(shù)對多個領(lǐng)域都有重要的影響,包括商業(yè)服務(wù)、網(wǎng)絡(luò)安全管理以及學(xué)術(shù)研究等[1]。
現(xiàn)有的IP 地理定位方法按照其原理主要分為基于推測的定位算法、基于時延的定位算法以及綜合定位算法這3 類[2]?;谕茰y的定位方法主要利用IP 關(guān)聯(lián)的Whois 信息或反向DNS 主機(jī)名等數(shù)據(jù)推測IP 所在的地理位置,而后兩類定位方法主要是通過網(wǎng)絡(luò)測量的方式,選擇時延和路徑等特征信息作為地理定位的主要依據(jù)。
目前,IP 地理定位商業(yè)數(shù)據(jù)庫眾多,且在城市級別的定位表現(xiàn)出較高的精度,同時提供了在線和離線查詢方式,使其在許多應(yīng)用場景中相對于其他定位方法更為高效。目前國內(nèi)常見的IP 定位庫包括IP138[3]、Chunzhen[4]、IPCN[5]等。
基于網(wǎng)絡(luò)測量的定位方法則是在此基礎(chǔ)上進(jìn)一步提升定位的準(zhǔn)確度,也是目前研究的主流,典型的方法包括CBG[6]、GeoWeight[7]和SLG[8],主要利用測量得到的時延以及路徑等信息,基于時延和地理距離之間的一致性約束原則[2],并結(jié)合現(xiàn)有的地標(biāo)節(jié)點(diǎn),從而獲取最終的定位結(jié)果。
盡管目前基于網(wǎng)絡(luò)測量的定位方法能夠取得不錯的效果,但通常對于探測資源的需求相對較高。但在實(shí)際情況下,尋找如此大規(guī)模且廣泛分布的測量主機(jī)可能會面臨一些挑戰(zhàn),因此需要開發(fā)更具效率的測量方法、優(yōu)化測量資源的使用方式,或者探索其他數(shù)據(jù)源來輔助地理定位。
本文主要采用分層定位的思想。首先采用多庫對比的方式獲取目標(biāo)IP 所在城市,之后收集區(qū)域內(nèi)部的錨節(jié)點(diǎn)地理信息,利用Scamper 工具進(jìn)行Traceroute測量,獲取目標(biāo)IP 和錨節(jié)點(diǎn)的網(wǎng)絡(luò)路徑和時延信息,采用線性和非線性方法實(shí)現(xiàn)目標(biāo)IP 區(qū)縣級的地理定位。具體流程如圖1 所示。
圖1 IP 分層地理定位流程
錨節(jié)點(diǎn)也被稱為地標(biāo)節(jié)點(diǎn),主要為已知地理位置IP 節(jié)點(diǎn)。本文結(jié)合目標(biāo)驅(qū)動IP 地理方法[9]中錨節(jié)點(diǎn)收集方式,提出了一種區(qū)域內(nèi)錨節(jié)點(diǎn)采集方法,其主要步驟如下:
首先,利用定位庫提取目標(biāo)區(qū)域內(nèi)所有IP 地址,利用網(wǎng)絡(luò)爬蟲等手段獲取對應(yīng)的域名和網(wǎng)頁數(shù)據(jù),結(jié)合現(xiàn)有的命名體識別方法提取文本數(shù)據(jù)中可能包含的單位信息。
其次,針對采集的錨節(jié)點(diǎn),利用IP 的歸屬單位信息,并結(jié)合其指紋信息對主機(jī)類型判定,去除其中的云主機(jī)節(jié)點(diǎn)從而保留有效錨節(jié)點(diǎn)。
最后,結(jié)合GIS 信息庫,獲取IP 對應(yīng)的機(jī)構(gòu)或企業(yè)的分布情況,收集其對應(yīng)的地理位置信息。具體過程如圖2 所示。
圖2 錨節(jié)點(diǎn)采集流程
(1) 城市級定位
利用多定位數(shù)據(jù)庫進(jìn)行查詢并比對其投票結(jié)果是實(shí)現(xiàn)城市級IP 地理定位的有效策略。為了確保定位的精確性,本文選擇了三個知名的IP 地理定位數(shù)據(jù)庫進(jìn)行查詢:IP138[3]、Chunzhen[4]、IPCN[5]。具體操作如下:
a.多數(shù)據(jù)庫比對:若其中至少有兩個數(shù)據(jù)庫給出了相同的城市定位結(jié)果,則將IP 定位至該城市。
b.路徑合理性校驗(yàn):如果三個數(shù)據(jù)庫給出的城市結(jié)果都不相同,進(jìn)一步分析IP 關(guān)聯(lián)的網(wǎng)絡(luò)路徑信息。查詢每個路由IP 的地理定位,從避免路由環(huán)路的角度來看,網(wǎng)絡(luò)路徑不太可能出現(xiàn)迂回城市的情況。通過對網(wǎng)絡(luò)路徑的逐一分析,進(jìn)一步排除不合理的城市定位,確認(rèn)IP 地址最有可能所在的城市。
(2) 區(qū)縣級定位
獲取目標(biāo)IP 所在城市后,首先收集城市內(nèi)部的錨節(jié)點(diǎn)信息。其次對城市內(nèi)活躍IP 地址進(jìn)行Traceroute 測量,獲取城市內(nèi)較為完整的路由拓?fù)?,采用譜聚類[10]的方法對路由IP 進(jìn)行聚類,結(jié)合錨節(jié)點(diǎn)和目標(biāo)IP 的路徑測量結(jié)果,優(yōu)先選擇最后一跳路由在同一聚類簇的其他錨節(jié)點(diǎn)。為了確保定位的準(zhǔn)確性,本文使用3 個及以上的測量節(jié)點(diǎn)對目標(biāo)IP 和錨節(jié)點(diǎn)進(jìn)行Traceroute 測量,利用網(wǎng)絡(luò)路徑和時延特征進(jìn)行相似性匹配,尋找最接近的錨節(jié)點(diǎn)。其中多點(diǎn)路徑測量如圖3 所示。
圖3 多點(diǎn)路徑測量示意
為了減少網(wǎng)絡(luò)性能對特征的影響,在進(jìn)行多次測量的同時,綜合選取路由跳數(shù)、時延以及最后一跳路由所屬自治域(Autonomous System,AS)這三個屬性特征進(jìn)行相似性匹配。其中路由跳數(shù)和時延在進(jìn)行歸一化后,計(jì)算其M 維空間的歐式距離作為其相似性度量,如公式(1)和公式(2)。
為了驗(yàn)證本文定位方法的可行性,利用位于山東和福建的4 臺云服務(wù)器進(jìn)行路徑和時延測量。實(shí)驗(yàn)主要所用到的定位庫為純真發(fā)布的免費(fèi)IP 庫社區(qū)版,提取其中廣州市的IP 地址,并利用網(wǎng)絡(luò)爬蟲的方式收集廣州市內(nèi)951 條錨節(jié)點(diǎn)信息,隨機(jī)挑選其中100個IP 作為待定位目標(biāo)節(jié)點(diǎn)(其中各個區(qū)縣選取IP 數(shù)不超過15%),測試分層地理定位的效果。表1 列出了錨節(jié)點(diǎn)所在區(qū)縣分布情況。
表1 廣州市錨節(jié)點(diǎn)區(qū)縣分布
在此基礎(chǔ)上總共進(jìn)行5 輪定位測試,具體定位結(jié)果如圖4 所示,由圖4 的結(jié)果可以看出,該方法能夠有效實(shí)現(xiàn)區(qū)縣級的地理定位,平均正確率達(dá)到81%。
圖4 區(qū)縣級定位正確率
本文旨在利用有限的資源實(shí)現(xiàn)IP 地址高精度地理定位,提出了一種基于錨節(jié)點(diǎn)的分層IP 地理定位方法,以錨節(jié)點(diǎn)作為地標(biāo)實(shí)現(xiàn)IP 的區(qū)縣級地理定位。對廣州市收集的錨節(jié)點(diǎn)定位結(jié)果顯示,該方法能夠在資源受限的情況下,有效實(shí)現(xiàn)IP 高精度地理定位,一定程度上解決了定位困難的問題。在未來的研究過程中需要進(jìn)一步研究和規(guī)范網(wǎng)絡(luò)探測手段,提取更多的有效錨節(jié)點(diǎn),提升IP 地理定位的準(zhǔn)確度和精度。