999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Traceroute路徑的IPv6過渡元素識別策略

2013-11-30 05:27:38馬東雯
計算機工程與設計 2013年12期

馬東雯,劉 述,高 強

(1.北京航空航天大學 電子信息工程學院,北京100191;2.工業和信息化部電信傳輸研究所,北京100191)

0 引 言

截至2012年6月底,中國擁有IPv6地址數量為12499塊/32地址,相比上年底增速達到33.0%,在全球的排名由2011年6月底的第15位迅速提升至第3位[1]。這預示著我國已進入IPv6網絡部署的爆發期,IPv6骨干網的規模會在今后幾年內迅速增長,但我們仍將長期處于IPv4與IPv6網絡設備的共存期。

在IPv6骨干網中,存在相當多的IPv4/IPv6過渡元素,如雙棧路由器,隧道端點路由器等。它們是IPv6與IPv4主機互通的重要轉接點,而一些過渡元素需要對每個數據包進行判斷、數據包封裝等操作,因此過渡元素被普遍認為是整個網絡性能的瓶頸[2]。本文旨在在IPv6骨干網拓撲發現的基礎上,識別出網絡中的過渡元素。在識別出過渡元素后,對它們的運行狀況進行監測,按照需求進行性能的優化,是過渡期保持網絡健康運行的可行方法之一。

在國內外已有的研究中,對局域網內的過渡元素識別已經有相當多的研究,如基于SNMP(simple network management protocol)協議的過渡元素發現[3]。而對骨干網層面的過渡元素發現則研究很少,已存在的方法也存在著識別設備類型有限、識別率不高的問題[4]。本文在研究已有科研成果的基礎上,針對由Traceroute骨干網拓撲發現得到的接口路徑 (由IPv6路由器的接口IP地址組成),提出了一種基于Traceroute路徑的IPv6骨干網過渡元素識別策略,用以判斷每條Traceroute接口路徑上存在的過渡元素,從而最終得出整個IPv6骨干網網絡中的過渡元素。

該識別策略結合了路徑最大傳輸單元 (path maximum transmission unit,PMTU)試探、雙棧節點識別、相鄰雙棧提取、ping注入、跳限檢驗等方法,合理設計了識別流程,刪減了不符合網絡實際情況的判斷流程。同時采取PMTU和雙棧節點判斷進行粗判,提高了識別效率,采取跳限檢驗對初判為過渡元素的節點進行檢驗,提高判斷的準確性。對識別策略進行實驗測試,結果表明該識別策略具有識別多種主要過渡元素的能力,且具有冗余識別少,識別速度快,識別率較高的特點。

1 過渡元素分類及識別方法

IPv6骨干網過渡技術主要分為雙棧技術、隧道技術和協議轉換技術[5]。本小節將對前兩種技術對應的過渡元素及識別方法進行介紹,而協議轉換技術由于破壞了IP協議端到端的特性而沒有被大規模使用,在此不進行深入討論

1.1 雙棧技術及雙棧主機的識別

雙棧技術要求網絡節點同時支持IPv4和IPv6協議棧,使得路由器能同時與IPv4、IPv6主機通信。在一個路由器中,分別維護IPv6和IPv4兩套路由協議棧和路由表,不同協議的數據包根據不同的路由表轉發。由于現在各大硬件商的網絡設備在逐步升級至支持雙棧協議,因此雙棧技術是過渡時期最主要的技術之一,運用的非常廣泛[5]。

對于雙棧主機的識別,現在通用的做法有兩種:地址列表獲取法和DNS報文分析法。

地址列表獲取法:首先調用gethostbyaddr()函數,以已知的IPv6地址為參數,能得到該IPv6地址所在主機的主機名。根據RFC2553中的定義,以主機名為getaddrinfo()函數的參數,可以獲得該主機硬件設備上包括IPv6和IPv4地址在內的所有IP地址。利用這一特性,若調用此函數返回的結果中包含IPv4地址,說明該路由器同時擁有IPv4和IPv6地址,則該路由為雙棧路由器[6]。

DNS報文分析法:文獻[4]中給出了基于DNS請求響應報文的分析來發現雙棧設備的方法,其基本原理與上述地址列表獲取法相同。該方法屬于被動監聽法,識別的效率較低。

1.2 隧道技術及隧道端點的識別

隧道技術是一項應用成熟的互聯網技術,它通過將有效負載在隧道入口進行協議封裝,在隧道出口對其解封,使得相互兼容的網絡節點能夠跨接在與之不兼容的網絡上,實現兼容網絡節點間的雙向通信。隧道入口與隧道出口之間的邏輯關系被定義為隧道[5]。

在實際運行的IPv6網絡中,主要采用的是IPv6-over-IPv4隧道[7],對于隧道端點的識別,常用的方法有以下3種。

基于PMTU發現的隧道識別方法:當源主機向網絡注入較大的IPv6數據包 (數據包長度大于1500字節)時,由于每兩個節點之間的鏈接都存在一個最大傳輸單元(MTU),因此過大的數據包會觸發中間路由器返回ICMPv6數據包過大報文,報文中會告知源主機下一跳的MTU值。源主機根據此MTU值調整數據包大小,再次發送數據包。當數據包最終成功到達目的端時,數據包的大小即為該路徑上的最大傳輸單元 (PMTU)[8]。通過獲取到的PMTU值,與特征值進行比較,即可判斷是否存在隧道。由于PMTU是一條路徑中最小的MTU值,該方法僅可判斷出隧道存在的可能性,無法給出確定的結論[4]。

基于IP欺騙和ping注入的隧道識別方法:IPv6-over-IPv4配置隧道采用的安全機制非常薄弱。若已知IPv6-over-IPv4配置隧道兩個端點的IPv4地址,IPv4網絡中的任意節點可以利用IPv4地址欺騙的方式,向隧道端口發送偽造的IPv6-over-IPv4隧道數據包,從而進入隧道端口后的IPv6網絡,這個過程被稱為IP欺騙。以IP欺騙為基礎,文獻[9]中提到利用構造ping數據報文的方法判斷IPv6-over-IPv4配置隧道是否存在。

被動探測法:劫持目標網絡內兩個IPv6/IPv4雙棧節點 (路由器或主機)之間的通信,通過對截獲的數據報進行分析,很容易發現隱匿在其中的IPv6-over-IPv4隧道。這種方法具有一定的局限性,成功率也相對較低[10]。

2 基于Traceroute路徑的過渡元素識別策略

針對由Traceroute方式進行骨干網拓撲發現得到的接口路徑 (由IPv6路由器的接口IP地址組成),本文提出了一種過渡元素識別策略,用以判斷每條接口路徑上存在的過渡元素,從而最終得出整個IPv6骨干網網絡中的過渡元素。

Traceroute的原理是探測點向目標點發送跳限 (hop limit)逐跳增加的ICMP或UDP報文,由每一跳路由器返回的ICMP超時報文中的信息,獲知從探測點到目標點所經過的路徑的全部路由器的接口IP地址。在對網絡邊緣的某一目標點進行一次Traceroute后,得到了探測點至目標點經過的IPv6路由器的接口路徑 (可稱為 “一條Traceroute結果”)。對該路徑上的所有路由器進行判斷,發現哪些節點屬于過渡元素。將這樣的方法運用至每一條Traceroute的結果,就能在獲得IPv6骨干網拓撲的基礎上,識別出其中的IPv6過渡元素。

根據我們對中國IPv6骨干網進行實際的Traceroute實驗,對于IPv6骨干網路由器的界定為:從探測點開始經過的第三跳路由器起,至目標點前倒數第三跳路由器止 (如圖1)。由于在網絡中個別路由器由于網絡擁塞或出于安全的考慮,不回應ICMP請求,會出現Traceroute結果中對應的IP地址為空,也就是網絡拓撲發現領域中常說的 “匿名路由器”問題。因此在一條Traceroute結果中,可能存在一個或更多的匿名路由器,我們只知道它的存在,而無法獲知該跳的IPv6地址 (見圖1)。為了降低由匿名路由器造成的誤差,我們進行如下處理:若一條Traceroute結果中存在匿名路由器,將再次對目標點進行Traceroute。若再次Traceroute的結果仍然存在匿名路由器,則表明Tracer-oute結果不可能完整,則選取匿名路由器最少的一條Traceroute結果,來進行我們上述的過渡元素識別過程。

圖1 一條Traceroute結果的說明

下面將針對一條Traceroute結果進行闡述,如何識別其中的過渡元素。

2.1 PMTU試探

首先,使用路徑MTU發現來試探隧道存在的可能性。

由于隧道的原理是將IPv6數據包封裝在IPv4數據包中,使其可以在IPv4網絡中傳輸。因此,若在一條Traceroute路徑中存在IPv6-over-IPv4隧道,其路徑MTU將在下層IPv4網絡PMTU基礎上減少封裝報頭的長度。在現實網絡中,純IPv4網絡的典型MTU值為1500字節,而IPv6-in-IPv4隧道封裝報頭長度為20字節,GRE隧道封裝報頭長度為24或28字節。一些基于BSD系統的隧道接口使用1280字節的系統默認MTU。因此我們可以推斷,當一條路徑的路徑 MTU值為1480 (1500-20)、1476 (1500-24)、1472(1500-28)、1280之一時,極有可能存在至少一條隧道。

通過路徑MTU的發現,可以初步判斷該路徑上是否存在隧道這種過渡元素。

2.2 判斷雙棧節點

對于一條Traceroute結果中,每一個擁有全局單播IPv6地址的接口,使用雙棧主機識別中的地址列表獲取法,向每一個接口發送getaddrinfo()請求,獲取其所在設備上全部socket信息。在返回的socket信息中,若包含IPv4地址,則判斷其為雙棧路由器,說明它是一個過渡元素。由于隧道端點的必要條件是支持雙棧,因此要等待進行下一步判斷,判斷其是否為單純的雙棧路由器還是隧道端點。

若在本步驟中未發現雙棧路由器,而又通過2.1所述的PMTU試探出這條Traceroute路徑中可能存在隧道,則說明存在一種可能,剛好匿名路由器是過渡元素。因此我們只能判斷這條路徑上有很大可能存在某種類型的隧道,而無法確切獲知哪幾跳路由器為隧道端點,對于該條Traceroute的結果判斷到此結束。

若在本步驟中未發現雙棧路由器,在2.1步驟中也未發現隧道的典型PMTU值,則認為該條Traceroute路徑中不存在任何過渡元素,該條Traceroute路徑中的每一個路由器節點均為純IPv6節點,對于該條Traceroute的結果判斷到此結束。

2.3 提取相鄰兩跳雙棧節點

若該條Traceroute結果在經過2.1、2.2兩步判斷后,仍未滿足判斷結束條件,則說明該路徑上必然有過渡元素存在。由于隧道的端點必為雙棧路由器,且隧道端點在Traceroute結果中均表現為相鄰的兩跳路由器,其底層復雜的隧道結構不反映在Traceroute結果中。因此要提取出該條Traceroute結果中相鄰的兩跳雙棧路由器,它們之間有可能存在隧道,待下一步進行判斷。為下文敘述方便,記此步驟提取出相鄰的雙棧路由器分別為A和B,它們的IPv4和IPv6地址已在2.2步驟中獲知。

若該條Traceroute結果中未能找到相鄰的兩跳雙棧路由器,則認為這條路徑中存在的雙棧路由器均為單純的雙棧路由器,路徑中不存在隧道。雖然匿名路由器的存在可能使其相鄰的雙棧路由器被誤判為純雙棧路由器,但由于無法得知匿名路由器的IPv6地址,也就無法驗證其是否為隧道端點,對于該條Traceroute的結果判斷到此結束。這是可能產生判斷誤差的一個原因。

2.4 ping注入初判

文獻[9]提到,IPv6-over-IPv4配置隧道采用的安全機制非常薄弱。當隧道端點接收到IPv4數據包時,會驗證該數據包的源地址。若源地址為該隧道起點的IPv4地址,則認為這個數據包是經由隧道起點傳輸過來的,將IPv4封裝頭解封后,繼續在IPv6網絡中傳輸至目標點。若已知IPv6-over-IPv4配置隧道兩個端點的IPv4地址,IPv4網絡中的任意節點可構造一以隧道起點IPv4地址為源地址、隧道端點IPv4地址為目的地址、封裝了IPv6數據包的IPv4數據包。這樣,就得以利用IPv4地址欺騙的方式向隧道端口發送偽造的IPv6-over-IPv4隧道數據包,從而進入隧道端口后的IPv6網絡,這個過程被稱為IP欺騙。

若AB之間為隧道連接,則到達B點的IPv4數據包首先會經過源地址的檢驗,若源地址為A的IPv4地址,則認為是由隧道起點A封裝并發送過來的數據包,解封后繼續傳輸。因此我們設想,通過任意節點 (為了方便,我們選定為探測點S)構造一IPv4封裝的IPv6數據包,其中IPv4封裝部分的源地址應偽裝為A的IPv4地址,目的地址為B的IPv4地址。若該數據包到達B點后成功解封繼續向后傳輸,則說明AB間確實存在隧道。為得知數據包到達B點后是否成功解封向后傳輸,被封裝的IPv6數據包應向AB所在路徑上B之后某一已知IPv6地址的主機T發送ICMP Echo-request請求。若AB間確為隧道,則探測點S會收到主機T發回的ICMP Echo-reply數據包。該過程稱作ping注入,如圖2所示。

圖2 ping注入的說明

若AB間非隧道連接,當B點收到如上所述的IPv4數據包后,會直接丟棄,目標點T無法收到ICMP Echo-request請求,則探測點S收不到任何回應報文。

2.5 跳限法確認AB間為隧道

本步驟仍以IP欺騙為基礎,通過跳限法驗證隧道端點B的IPv6地址來進一步確認AB間是否存在隧道。

由于IPv6-over-IPv4隧道在網絡的IPv6層中被視為一跳,我們發送一被封裝的跳數限制 (hop limit)為1的IPv6數據包,該數據包一旦到達隧道端點被解封為純IPv6數據包,即觸發一ICMP超時報文。若探測點收到一個源地址為B的IPv6地址的ICMP超時報文,則確認AB之間確實存在隧道。這種驗證的方法我們稱其為跳限法。

具體方法如下:從探測點S發送一IPv4封裝IPv6數據包,IPv4封裝報頭的源地址偽裝為A的IPv4地址,目的地址為B的IPv4地址,被封裝的IPv6數據包為目標點S到探測點T的HL(hop limit)=1的任意數據包。若AB間存在隧道,則該數據包到達B點時成功解封,進入IPv6網絡傳輸。但由于該IPv6數據包跳數限制為1,B點的IPv6協議棧在轉發前將HL值減為0,觸發B點發送ICMP超時報文。該過程如圖3所示。

圖3 跳限法的說明

若AB間確實為隧道連接,探測點S將收到一ICMP超時報文,該報文的源地址為隧道端點B的IPv6地址,該地址是Traceroute結果中已知的。至此,可以確認AB間存在隧道,對AB這一對雙棧路由器的判斷結束。若在該條Traceroute結果中存在其它相鄰的雙棧路由器,則對它們應用2.4、2.5所述的方法,判斷其是否為隧道端點。

2.6 隧道類型判斷

根據文獻[7],我們可以根據該條路徑的PMTU粗略判斷路徑中可能存在哪種類型的隧道 (見表1)。但由于路徑MTU的值取決于路徑中所有路由器最小的MTU值,因此當存在一個以上的隧道時,只能判斷其中MTU最小的隧道的類型,而MTU較大的隧道類型無法獲知。

表1 隧道典型PMTU值

圖4 基于Traceroute路徑的IPv6過渡元素識別總流程

2.7 判斷過程總流程圖

基于Traceroute路徑的IPv6過濾元素識別總流量,如圖4所示。

3 實驗結果

本文以Cernet2主干網作為IPv6骨干網實驗環境,按照上述過渡元素識別算法使用JAVA語言編寫過渡元素識別程序,使用雙棧主機接入IPv4和IPv6網絡進行測試。

事先采集了287個屬于中國IPv6地址范圍內的、處于網絡邊緣的IPv6目標點。實驗進行了3次獨立的Traceroute路徑發現,并對其運用了本文提出的過渡元素識別策略,實驗結果見表2。

表2 實驗結果

隧道識別的結果表明,該算法可以成功識別出IPv6骨干網中的純雙棧節點和隧道端點,并粗判出其隧道類型,證明該過渡元素識別算法的有效性。判斷一個路由器是否屬于過渡元素平均用時2.11秒,識別速度快。

4 結束語

本文提出的基于Traceroute路徑的IPv6骨干網過渡元素識別策略屬于主動探測法。結合了路徑MTU值和相鄰雙棧路由器的粗判,使其與已有方法相比,具有識別速度快、減少冗余識別的優勢。采用了精準的ping注入方式進行初判,以及跳限法進行驗證,使其識別率較高。但由于依賴PMTU判斷隧道類型只能判斷一條路徑上MTU最小的隧道的類型,因此在隧道分類上還有待進行進一步研究。

[1]China Internet Network Information Center.CNNIC 30th internet report[EB/OL].[2012-07-19].http://www.cnnic.cn/research/bgxz/tjbg/201207/t20120719_32247.html(in Chinese).[中國互聯網絡信息中心.CNNIC第30次互聯網報告[EB/OL].[2012-07-19].http://www.cnnic.cn/research/bgxz/tjbg/201207/t20120719_32247.html.]

[2]Zhou Xiaoming,Martin Jacobsson,Henk Uijterwaal,et al.IPv6delay and loss performance evolution[J].International Journal of Communication Systems,2008,21 (6):643-663.

[3]CUI Ze.Research on topology and fault management based on IPV6network[D].Shanghai:East China Normal University,2010(in Chinese).[崔澤.基于IPv6網絡的拓撲與故障管理研究[D].上海:華東師范大學,2010.]

[4]XU Liang.Study and realization on topology discovery of IPv6 network[D].Chongqing:Chongqing University,2008 (in Chinese).[許靚.IPv6網絡拓撲發現的研究與實現[D].重慶:重慶大學碩士學位論文,2008.]

[5]WU Xiaojin.Technology and application of IPv6[M].Beijing:Tsinghua University Press,2010 (in Chinese).[伍孝金.IPv6技術與應用[M].北京:清華大學出版社,2010.]

[6]ZHU Mingming.Research on router-lever topology discovery technology based on IPv6[D].Henan:The PLA Information Engineering University,2009 (in Chinese).[朱 明 明.基 于IPv6的路由器級拓撲發現技術研究[D].河南:解放軍信息工程大學,2009.]

[7]IETF RFC4459,MTU and Fragmentation Issues with In-the-Network Tunneling[S/OL].http://tools.ietf.org/html/rfc4459,2013.

[8]IETF RFC1981,Path MTU discovery for IP version 6[S/OL].http://www.ietf.org/rfc/rfc1981.txt,2013.

[9]Guanlan Chen,Qin Zhao,Yan Ma,et al.A new topology discovery solution for IPv4 &IPv6coexisting networks[C]//Beijing:International Conference on Advanced Intelligence and Awarenss Internet,2010:208-212.

[10]REN Jie.The research and realization on IPv6-over-IPv4tunnel discovery and using technology[D].Zhengzhou:The PLA Information Engineering University,2007 (in Chinese).[任杰.IPv6-over-IPv4隧道發現及利用技術研究與實現[D].鄭州:解放軍信息工程大學,2007.]

主站蜘蛛池模板: 日日拍夜夜操| 国产网站免费看| 国产综合无码一区二区色蜜蜜| 婷婷伊人久久| 欧美特黄一免在线观看| 九色在线观看视频| 中国特黄美女一级视频| 狠狠ⅴ日韩v欧美v天堂| 久久精品国产在热久久2019| 亚洲视频在线青青| 99热这里都是国产精品| 欧美午夜网| 国产精品久久国产精麻豆99网站| 午夜爽爽视频| 九九久久99精品| 一区二区三区四区精品视频| aaa国产一级毛片| 日韩毛片免费观看| 国产精品手机视频| 99精品国产高清一区二区| 国产精品手机在线播放| 国产成人亚洲日韩欧美电影| 亚洲一区二区约美女探花| 国产91全国探花系列在线播放| 亚洲αv毛片| 午夜无码一区二区三区| 国产成人a在线观看视频| 亚洲制服丝袜第一页| 成人综合在线观看| 国产精品亚洲综合久久小说| 免费看的一级毛片| 国产精品亚洲αv天堂无码| 99视频国产精品| 又猛又黄又爽无遮挡的视频网站| 日本高清有码人妻| 欧美精品另类| 中国一级特黄大片在线观看| 毛片免费视频| 99久久精品免费观看国产| 国产无遮挡裸体免费视频| 任我操在线视频| 国产欧美日韩精品综合在线| 亚洲中文字幕无码爆乳| 欧美精品在线看| 国产精品冒白浆免费视频| 四虎国产精品永久一区| 99久久精品国产精品亚洲 | 国产人前露出系列视频| 日本在线国产| 中文字幕不卡免费高清视频| 成人无码区免费视频网站蜜臀| 免费在线一区| 久久综合成人| 中文字幕亚洲综久久2021| 亚洲狠狠婷婷综合久久久久| 综合五月天网| 亚洲av无码人妻| 91福利免费视频| 免费国产不卡午夜福在线观看| 欧美精品H在线播放| 亚洲精品福利视频| 久久不卡国产精品无码| 久久久久免费看成人影片| 高潮毛片免费观看| 真实国产乱子伦视频| 色婷婷久久| 亚洲欧美人成电影在线观看| 久久99国产综合精品女同| 99在线视频免费观看| 国产经典在线观看一区| 欧美一区二区啪啪| 91精品免费高清在线| 成人亚洲国产| 福利视频一区| 亚洲AV无码一区二区三区牲色| 美女被狂躁www在线观看| 午夜三级在线| 色偷偷男人的天堂亚洲av| 国产精品污视频| 欧美性猛交一区二区三区| 久热中文字幕在线| 欧美日韩中文字幕在线|