《計算機網絡 》課件第9章_第1頁
《計算機網絡 》課件第9章_第2頁
《計算機網絡 》課件第9章_第3頁
《計算機網絡 》課件第9章_第4頁
《計算機網絡 》課件第9章_第5頁
已閱讀5頁,還剩164頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第9章下一代互聯(lián)網9.1IPv69.2移動IP9.3從IPv4向IPv6的過渡9.4下一代互聯(lián)網的發(fā)展習題

美國的下一代互聯(lián)網(NextGenerationInternet,NGI)研究計劃有三個目的:開發(fā)下一代光纖技術,把現(xiàn)有網絡的連接速率提高100到1000倍;研發(fā)高級的網絡服務技術,包括QoS、網絡管理新技術和新的網絡服務體系結構;演示新的網絡應用,例如遠程醫(yī)療、遠程教育、高性能全球通信等。該研究計劃于2002年宣布基本完成,除了1000G的光纖通信沒有實現(xiàn)之外。我國的下一代互聯(lián)網計劃CNGI從2003年開始啟動,經過了5年研究終于取得了圓滿成功,并在2008年北京奧運會期間向全世界展示了基于IPv6的官方網站。本章講述NGI關鍵技術,以及IPv4向IPv6的過渡技術,并介紹下一代互聯(lián)網研究的進展情況。9.1IPv6基于IPv4的因特網已運行多年,隨著網絡應用的普及和擴展,IPv4協(xié)議逐漸暴露出一些缺陷,主要問題有:

(1)網絡地址短缺:IPv4地址為32位,只能提供大約43億個地址,其中1/3被美國占用。IPv4的兩級編址方案造成了很多無用的地址“空洞”,地址空間浪費很大。另一方面,隨著TCP/IP應用的擴大,對網絡地址的需求迅速增加,有的主機分別屬于多個網絡,需要多個IP地址,有些非主機設備,例如自動柜員機和有線電視接收機也要求分配IP地址。一系列新需求的出現(xiàn)都加劇了IP地址的緊缺,雖然采用了諸如VLSM、CIDR和NAT等輔助技術,但是并沒有徹底解決問題。

(2)路由速度慢:隨著網絡規(guī)模的擴大,路由表越來越龐大,路由處理速度越來越慢。這是因為IPv4頭部多達13個字段,路由器處理的信息量很大,而且大部分處理操作都要用軟件實現(xiàn),這使得路由器已經成為因特網的瓶頸,設法簡化路由處理成為提高網絡傳輸速度的關鍵技術。

(3)缺乏安全功能:隨著互聯(lián)網的廣泛應用,網絡安全成為迫切需要解決的問題。IPv4沒有提供安全功能,阻礙了互聯(lián)網在電子商務等信息敏感領域的應用。近年來在IPv4基礎上針對不同的應用領域研究出了一些安全成果,例如IPsec、SLL等,這些成果需要進一步的整合,以便為各種應用領域提供統(tǒng)一的安全解決方案。

(4)不支持新的業(yè)務模式:IPv4不支持許多新的業(yè)務模式,例如語音、視頻等實時信息傳輸需要QoS支持,P2P應用還需要端到端的QoS支持,移動通信需要靈活的接入控制,也需要更多的IP地址等。這些新業(yè)務的出現(xiàn)對互聯(lián)網的應用提出了一些難以解決的問題,需要對現(xiàn)行的IP協(xié)議做出根本性的變革。針對IPv4面臨的問題,IETF在1992年7月發(fā)出通知,征集對下一代IP協(xié)議(IPng)的建議。在對多個建議篩選的基礎上,IETF于1995年1月發(fā)表了RFC1752(TheRecommendationoftheIPNextGenerationProtocol),闡述了對下一代IP的需求,定義了新的協(xié)議數(shù)據(jù)單元,這是IPv6研究中的里程碑事件。隨后的一些RFC文檔給出了IPv6協(xié)議的補充定義,關于IPv6各種研究成果都包含在1998年12月發(fā)表的RFC2460文檔中。9.1.1IPv6分組格式

IPv6協(xié)議數(shù)據(jù)單元的格式表示在圖9-1(a)中,整個IPv6分組由一個固定頭部和若干個擴展頭部、以及上層協(xié)議的負載組成。擴展頭部是任選的,轉發(fā)路由器只處理與其有關的部分,這樣就簡化了路由器的轉發(fā)操作,加速了路由處理的速度。IPv6的固定頭部如圖9-1(b)所示,其中的各個字段解釋如下:●版本(4bit):用0110指示IP第六版。●通信類型:(8bit):這個字段用于區(qū)分不同的IP分組,相當于IPv4中的服務類型字段,通信類型的詳細定義還在研究和實驗之中。圖9-1IPv6分組●流標記(20bit):原發(fā)主機用該字段來標識某些需要特別處理的分組,例如特別的服務質量或者實時數(shù)據(jù)傳輸?shù)?,流標記的詳細定義還在研究和實驗之中?!褙撦d長度(16bit):表示除過IPv6固定頭部40個字節(jié)之外的負載長度,擴展頭包含在負載長度之中?!裣乱活^部(8bit):指明下一個頭部的類型,可能是IPv6的擴展頭部,也可能是高層協(xié)議的頭部。●跳數(shù)限制(8bit):用于檢測路由循環(huán),每個轉發(fā)路由器對這個字段減一,如果變成0,分組被丟棄?!裨吹刂?128bit):發(fā)送結點的地址?!衲繕说刂?128bit):接收結點的地址。

Pv6有6種擴展頭部,如表9-1所示。這6種擴展頭部都是任選的。擴展頭部的作用是保留IPv4某些字段的功能,但只是由特定的網絡設備來檢查處理,而不是每個設備都要處理。表9-1IPv6的擴展頭部擴展頭部的第一個字節(jié)是下一頭部(NextHeader)選擇符(圖9-2(a)),其值指明了下一個頭部的類型,例如60表示目標選項,43表示源路由,44表示分段,51表示認證,50表示封裝安全負荷,59表示沒有下一個頭部了等(/assignments/ipv6-parameters)。由于逐跳選項沒有指定相應的編碼,所以它如果出現(xiàn)的話要放在所有擴展頭部的最前面,在IPv6頭部的“下一頭部”字段中用0來指示逐跳選項的存在。擴展頭部的第二個字節(jié)表示頭部擴展長度(HdrExtLen),以8個字節(jié)計數(shù),其值不包含擴展頭部的前8個字節(jié),也就是說,如果擴展頭部只有8個字節(jié),則該字段為0。圖9-2包含任選部分的擴展頭部逐跳選項是可變長字段,任選部分(Options)被編碼成類型-長度-值(TLV)的形式,參見圖9-2(b)。類型(Type)為1字節(jié)長,其中前兩個比特指示對于不認識的頭部如何處理,其編碼如下:

00:跳過該任選項,繼續(xù)處理其他頭部;

01:丟棄分組;

10:丟棄分組,并向源結點發(fā)送ICMPv6參數(shù)問題報文;

11:處理方法同前,但是對于組播地址不發(fā)送ICMP報文(防止出錯的組播分組引起大量ICMP報文)。長度(Length)是8位無符號整數(shù),表示任選數(shù)據(jù)部分包含的字節(jié)數(shù)。值(Value)是相應類型的任選數(shù)據(jù)。逐跳選項包含了通路上每個路由器都必須處理的信息,目前只定義了兩個選項?!疤卮髢糌摵伞边x項適用于傳送大于64K的特大分組,以便有效地利用傳輸介質的容量傳送大量的視頻數(shù)據(jù);“路由器警戒”選項(RFC2711)用于區(qū)分數(shù)據(jù)報封裝的組播監(jiān)聽發(fā)現(xiàn)(MLD)報文、資源預約(RSVP)報文以及主動網絡(ActiveNetwork)報文等,這些協(xié)議可以利用這個字段實現(xiàn)特定的功能。目標選項包含由目標主機處理的信息,例如預留緩沖區(qū)等。目標選項的報文格式與逐跳選項相同。路由選擇擴展頭的格式如圖9-3所示,其中的路由類型字段是一個8位的標識符,最初只定義了一種類型0,用于表示松散源路由。未用段表示在分組傳送過程中尚未使用的路由段數(shù)量,這個字段在分組傳送過程中逐漸減少,到達目標端時應為0。路由類型0的分組格式表示在圖9-3中,在第一個字之后保留一個字,其初始值為0,到達接收端時被忽略。接下來就是n個IPv6地址,指示通路中要經過的路由器。分段擴展頭表示在圖9-4中,其中包含了13位的段偏置值(編號),是否為最后一個分段的標志M,以及數(shù)據(jù)報標識符,這些都與IPv4的規(guī)定相同。與IPv4不同是,在IPv6中只能由原發(fā)結點進行分段,中間路由器不能分段,這樣就簡化了路由過程中的分段處理。圖9-3路由頭部圖9-4分段頭部認證和封裝安全負荷的詳細介紹已經超出了本書的范圍,讀者可參考有關IPsec的資料。如果一個IPv6分組包含多個擴展頭,建議采用下面的封裝順序:

(1)?IPv6頭部;

(2)逐跳選項頭;

(3)目標選項頭(IPv6頭部目標地址字段中指明的第一個目標結點要處理的信息,以及路由選擇頭中列出的后續(xù)目標結點要處理的信息);

(4)路由選擇頭;

(5)分段頭;

(6)認證頭;

(7)封裝安全負荷頭;

(8)目標選項頭(最后的目標結點要處理的信息);

(9)上層協(xié)議頭部。9.1.2IPv6地址

IPv6地址擴展到128位,2128足夠大,這個地址空間可能永遠用不完。事實上,這個數(shù)大于阿伏加德羅常數(shù),足夠為地球上每個分子分配一個IP地址。用一個形象的說法,這樣大的地址空間允許整個地球表面上每平方米配置7?×?1023個IP地址!

IPv6地址采用冒號分隔的十六進制數(shù)表示,例如下面是一個IPv6地址

8000:0000:0000:0000:0123:4567:89AB:CDEF為了便于書寫,規(guī)定了一些簡化寫法:首先,每個字段前面的0可以省去,例如0123可以簡寫為123;其次一個或多個全0字段0000可以用一對冒號代替。例如以上地址可簡寫為

8000::123:4567:89AB:CDEF另外,IPv4地址仍然保留十進制表示法,只需在前面加上一對冒號,就成為IPv6地址,稱為IPv4兼容地址(IPv4Compatible),例如

::

1.格式前綴

IPv6地址的格式前綴(FormatPrefix,F(xiàn)P)用于表示地址類型或子網地址,用類似于IPv4CIDR的方法可表示為“IPv6地址/前綴長度”的形式。例如60位的地址前綴12AB00000000CD3有下列幾種合法的表示形式:

12AB:0000:0000:CD30:0000:0000:0000:0000/60

12AB::CD30:0:0:0:0/60

12AB:0:0:CD30::/60下面的表示形式是不合法的:

12AB:0:0:CD3/60 (在16比特的字段中可以省掉前面的0,但不能省掉后面的0)

12AB::CD30/60(這種表示可展開為12AB:0000:0000:0000:0000:0000:0000:CD30)

12AB::CD3/60(這種表示可展開為12AB:0000:0000:0000:0000:0000:0000:0CD3)一般來說,結點地址與其子網前綴組合起來可采用緊縮形式表示,例如結點地址

12AB:0:0:CD30:123:4567:89AB:CDEF若其子網號為

12AB:0:0:CD30::/60則等價的寫法是

12AB:0:0:CD30:123:4567:89AB:CDEF/60

2.地址分類

IPv6地址是一個或一組接口的標識符。IPv6地址被分配到接口,而不是分配給結點。IPv6地址有三種類型。

1)單播(Unicast)地址單播地址是單個網絡接口的標識符。對于有多個接口的結點,其中任何一個單播地址都可以用作該結點的標識符。但是為了滿足負載平衡的需要,在RFC2373中規(guī)定,只要在實現(xiàn)中多個接口看起來形同一個接口就允許這些接口使用同一地址。IPv6的單播地址是用一定長度的格式前綴匯聚的地址,類似于IPv4中的CIDR地址。單播地址中有下列兩種特殊地址:

(1)不確定地址:地址0:0:0:0:0:0:0:0稱為不確定地址,不能分配給任何結點。不確定地址可以在初始化主機時使用,在主機未取得地址之前,它發(fā)送的IPv6分組中的源地址字段可以使用這個地址。這種地址不能用作目標地址,也不能用在IPv6路由頭中。

(2)回環(huán)地址:地址0:0:0:0:0:0:0:1稱為回環(huán)地址,結點用這種地址向自身發(fā)送IPv6分組。這種地址不能分配給任何物理接口。

2)任意播(AnyCast)地址這種地址表示一組接口(可屬于不同結點的)的標識符。發(fā)往任意播地址的分組被送給該地址標識的接口之一,通常是路由距離最近的接口。對IPv6任意播地址存在下列限制:

(1)任意播地址不能用作源地址,而只能作為目標地址;

(2)任意播地址不能指定給IPv6主機,只能指定給IPv6路由器。

3)組播(MultiCast)地址組播地址是一組接口(一般屬于不同結點)的標識符,發(fā)往組播地址的分組被傳送給該地址標識的所有接口。IPv6中沒有廣播地址,它的功能已被組播地址所代替。在IPv6地址中,任何全“0”和全“1”字段都是合法的,除非特別排除的之外。特別是前綴可以包含“0”值字段,也可以用“0”作為終結字段。一個接口可以被賦予任何類型的多個地址(單播、任意播、組播)或地址范圍。

3.地址類型初始分配

IPv6地址的具體類型是由格式前綴來區(qū)分的,這些前綴的初始分配如表9-2所示。地址空間的15%是初始分配的,其余85%的地址空間留作將來使用。這種分配方案支持可聚合地址、本地地址和組播地址的直接分配,并保留了SNAP和IPX的地址空間,其余的地址空間留給將來的擴展或者新的用途。單播地址和組播地址都是由地址的高階字節(jié)值來區(qū)分的:FF(11111111)標識一個組播地址,其他值則標識一個單播地址,任意播地址取自單播地址空間,與單播地址在語法上無法區(qū)分。表9-2IPv6地址的初始分配

4.單播地址

IPv6單播地址包括可聚合全球單播地址、鏈路本地地址、站點本地地址和其他特殊單播地址。

(1)可聚合全球單播地址:這種地址在全球范圍內有效,相當于IPv4公用地址。全球地址的設計有助于構架一個基于層次的路由基礎設施,可聚合全球單播地址結構如圖9-5所示。

圖9-5可聚合全球單播地址可聚合全球單播地址格式前綴為001,隨后的頂級聚合體TLA(TopLevelAggregator)、下級聚合體NLA(NextLevelAggregator)以及站點級聚合體SLA(SiteLevelAggregator)構成了自頂向下的3級路由層次結構(見圖9-6)。TLA是遠程服務供應商的骨干網接入點,TLA向地區(qū)互聯(lián)網注冊機構RIR(ARIN、RIPENCC、APNIC等)申請IPv6地址塊,TLA之下就是商業(yè)地址分配范圍。NLA是一般的ISP,它們把從TLA申請的地址分配給SLA,各個站點級聚合體再為機構用戶或個人用戶分配地址。分層結構的最底層是主機接口,通常是在主機的48位MAC地址前面填充0xFFFE構成的接口ID。圖9-6可聚合全球單播地址層次結構

(2)本地單播地址:這種地址的有效范圍僅限于本地,又分為兩類:鏈路本地地址:其格式前綴為1111111010,用于同一鏈路的相鄰結點間的通信。鏈路本地地址相當于IPv4中的自動專用IP地址(APIPA),可用于鄰居發(fā)現(xiàn),并且總是自動配置的,包含鏈路本地地址的分組不會被路由器轉發(fā)。站點本地地址:其格式前綴為1111111011,相當于IPv4中的私網地址。如果企業(yè)內部網沒有連接到Internet上,則可以使用這種地址。站點本地地址不能被其他站點訪問,包含這種地址的分組也不會被路由器轉發(fā)到站點之外。5.組播地址

IPv6組播可以將數(shù)據(jù)報傳輸給組內所有成員。IPv6組播地址格式前綴為11111111,此外還包括標志(Flags)、范圍和組ID等字段,如圖9-7所示。

Flags可表示為000T,T?=?0表示被IANA永久分配的組播地址;T?=?1表示臨時的組播地址。Scope是組播范圍字段,表9-3列出了在RFC2373中定義的Scope的值。GroupID標識了一個給定范圍內的組播組,永久分配的組播組ID與范圍字段無關,臨時分配的組播組ID在特定的范圍內有效。圖9-7IPv6組播地址表9-3Scope字段值

6.任意播地址任意播地址僅用做目標地址,且只能分配給路由器。任意播地址是在單播地址空間中分配的,一個子網內的所有路由器接口都被分配了子網-路由器任意播地址。子網-路由器任意播地址必須在子網前綴中進行預定義,為構造一個子網-路由器任意播地址,子網前綴必須固定,其余位置全“0”,見圖9-8。表9-4是IPv4與IPv6地址的比較。圖9-8子網-路由器任意播地址表9-4IPv4和IPv6地址比較

7.?IPv6的地址配置

IPv6把自動IP地址配置作為標準功能,只要計算機連接上網絡便可自動分配IP地址。這樣做有兩個優(yōu)點,一是最終用戶無須花精力進行地址設置,二是可以大大減輕網絡管理者的負擔。IPv6有兩種自動配置功能,一種是“全狀態(tài)自動配置”,另一種是“無狀態(tài)自動配置”。

在IPv4中,動態(tài)主機配置協(xié)議(DHCP)實現(xiàn)了IP地址的自動設置,IPv6繼承了IPv4的這種自動配置服務,并將其稱為全狀態(tài)自動配置(StatefulAuto-Configuration)。在無狀態(tài)自動配置(StatelessAuto-Configuration)過程中,主機通過兩個階段分別獲得鏈路本地地址和可聚合全球單播地址。首先主機將其網卡MAC地址附加在鏈路本地地址前綴1111111010之后,產生一個鏈路本地地址,并發(fā)出一個ICMPv6鄰居發(fā)現(xiàn)(NeighborDiscovery)請求,以驗證其地址的唯一性。如果請求沒有得到響應,則表明主機自我配置的鏈路本地地址是唯一的,否則,主機將使用一個隨機產生的接口ID組成一個新的鏈路本地地址。獲得鏈路本地地址后,主機以該地址為源地址,向本地鏈路中所有路由器組播ICMPv6路由器請求(RouterSolicitation)報文,路由器以一個包含可聚合全球單播地址前綴的路由器公告(RouterAdvertisement)報文響應。主機用從路由器得到的地址前綴加上自己的接口ID,自動配置一個全球單播地址,這樣就可以與Internet中的任何主機進行通信了。使用無狀態(tài)自動配置,無需手工干預就可以改變主機的IPv6地址。9.1.3IPv6路由協(xié)議

IPv6單播路由協(xié)議與IPv4類似,有些是在原有協(xié)議基礎上進行了簡單的擴展,有些則完全是新的版本。

1.?RIPng下一代RIP協(xié)議(RIPng)是對原來的RIPv2的擴展。大多數(shù)RIP的概念都可以用于RIPng,為了在IPv6網絡中應用,RIPng對原有的RIP協(xié)議進行了如下修改:

(1)?UDP端口號:使用UDP的521端口發(fā)送和接收路由信息。

(2)組播地址:使用FF02::9作為鏈路本地范圍內的RIPng路由器組播地址。

(3)路由前綴:使用128比特的IPv6地址作為路由前綴。

(4)下一跳地址:使用128比特的IPv6地址。

2.?OSPFv3

RFC2740定義OSPFv3,用于支持IPv6。OSPFv3與OSPFv2的區(qū)別主要有:

(1)修改了LSA的種類和格式,使其支持發(fā)布IPv6路由信息。

(2)修改了部分協(xié)議流程。主要的修改包括用Router-ID來標識鄰居,使用鏈路本地地址來發(fā)現(xiàn)鄰居等,使得網絡拓撲本身獨立于網絡協(xié)議,以便于將來擴展。

(3)進一步理順了拓撲與路由的關系。OSPFv3在LSA中將拓撲與路由信息相分離,一、二類LSA中不再攜帶路由信息,而只是單純的拓撲描述信息,另外增加了八、九類LSA,結合原有的三、五、七類LSA來發(fā)布路由前綴信息。

(4)提高了協(xié)議適應性。通過引入LSA擴散范圍的概念進一步明確了對未知LSA的處理流程,使得協(xié)議可以在不識別LSA的情況下根據(jù)需要做出恰當處理,提高了協(xié)議的可擴展性。

3.?BGP?4+傳統(tǒng)的BGP4只能管理IPv4的路由信息,對于使用其他網絡層協(xié)議(如IPv6等)的應用,在跨自治系統(tǒng)傳播時就會受到一定的限制。為了提供對多種網絡層協(xié)議的支持,IETF發(fā)布的RFC2858文檔對BGP4進行了多協(xié)議擴展,形成了BGP4+。為了實現(xiàn)對IPv6協(xié)議的支持,BGP?4+必須將IPv6網絡層協(xié)議的信息反映到NLRI(NetworkLayerReachableInformation)及Next_Hop屬性中。為此,BGP?4+中引入了兩個NLRI屬性:

(1)?MP_REACH_NLRI:多協(xié)議可到達NLRI,用于發(fā)布可到達路由及下一跳信息。

(2)?MP_UNREACH_NLRI:多協(xié)議不可達NLRI,用于撤銷不可達路由。

BGP4+中的Next_Hop屬性用IPv6地址來表示,可以是IPv6全球單播地址或者下一跳的鏈路本地地址,BGP4原有的消息機制和路由機制則沒有改變。

4.?ICMPv6協(xié)議

ICMPv6協(xié)議用于報告IPv6結點在數(shù)據(jù)包處理過程中出現(xiàn)的錯誤消息,并實現(xiàn)簡單的網絡診斷功能。ICMPv6新增加的鄰居發(fā)現(xiàn)功能代替了ARP協(xié)議的功能,所以在IPv6體系結構中已經沒有ARP協(xié)議了。除過支持IPv6地址格式之外,ICMPv6還為支持IPv6中的路由優(yōu)化、IP組播、移動IP等增加了一些新的報文類型,擇其要者列舉如下:類型碼含義RFC文檔

127

ReservedforexpansionofICMPv6errormessages[RFC4443]

130

MulticastListenerQuery [RFC2710]

131

MulticastListenerReport [RFC2710]

132

MulticastListenerDone [RFC2710]

133

RouterSolicitation

[RFC4861]

134

RouterAdvertisement

[RFC4861]

135

NeighborSolicitation

[RFC4861]

136

NeighborAdvertisement

[RFC4861]

139

ICMPNodeInformationQuery

[RFC4620]

140

ICMPNodeInformationResponse

[RFC4620]

141

InverseNeighborDiscoverySolicitationMessage [RFC3122]

142

InverseNeighborDiscoveryAdvertisementMessage[RFC3122]

144

HomeAgentAddressDiscoveryRequestMessage [RFC3775]

145

HomeAgentAddressDiscoveryReplyMessage [RFC3775]

146

MobilePrefixSolicitation [RFC3775]

147

MobilePrefixAdvertisement [RFC3775]

148

CertificationPathSolicitationMessage [RFC3971]

149

CertificationPathAdvertisementMessage [RFC3971]

151

MulticastRouterAdvertisement [RFC4286]

152

MulticastRouterSolicitation [RFC4286]

153

MulticastRouterTermination [RFC4286]9.1.4IPv6對IPv4的改進與IPv4相比,IPv6有下列改進:

(1)尋址能力方面的擴展:IP地址增加到128位,并且能夠支持多級地址層次;地址自動配置功能簡化了網絡地址的管理工作;在組播地址中增加了范圍字段,改進了組播路由的可伸縮性;增加的任意播地址比IPv4中的廣播地址更加實用。

(2)分組頭格式得到簡化:IPv4頭中的很多字段被丟棄,IPv6頭中字段的數(shù)量從12個降到了8個,中間路由器必須處理的字段從6個降到了4個,這樣就簡化了路由器的處理過程,提高了路由選擇的效率。

(3)改進了對分組頭部選項的支持:與IPv4不同,路由選項不再集成在分組頭中,而是把擴展頭作為任選項處理,僅在需要時才插入到IPv6頭與負載之間。這種方式使得分組頭的處理更靈活,也更流暢,以后如果需要,還可以很方便地定義新的擴展功能。

(4)提供了流標記能力:IPv6增加了流標記,可以按照發(fā)送端的要求對某些分組進行特別的處理,從而提供了特別的服務質量支持,簡化了對多媒體信息的處理,可以更好地傳送具有實時需求的應用數(shù)據(jù)。9.2移動IP當筆記本電腦迅速普及的時候,很多用戶為了不能在異地聯(lián)網而感到苦惱。在當前使用的系統(tǒng)中,IPv4地址分為網絡地址和主機地址兩個部分。當用戶主機配置了靜態(tài)地址(例如0/16)時,所有路由器中都記錄了到達該網絡(160.40)的路由,若用戶不在自己的局域網中,就收不到發(fā)送給他的信息了。在新的聯(lián)網地點配置一個新地址的方法缺乏吸引力,一般用戶難于掌握重新配置地址的工作,即使重新配置后,也可能影響主機中的各種應用軟件。解決這個問題的另一種思路是在路由器中使用完整的IP地址進行路由選擇,但這樣就會大大增加了路由表項,使得路由設備的工作效率更低,所以也是行不通的。能否在新的聯(lián)網地點自動重新建立連接,從依賴于固定地點的連接過渡到靈活的移動連接是一個新的研究課題,為此,IETF成立專門的工作組,并預設了下列研究目標:

(1)移動主機能夠在任何地方使用它的家鄉(xiāng)地址進行連網;

(2)不允許改變主機中的軟件;

(3)不允許改變路由器軟件和路由表的結構;

(4)發(fā)送給移動主機的大部分分組不需要重新路由;

(5)移動主機在家鄉(xiāng)網絡中的上網活動無須增加任何開銷。

IETF給出的解決方案是RFC3344(IPMobilitySupportforIPv4)和RFC3775(MobilitySupportinIPv6)。這一節(jié)講述這兩個標準的主要內容。9.2.1移動IP的通信過程

RFC3344給出的解決方案是增強IPv4協(xié)議,使其能夠把IP數(shù)據(jù)報路由到移動主機當前所在的連接站點。按照這個方案,每個移動主機配置了一個家鄉(xiāng)地址(homeaddress)作為永久標識,當移動主機離開家鄉(xiāng)網絡時,通過所在地點的外地代理,它被賦予了一個轉交地址(care-ofaddress)。協(xié)議提供了一種注冊機制,使得移動主機可以通過家鄉(xiāng)地址獲得轉交地址。家鄉(xiāng)代理通過安全隧道可以把分組轉發(fā)給外地代理,然后被提交給移動主機。圖9-9表示了一個連接局域網、城域網和無線通信網的廣域網。在聯(lián)網的計算機中,有一類主機用銅纜或光纖連接在局域網中,從來不會移動,我們認為這些主機是靜止的??梢砸苿拥闹鳈C有兩類,一類基本上是靜止的,只是有時候從一個地點移動到另一個地點,并且在任何地點都可以通過有線或無線連接進入Internet;另一類是在運動中進行計算的主機,它通過在無線通信網中漫游來保持網絡連接。我們所說的移動主機包括了這兩類主機,也就是說,移動主機是指在離開家鄉(xiāng)網絡的遠程站點可以聯(lián)網工作的計算機。圖9-9連接局域網和無線通信網的廣域網假定所有移動主機都有一個固定不變的家鄉(xiāng)站點,同時也有一個固定不變的家鄉(xiāng)地址來定位它的家鄉(xiāng)網絡。這種家鄉(xiāng)地址就像固定電話號碼一樣,分別用國家代碼、地區(qū)代碼和座機號來定位電話機所在的地理位置。在圖9-8所示的WAN中,每個局域網中都有一個家鄉(xiāng)代理(homeagent)進程,它們的任務是跟蹤屬于本地網絡而又在外地聯(lián)網的移動主機;同時還有一個外地代理(foreignagent)進程,其任務是監(jiān)視所有進行異地訪問的移動主機。當移動主機進入一個站點時,無論是插入當?shù)氐木W絡接口或是漫游到當?shù)氐姆涓C小區(qū),主機都必須向附近的外地代理進行注冊,注冊過程如下:

(1)外地代理周期性地廣播一個公告報文,宣布自己的存在和自己的地址。新到達的主機等待這樣的消息。如果沒有及時得到這個消息,移動主機可以主動廣播一個分組來尋找附近的外地代理。

(2)移動主機在外地代理上進行注冊,提供它的家鄉(xiāng)地址,MAC地址和必要的安全信息。

(3)外地代理與移動主機的家鄉(xiāng)代理進行聯(lián)系,告訴外地代理的地址以及有關移動主機的安全信息,使得家鄉(xiāng)代理可以進行驗證,確保不被假冒者欺騙。

(4)家鄉(xiāng)代理檢查安全信息正確后發(fā)回一個響應,通知外地代理(通信可以繼續(xù)進行)。

(5)當外地代理得到家鄉(xiāng)代理的響應后就通知移動主機(注冊成功),移動主機這時被分配了一個轉交地址。以后的通信過程如圖9-10所示。如果有另外一個主機向移動主機發(fā)送信息,則

(1)第一個分組被發(fā)送到移動主機的家鄉(xiāng)地址;

(2)第一個分組通過隧道被轉發(fā)到移動主機的轉交地址;

(3)家鄉(xiāng)代理向發(fā)送結點返回外地代理的轉交地址;

(4)發(fā)送結點把后續(xù)分組通過隧道發(fā)送給移動主機的轉交地址。圖9-10移動主機的通信過程移動IP提供了兩種獲取轉交地址的方式。一種是外地代理轉交地址(ForeignAgentCare-ofAddress),這種轉交地址是外地代理在它的代理公告報文中提供的地址,也就是外地代理的IP地址,在這種情況下,外地代理是隧道的終點,接收到隧道中的數(shù)據(jù)后,外地代理要提取出封裝的數(shù)據(jù)報并提交給移動主機。這種獲取方式的好處是允許多個移動主機共享同一轉交地址,因而不會對有限的IP地址空間提出過多的需求。另外一種獲取模式是配置轉交地址(CollocatedCare-ofAddress),是暫時分配給移動結點的某個端口的IP地址,其網絡前綴必須與移動結點當前所連接的外地鏈路的網絡前綴相同。一個配置轉交地址只能被一個移動結點使用,可以是通過DHCP服務器動態(tài)分配的地址,或是在地址緩沖池中選取的私網地址。這種獲取方式的好處是移動主機成為隧道的終點,由移動主機自己從隧道中提取發(fā)送給它的分組。使用配置轉交地址還有一個好處,就是移動主機也可以在沒有配置外地代理的網絡中工作。但是這種方案對有限的IPv4地址空間增加了很大的負擔,外部網絡中需要配置一個地址緩沖池,以備移動主機來訪問。重要的是要認真區(qū)分轉交地址和外地代理的功能。轉交地址是隧道的終點,它可能是外地代理的地址(foreignagentcare-ofaddress),也可能是移動主機獲得的臨時地址(co-locatedcare-ofaddress),外地代理與家鄉(xiāng)代理一樣,都是為移動主機服務的移動代理。9.2.2移動IPv6

RFC3775規(guī)范了IPv6對移動主機的支持功能,定義的協(xié)議稱為移動IPv6。在這個協(xié)議的支持下,當移動結點連接到一個新的鏈路時,仍然可以與其他靜止的或移動的結點進行通信。移動結點離開其家鄉(xiāng)鏈路對傳輸層和應用層協(xié)議、對應用程序來說都是透明的。移動IPv6協(xié)議適合于同構型介質,也適合于異構型介質。例如,可以從一個以太網段移動到另一個以太網段,也可以從一個以太網段移動到一個無線局域網小區(qū),移動結點的家鄉(xiāng)地址都無須改變。

1.移動IPv6的工作機制在移動IPv6中,家鄉(xiāng)地址是帶有移動結點家鄉(xiāng)子網前綴的IP地址。當移動結點連接在家鄉(xiāng)網絡中時,發(fā)送給家鄉(xiāng)地址的分組通過常規(guī)的路由機制可以到達移動結點;當移動結點連接到外地鏈路時,可以通過(一個或多個)轉交地址對其尋址。轉交地址是具有外地鏈路子網前綴的IP地址,移動結點可以通過常規(guī)的IPv6機制獲取轉交地址,例如10.1.2小節(jié)提到的無狀態(tài)或全狀態(tài)自動配置過程。只要移動結點停留在外部某個位置,發(fā)送給轉交地址的分組都可以被路由到移動結點;當移動結點處于漫游狀態(tài)時,它可能從幾個轉交地址接收分組,只要它還能與以前的鏈路保持連接。移動結點的家鄉(xiāng)地址與轉交地址之間的關聯(lián)稱為綁定(binding)。當移動結點離開家鄉(xiāng)網絡時,要在家鄉(xiāng)鏈路上的路由器中注冊一個主轉交地址(primarycare-ofaddress),并請求該路由器擔任它的家鄉(xiāng)代理。注冊過程要求移動結點向家鄉(xiāng)代理發(fā)送一個綁定更新(BindingUpdate)報文,家鄉(xiāng)代理以綁定應答(BindingAcknowledgement)報文響應。與移動結點通信的結點稱為對端結點(correspondentnode)。移動結點通過“對端注冊”過程向對端結點提供它當前的位置,并且授權對端結點把自己的家鄉(xiāng)地址與當前的轉交地址進行綁定。移動結點與對端結點之間的通信有兩種方式。第一種方式是雙向隧道(BidirectionalTunneling),在這種情況下不需要移動IPv6的支持,即使移動結點沒有在對端結點上注冊它當前的綁定也可以進行通信。與移動IPv4一樣,對端結點發(fā)出的分組首先被路由到移動結點的家鄉(xiāng)代理,然后通過隧道被轉發(fā)到轉交地址;移動結點發(fā)出的分組首先通過隧道發(fā)送給家鄉(xiāng)代理,然后按照正常的路由過程轉發(fā)到對端結點。在這種模式下,家鄉(xiāng)代理可以利用“鄰居發(fā)現(xiàn)”功能截取任何目標地址為移動結點家鄉(xiāng)地址的IPv6分組,并通過隧道把截取到的分組傳送到移動結點的主轉交地址。第二種方式是路由優(yōu)化(routeoptimization),要求移動結點把它當前的綁定信息注冊到對端結點上,對端結點發(fā)出的分組就可以直接路由到移動結點的轉交地址。當對端結點發(fā)送一個IPv6分組時,首先要檢查它緩沖的有關目標地址的綁定項,如果發(fā)現(xiàn)該目標地址已經綁定了一個轉交地址,則對端結點就可以使用一種新的2型路由頭(見下面的解釋),以便把分組路由到移動結點的轉交地址,指向移動結點轉交地址的路由分組選擇最短的路徑到達目標。這種通信方式緩和了移動結點家鄉(xiāng)代理和家鄉(xiāng)鏈路上的通信擁塞,而且家鄉(xiāng)代理或網絡通路上的任何失效所產生的影響都被減至最小。移動IPv6也支持多個家鄉(xiāng)代理,并有限地支持家鄉(xiāng)網絡的重新配置。在這種情況下,移動結點也許不知道家鄉(xiāng)代理的IP地址,甚至家鄉(xiāng)子網前綴改變時它也不知道。有一種叫做“家鄉(xiāng)代理地址發(fā)現(xiàn)”的機制(ICMPv6144,145報文),允許移動結點動態(tài)地發(fā)現(xiàn)家鄉(xiāng)代理的IP地址,即使移動結點離開其家鄉(xiāng)網絡時也可以工作。移動結點也可以學習新的信息,通過“移動前綴請求”機制(ICMPv6146,147報文)來了解家鄉(xiāng)子網前綴的變化情況。這些功能都需要ICMPv6的支持。移動IPv6的實現(xiàn)對IPv6的通信結點和路由器提出了一些特殊的要求:

(1)對通信結點的要求:每個IPv6結點都可能成為某個移動主機的對端結點,所以每個IPv6結點都必須能夠處理包含在IPv6數(shù)據(jù)包中的“家鄉(xiāng)地址”選項。每個IPv6結點應能處理接收到的“綁定更新”選項,并能返回“綁定應答”選項,每個IPv6結點應能進行綁定管理。

(2)對路由器的要求:IPv6路由器應該支持相鄰結點的搜索功能,支持ICMPv6路由器發(fā)現(xiàn)機制。每個IPv6路由器都應該能夠以更快的速率發(fā)送“路由器廣播”消息,在移動主機的家鄉(xiāng)鏈路上至少應該有一個路由器作為它的家鄉(xiāng)代理。

2.路由擴展頭圖9-3中的路由選擇擴展頭稱為0型路由頭,用于一般的松散源路由。為了支持移動IPv6,RFC3775中又定義了一種新的2型路由頭,如圖9-11所示,其中提供的路由地址只有一個——移動結點的家鄉(xiāng)地址。當一個2型路由分組指向移動結點時,對端結點應把IPv6頭中的目標地址設置為移動結點的轉交地址,路由頭用來承載移動結點的家鄉(xiāng)地址。分組到達轉交地址后,移動結點要在路由頭中檢查自己的家鄉(xiāng)地址,排除轉發(fā)來的錯誤分組;類似地,移動結點發(fā)送給對端結點的分組中的源地址也是它當前的轉交地址,并在2型路由頭中說明自己的家鄉(xiāng)地址。采用這種路由頭,把家鄉(xiāng)地址加入到路由頭中,使得轉交地址對網絡層之上成為透明的。圖9-112型路由擴展頭

3.移動擴展頭移動頭是一種新的、支持移動IPv6的擴展頭,移動結點、對端結點和家鄉(xiāng)代理在生成和管理綁定的過程中都要使用移動頭來傳輸信息。圖9-12畫出了移動頭的格式。為移動頭指定的代碼是135,所以在前面的擴展頭中要用135來指向移動頭,其中的字段解釋如下:

(1)負載的協(xié)議(PayloadProto):是8bit的選擇符,用于標識緊跟著的擴展頭。

(2)頭長度(HeaderLen):8字節(jié)的倍數(shù),除過前8個字節(jié)。

(3)?MH類型:8bit的選擇符,說明移動報文的類型?!?MH=0:綁定刷新請求報文(BindingRefreshRequestMessage,BRR),由對端結點發(fā)送給移動結點,請求更新它的移動綁定。圖9-12IPv6的目標選項頭●?MH=1:家鄉(xiāng)測試初始化報文(HomeTestInitMessage,HoTI),由移動結點發(fā)送給對端結點,用于測試可達性,并對家鄉(xiāng)地址進行驗證?!?MH=2:轉交測試初始化報文(Care-ofTestInitMessage,CoTI),由移動結點發(fā)送給對端結點,用于測試可達性,并對轉交地址進行驗證?!?MH=3:家鄉(xiāng)測試報文(HomeTestMessage,HoT),由對端結點發(fā)送給移動結點的報文,是對HoTI的響應?!?MH=4:轉交測試報文(Care-ofTestMessage,CoT),由對端結點發(fā)送給移動結點的報文,是對CoTI的響應?!?MH=5:綁定更新報文(BindingUpdateMessage,BU),由移動結點發(fā)出,通知其他結點綁定一個新的轉交地址。●?MH=6:綁定應答報文(BindingAcknowledgementMessage,BA),對綁定更新報文的應答?!?MH=7:綁定出錯報文(BindingErrorMessage,BE),由對端結點發(fā)出的移動性出錯報文,例如失去綁定信息等。

(4)報文數(shù)據(jù):指以上8種類型的報文數(shù)據(jù)。

4.移動IPv6和移動IPv4的比較移動IPv6的設計吸取了移動IPv4開發(fā)過程中積累的經驗,同時也得益于IPv6網絡提供的許多新功能。下面對移動IPv6與移動IPv4作一比較(參見表9-5)。

(1)移動結點通過常規(guī)的IPv6地址分配機制(無狀態(tài)或全狀態(tài)自動配置過程)獲取轉交地址,與移動IPv4相比,簡化了轉交地址的分配過程。

(2)在運行移動IPv6的系統(tǒng)中,移動結點在家鄉(xiāng)網絡之外的任何網絡中操作都不需要本地路由器的支持,因而排除了移動IPv4中增加的外地代理功能。

(3)每個IPv6主機都具備對端結點的功能。當與運行移動IPv6的主機通信時,每個IPv6主機都可以執(zhí)行路由優(yōu)化功能,從而避免了移動IPv4中的三角路由問題。

(4)移動IPv6定義了兩種通信模式,但是采用隧道通信的機會很少。事實上,通常只有對端結點發(fā)送的第一個分組是由家鄉(xiāng)代理轉發(fā)的,當移動結點向家鄉(xiāng)代理發(fā)送“綁定更新”消息后,其他的后續(xù)分組都會通過路由頭進行傳送,這樣就大大減少了網絡的通信開銷。

(5)移動IPv6利用了IPv6的安全機制,簡化了隧道狀態(tài)的管理,即使是利用隧道方式進行通信,也比移動IPv4的效率高。

(6)移動IPv6改進了IPv6的鄰居發(fā)現(xiàn)機制,用來查找本地路由器,這樣就避免了IPv4中使用的ARP協(xié)議,改進了系統(tǒng)的健壯性。表9-5移動IPv4和IPv6的比較9.3從IPv4向IPv6的過渡一種新的協(xié)議從誕生到廣泛應用需要一個過程。在IPv6網絡全球普遍部署之前,一些首先運行IPv6的網絡希望能夠與當前運行IPv4的互聯(lián)網進行通信。為了這一目的,IETF成立了專門的工作組NGTRANS來研究從IPv4向IPv6過渡的問題,提出了一系列的過渡技術和互連方案,這些技術各有特點,用于解決不同過渡時期不同網絡環(huán)境中的通信問題。在過渡初期,互聯(lián)網由運行IPv4的“海洋”和運行IPv6的“孤島”組成,隨著時間的推移,海洋會逐漸變小,孤島將越來越多,最終IPv6會完全取代IPv4。過渡初期要解決的問題可以分成兩類:第一類是解決IPv6孤島之間互相通信的問題;第二類是解決IPv6孤島與IPv4海洋之間的通信問題。目前提出的過渡技術可以歸納為以下三種:

(1)隧道技術:用于解決IPv6結點之間通過IPv4網絡進行通信的問題。

(2)雙協(xié)議棧技術:使得IPv4和IPv6可以共存于同一設備和同一網絡中。

(3)翻譯技術:使得純IPv6結點與純IPv4結點之間可以進行通信。9.3.1隧道技術所謂隧道就是把IPv6分組封裝到IPv4分組中,通過IPv4網絡進行轉發(fā)的技術。這種隧道就像一條虛擬的IPv6鏈路一樣,可以把IPv6分組從IPv4網絡的一端傳送到另一端,傳送期間對原始IPv6分組不做任何改變。在隧道兩端進行封裝和解封的網絡結點可以是主機,也可以是路由器。根據(jù)隧道端結點的不同,可以分為四種不同的隧道:

(1)主機到主機的隧道。

(2)主機到路由器的隧道。

(3)路由器到路由器的隧道。

(4)路由器到主機的隧道。建立隧道可以采用手工配置的方法,也可以采用自動配置的方法。手工配置的方法管理不方便,對大的網絡更是如此,下面主要分析IETF提出的各種自動隧道技術。

1.隧道中介技術

圖9-13畫出了IPv6分組通過IPv4隧道傳送的方法。隧道端點的IPv4地址由隧道封裝結點中的配置信息確定。這種配置方式要求隧道端點必須運行雙協(xié)議棧,兩個端點之間不能使用NAT技術,因為IPv4地址必須是全局可路由的。對于IPv4/IPv6雙棧主機,可以配置一條默認的隧道,以便把不能連接到任何IPv6路由器的分組發(fā)送出去。雙棧邊界路由器的IPv4地址必須是已知的,這是隧道端點的地址,這種默認隧道建立后,所有IPv6目標地址都可以通過隧道傳送。圖9-13人工配置的隧道對于小型的網絡,人工配置隧道是容易的,但是對于大型網絡,這個方法就很困難了。有一種叫做隧道中介(TunnelBroker)的技術可以解決這個難題,圖9-14表示通過隧道服務器配置隧道端點的方法。隧道服務器是一種即插即用的IPv6技術,通過IPv4網絡可以進行IPv6分組的傳送。在客戶機請求的前提下,來自隧道服務器的配置腳本被發(fā)送給客戶機,客戶機利用收到的配置數(shù)據(jù)來建立隧道端點,從而建立了一條通向IPv6網絡的連接。這種技術要求客戶機結點必須配置成雙協(xié)議棧,客戶機的IPv4地址必須是全局地址,不能使用NAT進行地址轉換。圖9-14隧道中介

2.自動隧道兩個雙棧主機可以通過自動隧道在IPv4網絡中進行通信,圖9-15顯示了自動隧道的網絡拓撲。實現(xiàn)自動隧道的結點必須采用IPv4兼容的IPv6地址。當分組進入雙棧路由器時,如果目標地址是IPv4兼容的地址,分組就被重定向,并自動建立一條隧道;如果目標地址是當?shù)氐腎Pv6地址(NativeAddress),則不會建立自動隧道。被傳送的分組決定了隧道的端點,目標IPv4地址取自IPv6地址的低32位,源地址是發(fā)送分組的接口的IPv4地址。自動隧道不需要改變主機配置,但缺點是對兩個主機不透明,因為目標結點必須對收到的分組進行解封。圖9-15自動隧道在圖9-14中,地址分配如下:從主機A到主機B的分組:源地址=IPv6 目標地址=0::IPv4(B)從路由器到主機B的隧道:源地址=IPv4 目標地址=IPv4從主機B到路由器的隧道: 源地址=IPv4 目標地址=IPv4從主機B到主機A的分組: 源地址=0::IPv4(B)目標地址=IPv6實現(xiàn)自動隧道要根據(jù)不同的網絡配置和不同的通信環(huán)境采用不同的具體技術,下面分別敘述之。

3.?6to4隧道

6to4是一種支持IPv6站點通過IPv4網絡進行通信的技術,這種技術不需要顯式地建立隧道,可以使得一個原生的IPv6站點通過中繼路由器連接到IPv6網絡中。

IANA在可聚合全球單播地址范圍內指定了一個格式前綴0x2002來表示6to4地址。例如全局IPv4地址2對應的6to4前綴就是2002:c000:022a::/48,其中c000:022a是2的十六進制表示。除過48前綴位之外,后面還有16位的子網地址和64位的主機接口ID,通常把帶有16位前綴“2002”的IPv6地址稱為6to4地址,而把不使用這個前綴的IPv6地址稱為原生地址(NativeAddress)。中繼路由器是一種經過特別配置的路由器,用于在原生IPv6地址與6to4地址之間進行轉換。6to4技術都是在邊界路由器中實現(xiàn)的,不需要對主機的路由配置做任何改變。地址選擇方案應該保證在任何復雜的拓撲中都能進行正確的6to4操作,這意味著如果一個主機只有6to4地址,而另一個主機有6to4地址和原生IPv6地址,則兩個主機必須用6to4地址進行通信;如果兩個主機都有6to4地址和原生IPv6地址,則兩者都要使用原生IPv6地址進行通信。

6to4路由器應該配置雙協(xié)議棧,應該具有全局IPv4地址,并能實現(xiàn)6to4地址轉換。這種方法對IPv4路由表不增加任何選項,只是在IPv6路由表中引入了一個新的選項。

6to4路由器應該向本地網絡公告它的6to4前綴2002:IPv4::/48,其中IPv4是路由器的全局IPv4地址。在本地IPv6網絡中的6to4主機要使用這個前綴,可以用作自動的地址賦值,或用作IPv6路由,或用在6over4機制中。用6to4技術連接的兩個主機如圖9-16所示。在6to4主機A發(fā)出的分組經過各個網絡到達主機B的過程中,地址變化情況如圖9-17所示,這些地址轉換都是在6to4路由器中自動進行的。圖9-16兩個6to4主機之間的通信圖9-17兩個6to4主機通信時的分組頭

6to4技術也支持原生IPv6站點到6to4站點的通信,如圖9-18所示,其通信過程如下:

(1)原生IPv6主機A的地址為IPv6(A);

(2)?6to4中繼路由器1向原生IPv6網絡公告它的地址前綴2002::/16,這個地址前綴被保存在主機A的路由表中;

(3)?6to4路由器2對6to4網絡公告它的地址前綴2002:IPv4(2)::/48,于是6to4主機B獲得地址2002:IPv4(2)::EUI-64(B);

(4)當主機A向主機B發(fā)送分組時,6to4中繼路由器1對分組進行封裝:源地址=IPv4(1),目標地址=IPv4(2);

(5)當分組到達6to4路由器2時分組被解封,并轉發(fā)到主機B。圖9-18原生IPv6主機到6to4主機的通信

6to4技術還可以支持6to4站點到原生IPv6站點的通信,如圖9-19所示,其通信過程如下:

(1)主機A的地址為IPv6(A);

(2)主機B的地址為2002:IPv4(2)::EUI-64(B);

(3)?6to4路由器2有一條到達6to4中繼路由器3的默認路由,這個路由項可以是靜態(tài)配置的,或是動態(tài)獲得的;

(4)當主機B向主機A發(fā)送分組時,6to4路由器2對分組進行封裝源地址=IPv4(2),目標地址=IPv4(3);

(5)?6to4中繼路由器3對分組解封,并轉發(fā)到主機A。

6to4技術對于兩個6to4網絡之間的通信是很有效的,但是對于原生IPv6網絡與6to4網絡之間的通信效率不高。由于6to4技術不需要改變主機的配置,只需在路由器中進行很少的配置,所以這種方法的主要優(yōu)點是簡單可行。圖9-196to4主機到原生IPv6主機的通信

4.?6over4隧道

(1)鏈路本地地址的自動生成。

RFC2529定義的6over4是一種由IPv4地址生成IPv6鏈路本地地址的方法。IPv4主機的接口標識符是在該接口的IPv4地址前面加32個“0”形成的64位標識符。IPv6鏈路本地地址的格式前綴為FE80::/64,在其后面加上64位的IPv4接口標識符就形成了完整的IPv6鏈路本地地址。例如對于主機地址42,對應的IPv6鏈路本地地址為FE80::C000:028E(C000028E是42的十六進制表示),這種由IPv4地址生成IPv6地址的方法就是本章前面提到的無狀態(tài)自動配置方式。

(2)組播地址映像。一個孤立在IPv4網絡中的IPv6主機為了發(fā)現(xiàn)它的IPv6鄰居(主機或路由器),通常采用的方法就是組播ICMPv6鄰居邀請(NeighborSolicitation)報文,并期望接收到對方的鄰居公告(NeighborAdvertisement)報文,以便從中獲取鄰居的鏈路層地址。但是在IPv4網絡中,承載ICMPv6報文的IPv6分組必須封裝在IPv4報文中傳送,所以作為基礎通信網絡的IPv4網絡必須配置組播功能。

RFC2529規(guī)定,IPv6組播分組要封裝在目標地址為239.192.x.y的IPv4分組中發(fā)送,其中x和y是IPv6組播地址的最后兩個字節(jié)。值得注意的是,/16是IPv4機構本地范圍(Organization-LocalScope)內的組播地址塊,所以實現(xiàn)6over4主機都要位于同一IPv4組播區(qū)域內。

(3)鄰居發(fā)現(xiàn)。

IPv6鄰居發(fā)現(xiàn)的過程如下:首先是IPv6主機組播ICMPv6鄰居邀請報文,然后是收到對方的鄰居公告報文,其中包含了64位的鏈路層地址。當鏈路層屬于IPv4網絡時,鄰居公告報文返回的鏈路層地址形式如下:以上每個字段的長度都是8bit,其中,類型?=?1表示源鏈路層地址,類型=2表示目標鏈路層地址;長度?=?1(以8個字節(jié)為單位);w.x.y.z為IPv4地址。當IPv6主機獲得了對方主機的IPv4地址后,就可以用無狀態(tài)自動配置方式構造源和目標的鏈路本地地址,向通信對方發(fā)送IPv6分組了。當然,IPv6分組還是要封裝在IPv4分組中傳送。采用6over4通信的IPv6主機不需要采用IPv4兼容的地址,也不需要手工配置隧道,按照這種方法傳送IPv6分組,與底層鏈路配置無關。如果IPv6主機發(fā)現(xiàn)了同一IPv4子網內的IPv6路由器,那么還可以通過該路由器與其他IPv6子網中的主機進行通信,這時原來孤立的IPv6主機就變成全功能的IPv6主機了。圖9-20畫出了兩個6over4主機進行通信的情況,發(fā)起通信的主機A利用IPv6的鄰居發(fā)現(xiàn)機制來獲取另外一個主機B的鏈路層地址,然后主機B發(fā)出的公告報文返回了自己的IPv4地址。通過無狀態(tài)自動配置過程,主機A和主機B就建立了一條虛擬的IPv6連接,就可以進行IPv6通信了。圖9-20兩個IPv6主機之間的6over4通信

6over4依賴于IPv4組播功能,但是在很多IPv4網絡環(huán)境中并不支持組播,所以6over4技術在實踐中受到一定的限制,在有些操作系統(tǒng)中無法實現(xiàn)。另外一個限制條件是,IPv6主機連接路由器的鏈路應該處于IPv4組播路由范圍之內。

5.?ISATAP

RFC4214(Intra-SiteAutomaticTunnelingAddressingProtocol,ISATAP)定義了一種自動隧道技術,這種隧道可以穿透NAT設備,與私網之外的主機建立IPv6連接。正如該協(xié)議的名字所暗示的那樣,ISATAP意味著通過IPv4地址自動生成IPv6站點本地地址或鏈路本地地址,IPv4地址作為隧道的端點地址,把IPv6分組被封裝在IPv4分組中進行傳送。圖9-21表示兩個ISATAP主機通過本地網絡進行通信的例子。假定主機A的格式前綴為FE80::/48(鏈路本地地址),加上64位的接口標識符::0:5EFE:w.x.y.z(w.x.y.z是主機A的IPv4單播地址),這樣就構成了IPv6鏈路本地地址,就可以與同一子網內的其他ISATAP主機進行IPv6通信了。具體地說,主機A向主機B發(fā)送分組時采用的地址如下:目標IPv4地址: 0源IPv4地址: 9目標IPv6地址: FE80::5EFE:0源IPv6地址: FE80::5EFE:9圖9-21在IPv4網絡中ISATAP主機之間的通信圖9-22表示兩個ISATAP主機通過Internet進行通信的例子。在這種情況下,ISATAP路由器要公告自己的地址前綴,以便與其連接的ISATAP主機可以自動配置自己的站點本地地址。站點本地地址的格式前綴為FEC0::/48,加上64位的接口標識符::0:5EFE:w.x.y.z,就構成了主機A的站點本地地址。一般來說,ISATAP地址有64位的格式前綴,F(xiàn)EC0::/64表示站點本地地址,F(xiàn)E80::/64表示鏈路本地地址。格式前綴之后要加上修改的EUI-64地址(ModifiedEUI-64addresses),其形式為:

24位的IANAOUI?+?40位的擴展標識符圖9-22ISATAP主機通過Internet通信如果40位擴展標識符的前16位是0xFFFE,則后面是24位的制造商標識符,如下圖所示:如果40位擴展標識符的前8位是0xFE,則后面是32位的IPv4地址,如下圖所示:

OUI表示機構唯一標識符(OrganizationallyUniqueIdentifier),IANA分配的OUI為00-00-5E,如上圖所示,其中的u位表示universal/local,u?=?1表示全球唯一的IPv4地址,u?=?0表示本地的IPv4地址;g位是individual/group位,g=1表示單播地址,g=0表示組播地址。9.3.2協(xié)議翻譯技術協(xié)議翻譯技術用于純IPv6主機與純IPv4主機之間的通信。已經提出的翻譯方法有下面幾種。

(1)?SIIT:無狀態(tài)的IP/ICMP翻譯(StatelessIP/ICMPTranslation)。

(2)?NAT-PT:網絡地址翻譯-協(xié)議翻譯(NetworkAddressTranslator-ProtocolTranslator)。

(3)?SOCKS64:基于SOCKS的IPv6/IPv4機制(SOCKS-basedIPv6/IPv4GatewayMechanism)。

(4)?TRT:IPv6到IPv4的傳輸中繼翻譯器(IPv6-to-IPv4TransportRelayTranslator)。這里我們只介紹前兩種方法。

1.SIIT首先介紹兩種特殊的IPv6地址:

(1)?IPv4映射地址(IPv4-mapped):是一種內嵌IPv4地址的IPv6地址,可表示為0:0:0:0:0:FFFF:w.x.y.z或::FFFF:w.x.y.z的形式,其中w.x.y.z是IPv4地址。這種地址用于僅支持IPv4的主機。

(2)?IPv4翻譯地址(IPv4-translated):是一種內嵌IPv4地址的IPv6地址,可表示為0:0:0:0:FFFF:0:w.x.y.z或::FFFF:0:w.x.y.z的形式,其中w.x.y.z是IPv4地址。這種地址可用于支持IPv6的主機。

RFC2765定義的SIIT類似于IPv4中的NAT-PT技術,但它并不是對IPv6主機動態(tài)地分配IPv4地址。SIIT轉換器規(guī)范描述了從IPv6到IPv4的協(xié)議轉換機制,包括IP頭的翻譯方法,以及ICMP報文的翻譯方法等。當IPv6主機發(fā)出的分組到達SIIT轉換器時,IPv6分組頭被翻譯為IPv4分組頭,分組的源地址采用IPv4翻譯地址,目標地址采用IPv4映射地址,然后這個分組就可以在IPv4網絡中傳送了。圖9-23表示一個IPv6主機與IPv4主機進行SIIT通信的例子,圖中的SIIT轉換器負責提供臨時的IPv4地址,以便IPv6主機構建自己的IPv4翻譯地址(源地址),通信對方的目標地址則要使用IPv4映射地址,SIIT轉換器看到這種類型的分組則要進行分組頭的翻譯。圖9-23單個純IPv6主機通過SIIT進行通信圖9-24表示雙棧網絡中的純IP主機和通過SIIT與IPv4主機進行通信的例子。雙棧網絡中既包含IPv6主機,也包含IPv4主機。在這種情況下,SIIT轉換器可能收到純IPv6主機發(fā)出的分組,也可能收到純IPv4主機發(fā)出的分組,SIIT轉換器要適應兩種主機的需要,要保證所有進出雙棧網絡的分組都是可路由的。圖9-24雙棧網絡通過SIIT進行通信

RFC2765沒有說明IPv6結點如何獲得臨時的IPv4地址,也沒有說明獲得的IPv4地址怎樣注冊到DNS服務器中,也許可以對DHCP協(xié)議進行少許擴展,用以提供短期租賃的臨時地址。SIIT轉換器只是盡可能地對IP頭進行翻譯,并不是對IPv6頭與IPv4中的每一項都能一一對應地進行翻譯。因為兩種協(xié)議在有些方面差別很大,例如IPv4頭中的任選項部分,IPv6的路由頭、逐跳擴展頭和目標選項頭都無法準確地與另一個協(xié)議中的有關機制進行對應的翻譯,可能要采用其他技術來解決這些問題,很難用同一模型來提供統(tǒng)一的解決方案。事實上,SIIT可以與下面將要講到的NAT-PT技術結合使用,才能提供一種實用的解決方案。

2.?NAT-PT

NAT-PT(NetworkAddressTranslator–ProtocolTranslator)是RFC2766定義的協(xié)議翻譯方法,用于純IPv6主機與純IPv4主機之間的通信。實現(xiàn)NAT-PT技術必須指定一個服務器作為NAT-PT網關,并且要準備一個IPv4地址塊作為地址翻譯之用,要為每個站點至少預留一個IPv4地址。與SIIT不同,RFC2766定義的是有狀態(tài)的翻譯技術,即要記錄和保持會話狀態(tài),按照會話狀態(tài)參數(shù)對分組進行翻譯,包括對IP地址及其相關的字段(例如IP、TCP、UDP、ICMP頭檢查和等)進行翻譯。

NAT-PT操作有三個變種:基本NAT-PT、NAPT-PT和雙向NAT-PT?;綨AT-PT是單向的,這意味著只允

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論