IPv6
IPv6是Internet Protocol Version 6的縮寫,其中Internet Protocol譯為“互聯(lián)網(wǎng)協(xié)議”。IPv6是IETF(互聯(lián)網(wǎng)工程任務組,Internet Engineering Task Force)設(shè)計的用于替代現(xiàn)行版本IP協(xié)議(IPv4)的下一代IP協(xié)議,號稱可以為全世界的每一粒沙子編上一個網(wǎng)址。
由于IPv4最大的問題在于網(wǎng)絡地址資源有限,嚴重制約了互聯(lián)網(wǎng)的應用和發(fā)展。IPv6的使用,不僅能解決網(wǎng)絡地址資源數(shù)量的問題,而且也解決了多種接入設(shè)備連入互聯(lián)網(wǎng)的障礙。
組成結(jié)構(gòu)
表示方法
IPv6的地址長度為128b,是IPv4地址長度的4倍。于是IPv4點分十進制格式不再適用,采用十六進制表示。IPv6有3種表示方法。
IPv6的長分布式結(jié)構(gòu)圖
一、冒分十六進制表示法
格式為X:X:X:X:X:X:X:X,其中每個X表示地址中的16b,以十六進制表示,例如:
ABCD:EF01:2345:6789:ABCD:EF01:2345:6789
這種表示法中,每個X的前導0是可以省略的,例如:
2001:0DB8:0000:0023:0008:0800:200C:417A→ 2001:DB8:0:23:8:800:200C:417A
二、0位壓縮表示法
在某些情況下,一個IPv6地址中問可能包含很長的一段0,可以把連續(xù)的一段0壓縮為“::”。但為保證地址解析的唯一性,地址中”::”只能出現(xiàn)一次,例如:
FF01:0:0:0:0:0:0:1101 → FF01::1101
0:0:0:0:0:0:0:1 → ::1
0:0:0:0:0:0:0:0 → ::
三、內(nèi)嵌IPv4地址表示法
為了實現(xiàn)IPv4-IPv6互通,IPv4地址會嵌入IPv6地址中,此時地址常表示為:X:X:X:X:X:X:d.d.d.d,前96b采用冒分十六進制表示,而最后32b地址則使用IPv4的點分十進制表示,例如::192.168.0.1與::FFFF:192.168.0.1就是兩個典型的例子,注意在前96b中,壓縮0位的方法依舊適用[3] 。
報文內(nèi)容
IPv6報文的整體結(jié)構(gòu)分為IPv6報頭、擴展報頭和上層協(xié)議數(shù)據(jù)3部分。IPv6報頭是必選報文頭部,長度固定為40B,包含該報文的基本信息;擴展報頭是可選報頭,可能存在0個、1個或多個,IPv6協(xié)議通過擴展報頭實現(xiàn)各種豐富的功能;上層協(xié)議數(shù)據(jù)是該IPv6報文攜帶的上層數(shù)據(jù),可能是ICMPv6報文、TCP報文、UDP報文或其他可能報文。
IPv6的報文頭部結(jié)構(gòu)如圖:
IPv6協(xié)議技術(shù)特點
3.1 IPv6相對于IPv4有哪些較為顯著的優(yōu)勢?
相對于IPv4,IPv6有如下一些顯著的優(yōu)勢:
?。?)地址容量大大擴展,由原來的32位擴充到128位,徹底解決IPv4地址不足的問題;支持分層地址結(jié)構(gòu),從而更易于尋址;擴展支持組播和任意播地址,這使得數(shù)據(jù)包可以發(fā)送給任何一個或一組節(jié)點;
?。?)大容量的地址空間能夠真正的實現(xiàn)無狀態(tài)地址自動配置,使IPv6終端能夠快速連接到網(wǎng)絡上,無需人工配置,實現(xiàn)了真正的即插即用;
(3)報頭格式大大簡化,從而有效減少路由器或交換機對報頭的處理開銷,這對設(shè)計硬件報頭處理的路由器或交換機十分有利;
?。?)加強了對擴展報頭和選項部分的支持,這除了讓轉(zhuǎn)發(fā)更為有效外,還對將來網(wǎng)絡加載新的應用提供了充分的支持;
?。?)流標簽的使用讓我們可以為數(shù)據(jù)包所屬類型提供個性化的網(wǎng)絡服務,并有效保障相關(guān)業(yè)務的服務質(zhì)量;
?。?)認證與私密性:IPv6把IPSec作為必備協(xié)議,保證了網(wǎng)絡層端到端通信的完整性和機密性;
?。?)IPv6在移動網(wǎng)絡和實時通信方面有很多改進。特別地,不像IPv4,IPv6具備強大的自動配置能力從而簡化了移動主機和局域網(wǎng)的系統(tǒng)管理。
3.2 報頭結(jié)構(gòu)
3.2.1 IPv6的報頭結(jié)構(gòu)是怎樣的?
新的IPv6報頭的結(jié)構(gòu)比IPv4簡單得多, IPv6報頭中刪除了IPv4報頭中許多不常用的域,放入了可選項和報頭擴展中;IPv6中的可選項有更嚴格的定義。IPv4中有10個固定長度的域、2個地址空間和若干個選項,IPv6中只有6個域和2個地址空間。
雖然IPv6報頭占40字節(jié),是24字節(jié)IPv4報頭的1.6倍,但因其長度固定(IPv4報頭是變長的),故不需要消耗過多的內(nèi)存容量。
IPv4中的報頭長度(header length)、服務類型(type of service,TOS)、標識符(identification)、標志(flag)、分段偏移(fragment offset)和報頭校驗和(header checksum)這6個域被刪除。報文總長(total length)、協(xié)議類型(protocol type)和生存時間(time to live,TTL)3個域的名稱或部分功能被改變,其選項(options)功能完全被改變,新增加了2個域,即優(yōu)先級和流標簽。
下圖為具體的IPv4與IPv6報頭比較。
表1 IPv4包頭格式
4bit版本號
4bit報頭長度
8bit服務類型
16bit數(shù)據(jù)包長度
標識符(16bit)
標志(4bit)
分段偏移(12bit)
生存時間(8bit)
傳輸協(xié)議(8bit)
報頭校驗和(16bit)
源IP地址(32bit)
目的IP地址(32bit)
選項(24bit)
填充(8bit)
表2 ipv6包頭格式
4bit版本號
4bit優(yōu)先級
24bit流標簽
凈荷長度(16bit)
下一報頭(8bit)
HOP限制(8bit)
源IP地址(128bit)
目的IP地址(128bit)
3.3 地址問題
3.3.1 為什么IPv6協(xié)議的地址長度是128位?
有些人也許要問,IPv4地址不夠用,那我在IPv4上再增加幾位地址表示就行了,何必非要是IPv6的128 位呢?這種提問是對芯片設(shè)計及CPU處理方式不理解造成的,同時也對未來網(wǎng)絡的擴展沒有充分的預見性。芯片設(shè)計中數(shù)值的表示我們知道是全用“0”、“1” 代表,CPU處理字長發(fā)展到現(xiàn)在分別經(jīng)歷了4位、8位、16位、32位、64位等,我們知道,在計算機中,當數(shù)據(jù)能用2的指數(shù)次冪字長位的二進制數(shù)表示時,CPU對數(shù)值的處理效率最高。IPv4地址對應的是32比特字長就是因為當時的互聯(lián)網(wǎng)上的主機CPU字長為32位?,F(xiàn)在的64位機已十分普及,128 位機正在成長中。將地址定為64位在網(wǎng)絡擴展性上顯得不足,定為其它的一個長度在硬件芯片設(shè)計、程序編制方面的效率都將下降,因此從處理效率和未來網(wǎng)絡擴展性上考慮,將IPv6的地址長度定為128位是十分合適的。
3.3.2 IPv6的128位地址是一個什么概念?
IPv6提供128位的地址空間,IPv6所能提供的巨大的地址容量可以從以下幾個方面來說明:
共有2128個不同的IPv6地址,也就是全球可分配地址數(shù)為340,282,366,920,938,463,463,374,607,431,768,211,456個;
若按土地面積分配,每平方厘米可獲得2.2*1020個地址。
IPv6地址耗盡的機會是很小的。在可預見的很長時期內(nèi),IPv6的128位地址長度形成的巨大的地址空間能夠為所有可以想象出的網(wǎng)絡設(shè)備提供一個全球唯一的地址,IPv6充足的地址空間將極大地滿足那些伴隨著網(wǎng)絡智能設(shè)備的出現(xiàn)而對地址增長的需求,例如個人數(shù)據(jù)助理(PDA)、移動電話(Mobile Phone)、家庭網(wǎng)絡接入設(shè)備(HAN)等。
3.3.3 IPv6地址是如何表示的?
IPv4地址表示為點分十進制格式,32位的地址分成4個8位分組,每個8位寫成十進制,中間用點號分隔。而IPv6的128位地址則是以16位為一分組,每個16位分組寫成4個十六進制數(shù),中間用冒號分隔,稱為冒號分十六進制格式。例如:21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A 是一個完整的IPv6地址。
IPv6的地址表示有以下幾種特殊情形:
IPv6地址中每個16位分組中的前導零位可以去除做簡化表示,但每個分組必須至少保留一位數(shù)字。如上例中的地址,去除前導零位后可寫成:21DA:D3:0:2F3B:2AA:FF:FE28:9C5A。
某些地址中可能包含很長的零序列,為進一步簡化表示法,還可以將冒號十六進制格式中相鄰的連續(xù)零位合并,用雙冒號“::”表示?!埃海骸狈栐谝粋€地址中只能出現(xiàn)一次,該符號也能用來壓縮地址中前部和尾部的相鄰的連續(xù)零位。例如地址1080:0:0:0:8:800:200C:417A,0:0:0:0: 0:0:0:1,0:0:0:0:0:0:0:0分別可表示為壓縮格式1080::8:800:200C:417A,::1,:: 。
在IPv4和IPv6混合環(huán)境中,有時更適合于采用另一種表示形式:x:x:x:x:x:x:d.d.d.d,其中x是地址中6個高階16位分組的十六進制值,d是地址中4個低階8位分組的十進制值(標準IPv4表示)。例如地址0:0:0:0:0:0:13.1.68.3 ,0:0:0:0:0:FFFF:129.144.52.38 寫成壓縮形式為::13.1.68.3,::FFFF.129.144.52.38 。
要在一個URL中使用文本IPv6地址,文本地址應該用符號“[”和“]”來封閉。例如文本IPv6地址FEDC:BA98:7654:3210:FEDC:BA98:7654:3210寫作URL示例為
[url=http://[fedc:BA98:7654:3210:FEDC:BA98:7654:3210]:80/index.html]http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80/index.html[/url]
。
3.3.4 IPv6地址為128位,配地址豈不是要花費很多時間?
IPv6協(xié)議支持地址自動配置,這是一種即插即用的機制。IPv6節(jié)點通過地址自動配置得到IPv6地址和網(wǎng)關(guān)地址。
IPv6支持無狀態(tài)地址自動配置和狀態(tài)地址自動配置兩種地址自動配置方式。在無狀態(tài)地址自動配置方式下,需要配置地址的網(wǎng)絡接口先使用鄰居發(fā)現(xiàn)機制獲得一個鏈路本地地址。網(wǎng)絡接口得到這個鏈路本地地址之后,再接收路由器宣告的地址前綴,結(jié)合接口標識得到一個全球地址。而狀態(tài)地址自動配置的方式,如動態(tài)主機配置協(xié)議(DHCP),需要一個DHCP服務器,通過客戶機/服務器模式從DHCP服務器處得到地址配置的信息。
3.3.5 IPv6地址都有哪些類型?
所有類型的IPv6地址都被分配到接口,而不是節(jié)點。IPv6地址是單個或一組接口的128位標識符,有三種類型:
?。?) 單播(Unicast)地址
單一接口的標識符。發(fā)往單播地址的包被送給該地址標識的接口。對于有多個接口的節(jié)點,它的任何一個單播地址都可以用作該節(jié)點的標識符。IPv6單播地址是用連續(xù)的位掩碼聚集的地址,類似于CIDR的IPv4地址。IPv6中的單播地址分配有多種形式,包括全部可聚集全球單播地址、NSAP地址、IPX分級地址、站點本地地址、鏈路本地地址以及運行IPv4的主機地址。單播地址中有下列兩種特殊地址:
不確定地址
單播地址0:0:0:0:0:0:0:0稱為不確定地址。它不能分配給任何節(jié)點。它的一個應用示例是初始化主機時,在主機未取得自己的地址以前,可在它發(fā)送的任何IPv6包的源地址字段放上不確定地址。不確定地址不能在IPv6包中用作目的地址,也不能用在IPv6路由頭中;
回環(huán)地址
單播地址0:0:0:0:0:0:0:1稱為回環(huán)地址。節(jié)點用它來向自身發(fā)送IPv6包。它不能分配給任何物理接口。
(2) 任意播(AnyCast)地址
一組接口(一般屬于不同節(jié)點)的標識符。發(fā)往任意播地址的包被送給該地址標識的接口之一(路由協(xié)議度量距離最近的)。IPv6任意播地址存在下列限制:
· 任意播地址不能用作源地址,而只能作為目的地址;
· 任意播地址不能指定給IPv6主機,只能指定給IPv6路由器;
IPv6任意播地址
?。?) 組播(MultiCast)地址
一組接口(一般屬于不同節(jié)點)的標識符。發(fā)往多播地址的包被送給該地址標識的所有接口。地址開始的11111111標識該地址為組播地址。
IPv6組播地址
IPv6中沒有廣播地址,它的功能正在被組播地址所代替。另外,在IPv6中,任何全“0”和全“1”的字段都是合法值,除非特殊地排除在外的。特別是前綴可以包含“0”值字段或以“0”為終結(jié)。一個單接口可以指定任何類型的多個IPv6地址(單播、任意播、組播)或范圍。
3.3.6 什么是IPv6的可聚集全球單播地址?
IPv6為點對點通信設(shè)計了一種具有分級結(jié)構(gòu)的地址,這種地址被稱為可聚集全球單播地址(Aggregatable Global Unicast Address),它在RFC2374中定義??删奂刂肪哂腥齻€層次的分級結(jié)構(gòu):
公用拓撲:提供公用互聯(lián)網(wǎng)傳送服務的供應商和交換局群體;
站點拓撲:本地的特定站點或組織,不提供到本站點以外節(jié)點的公用傳送服務;
接口標識符:標識鏈路上的接口;
可聚集全球單播地址的分級結(jié)構(gòu)劃分如下圖所示。開始3個地址位是地址類型前綴,用于區(qū)別其它地址類型。其后的13位TLA ID、32位NLA ID、16位SLA ID和 64位主機接口ID,分別用于標識分級結(jié)構(gòu)中自上向下排列的TLA (Top Level Aggregator,頂級聚集體)、NLA(Next Level Aggregator,下級聚集體)、SLA(Site Level Aggregator,站點級聚集體)和主機接口。RES保留,以備將來TLA或NLA擴充用。TLA是與長途服務供應商和電話公司相互連接的公共網(wǎng)絡接入點,它從國際Internet注冊機構(gòu)如IANA處獲得地址。NLA通常是大型ISP,它從TLA處申請獲得地址,并為 SLA分配地址。SLA也可稱為訂戶(subscriber),它可以是一個機構(gòu)或一個小型ISP。SLA負責為屬于它的訂戶分配地址。SLA通常為其訂戶分配由連續(xù)地址組成的地址塊,以便這些機構(gòu)可以建立自己的地址分級結(jié)構(gòu)以識別不同的子網(wǎng)。分級結(jié)構(gòu)的最底層是網(wǎng)絡主機。
IPv6可聚集全球單播地址
設(shè)計這樣的地址格式是為了既支持基于當前供應商的聚集,又支持被稱為交換局的新的聚集類型。其組合使高效的路由聚集可用于直接連接到供應商和連接到交換局兩者的站點上。站點可以選擇連接到兩種類型中的任何一種聚集點。
3.3.7 IPv6的地址分配方式與IPv4有什么區(qū)別?
IPv4中,地址是用戶擁有的。也就是說,一旦用戶從某機構(gòu)處申請到一段地址空間,他就永遠使用該地址空間,而不管他是從哪個因特網(wǎng)服務提供者(ISP)處獲得服務。這種方式的缺點是ISP必須在路由表中為每個用戶的網(wǎng)絡號維護一條表項。隨著用戶數(shù)的增加,會出現(xiàn)大量無法會聚的特殊路由,即使無類別域間路由(CIDR)也不能處理這樣的路由表爆炸現(xiàn)象。
IPv6改變了地址的分配方式,從用戶擁有變成了ISP擁有。全球網(wǎng)絡號由因特網(wǎng)地址分配機構(gòu)(IANA)分配給ISP,用戶的全球網(wǎng)絡地址是ISP地址空間的子集。每當用戶改變ISP時,全球網(wǎng)絡地址必須更新為新ISP提供的地址。這樣ISP能有效地控制路由信息,避免路由爆炸現(xiàn)象的出現(xiàn)。
3.3.8 一臺IPv6主機有多少地址?
通常一臺IPv6主機有多個IPv6地址,即使該主機只有一個單接口。一臺IPv6主機可同時擁有以下幾種單點傳送地址:
· 每個接口的鏈路本地地址;
· 每個接口的單播地址(可以是一個站點本地地址和一個或多個可聚集全球地址);
· 回環(huán)(loopback)接口的回環(huán)地址(::1)。
此外,每臺主機還需要時刻保持收聽以下多點傳送地址上的信息:
· 節(jié)點本地范圍內(nèi)所有節(jié)點組播地址(FF01::1);
· 鏈路本地范圍內(nèi)所有節(jié)點組播地址(FF02::1);
· 請求節(jié)點(solicited-node)組播地址(如果主機的某個接口加入請求節(jié)點組);
· 組播組組播地址(如果主機的某個接口加入任何組播組)。
3.3.9 一臺IPv6路由器有多少地址?
一臺IPv6路由器可被分配以下幾種單點傳送地址:
· 每個接口的鏈路本地地址;
· 每個接口的單播地址(可以是一個站點本地地址和一個或多個可聚集全球地址);
· 子網(wǎng)-路由器任意播地址;
· 其他任意播地址(可選);
· 回環(huán)接口的回環(huán)地址(::1)。
同樣,除以上這些地址外,路由器需要時刻保持收聽以下多點傳送地址上的信息流:
· 節(jié)點本地范圍內(nèi)的所有節(jié)點組播地址(FF01::1);
· 節(jié)點本地范圍內(nèi)的所有路由器組播地址(FF01::2);
· 鏈路本地范圍內(nèi)的所有節(jié)點組播地址(FF02::1);
· 鏈路本地范圍內(nèi)的所有路由器組播地址(FF02::2);
· 站點本地范圍內(nèi)的所有路由器組播地址(FF05::2);
· 請求節(jié)點(solicited-node)組播地址(如果路由器的某個接口加入請求節(jié)點組);
· 組播組組播地址(如果路由器的某個接口加入任何組播組)。
3.4 地址自動配置技術(shù)
3.4.1 IPv6如何實現(xiàn)“即插即用”?
“即插即用”是指無需任何人工干預,就可以將一個節(jié)點插入IPv6網(wǎng)絡并在網(wǎng)絡中啟動,IPv6使用了兩種不同的機制來支持即插即用網(wǎng)絡連接:啟動協(xié)議(BOOTstrap Protocol,BOOTP)和動態(tài)主機配置協(xié)議(DHCP)。這兩種機制允許IP節(jié)點從特殊的BOOTP服務器或DHCP服務器獲取配置信息。這些協(xié)議采用“狀態(tài)自動配置”(Stateful Autoconfiguration),即服務器必須保持每個節(jié)點的狀態(tài)信息,并管理這些保存的信息。
狀態(tài)自動配置的問題在于,用戶必須保持和管理特殊的自動配置服務器以便管理所有“狀態(tài)”,即所容許的連接及當前連接的相關(guān)信息。對于有足夠資源來建立和保持配置服務器的機構(gòu),該系統(tǒng)可以接受;但是對于沒有這些資源的小型機構(gòu),工作情形較差。
3.4.2 除了狀態(tài)自動配置,IPv6還提供什么自動配置服務?
除了狀態(tài)自動配置,IPv6還采用了一種被稱為無狀態(tài)自動配置(Stateless Auto Configuration)的自動配置服務。RFC2462中描述了IPv6的無狀態(tài)自動配置。無狀態(tài)自動配置要求本地鏈路支持組播,而且網(wǎng)絡接口能夠發(fā)送和接收組播包。無狀態(tài)自動配置過程要求節(jié)點采用如下步驟:
首先,進行自動配置的節(jié)點必須確定自己的鏈路本地地址;
然后,必須驗證該鏈路本地地址在鏈路上的唯一性;
最后,節(jié)點必須確定需要配置的信息。該信息可能是節(jié)點的IP地址,或者是其他配置信息,或者兩者皆有。如果需要IP地址,節(jié)點必須確定是使用無狀態(tài)自動配置過程還是使用狀態(tài)自動配置過程來獲得。
具體地說,在無狀態(tài)自動配置過程中,主機首先通過將它的網(wǎng)卡MAC地址附加在鏈路本地地址前綴1111111010之后,產(chǎn)生一個鏈路本地單播地址(IEEE已經(jīng)將網(wǎng)卡MAC地址由48位改為了64位。如果主機采用的網(wǎng)卡的MAC地址依然是48位,那么IPv6網(wǎng)卡驅(qū)動程序會根據(jù)IEEE的一個公式將48位MAC地址轉(zhuǎn)換為64位MAC地址)。接著主機向該地址發(fā)出一個鄰居發(fā)現(xiàn)請求(Neighbor Discovery Request),以驗證地址的唯一性。如果請求沒有得到響應,則表明主機自我配置的鏈路本地單播地址是唯一的。否則,主機將使用一個隨機產(chǎn)生的接口ID 組成一個新的鏈路本地單播地址。然后,以該地址為源地址,主機向本地鏈路中所有路由器多點傳送一個路由器請求(Router Solicitation)來請求配置信息,路由器以一個包含一個可聚集全球單播地址前綴和其它相關(guān)配置信息的路由器宣告(Router Advertisement)作為響應。主機用它從路由器得到的全球地址前綴加上自己的接口ID,自動配置全球地址,然后就可以與Internet中的其它主機通信了。
如果沒有路由器為網(wǎng)絡上的節(jié)點服務,也就是本地網(wǎng)絡孤立于其他網(wǎng)絡,則節(jié)點必須尋找配置服務器來完成其配置;否則,節(jié)點必須偵聽路由器宣告報文。這些報文周期性地發(fā)往所有主機的組播地址,以指明諸如網(wǎng)絡地址和子網(wǎng)地址等配置信息。節(jié)點可以等待路由器宣告,也可以通過發(fā)送組播請求給所有路由器的組播地址來請求路由器發(fā)送宣告。一旦收到路由器的響應,節(jié)點就可以使用響應的信息來完成自動配置。
使用無狀態(tài)自動配置,無需手動干預就能夠改變網(wǎng)絡中所有主機的IP地址。例如,當企業(yè)更換了聯(lián)入Internet的ISP時,將從新ISP處得到一個新的可聚集全球地址前綴。ISP把這個地址前綴從它的路由器上傳送到企業(yè)路由器上。由于企業(yè)路由器將周期性地向本地鏈路中的所有主機多點傳送路由器宣告,因此企業(yè)網(wǎng)絡中所有主機都將通過路由器宣告收到新的地址前綴,此后,它們就會自動產(chǎn)生新的IP地址并覆蓋舊的IP地址。
3.5 域名解析技術(shù)
3.5.1 IPv6域名系統(tǒng)的體系結(jié)構(gòu)是什么樣的?
IPv6網(wǎng)絡中的DNS與IPv4的DNS在體系結(jié)構(gòu)上是一致的,都是采用樹型結(jié)構(gòu)的域名空間,如下圖所示。IPv4協(xié)議與IPv6協(xié)議的不同并不意味著IPv4 DNS體系和IPv6 DNS體系需要各自獨立,相反,DNS的體系和域名空間必須一致,即IPv4和IPv6共同擁有統(tǒng)一的域名空間。在IPv4到IPv6的過渡階段,域名可以同時對應于多個IPv4和IPv6的地址。以后隨著IPv6網(wǎng)絡的普及,IPv6地址將逐漸取代IPv4地址。下圖的最上方是DNS樹形結(jié)構(gòu)中唯一的一個根(Root),用點號“?!北硎尽8南乱患壏Q為頂級域(Top Level Domain,TLD),也稱一級域。頂級域的下級就是二級域(Second Level Domain,SLD),二級域的下級就是三級域,依次類推。每個域都是其上級域的子域(Sub Domain),比如“.net.cn”是“.cn”的子域,而“cnnic.net.cn”既是“net.cn”的子域,同時也是“.cn”的子域。
DNS樹上的每一個節(jié)點都有一個標識(Label),根節(jié)點的標識是“空”(即長度為0),其它節(jié)點的標識的長度在1到63字節(jié)之間。一個節(jié)點的域名是由從這個節(jié)點到根節(jié)點的路徑上的所有標識從左到右順序排列組成的,標識之間用“。”分隔。例如
http://www.cnnic.net.cn/
DNS的整個域名空間劃分成許多的區(qū)(Zone),見上圖中的橢圓標記,數(shù)據(jù)采用分布式存儲。每個區(qū)都有域名服務器(包括主服務器和輔服務器),以資源記錄(Resource Record)的形式來存儲域名信息。資源記錄包括了主機名(域名)和IP地址的對應,以及子域服務器的授權(quán)等多種類型。
用戶在使用DNS服務時,可以不必細致地了解DNS域名空間的樹型結(jié)構(gòu)體系,只需在設(shè)置網(wǎng)絡時指定一個DNS服務器或使用動態(tài)主機配置(DHCP)等相關(guān)技術(shù),從而使用戶的應用程序可以通過操作系統(tǒng)內(nèi)嵌的解析器(Resolver)訪問DNS系統(tǒng),查詢域名相關(guān)的網(wǎng)絡資源信息。
3.5.2 如何自動發(fā)現(xiàn)提供解析服務的DNS服務器?
?。?) 無狀態(tài)的DNS服務器發(fā)現(xiàn)
無狀態(tài)DNS服務器自動發(fā)現(xiàn)有以下幾種方式:
為子網(wǎng)內(nèi)部的DNS服務器配置站點范圍內(nèi)的任意播地址。要進行自動配置的節(jié)點以該任意播地址為目的地址發(fā)送服務器發(fā)現(xiàn)請求,詢問DNS服務器地址、域名和搜索路徑等DNS信息。這個請求到達距離最近的DNS服務器,服務器根據(jù)請求,回答DNS服務器單播地址、域名和搜索路徑等DNS信息。節(jié)點根據(jù)服務器的應答配置本機DNS信息,以后的DNS請求就直接用單播地址發(fā)送給DNS服務器。
與第一種方式相同,只是不用站點范圍內(nèi)的任意播地址,而采用站點范圍內(nèi)的組播地址或鏈路組播地址等。
一直用站點范圍內(nèi)的任意播地址作為DNS服務器的地址,所有的DNS解析請求都發(fā)送給這個任意播地址。距離最近的DNS服務器負責解析這個請求,得到解析結(jié)果后把結(jié)果返回請求節(jié)點,而不像第一種方式是把DNS服務器單播地址、域名和搜索路徑等DNS信息告訴節(jié)點。
從網(wǎng)絡擴展性、安全性、實用性等多方面綜合考慮,第一種采用站點范圍內(nèi)的任意播地址作為DNS服務器地址的方式相對較好。
(2) 有狀態(tài)的DNS服務器發(fā)現(xiàn)
有狀態(tài)的DNS服務器發(fā)現(xiàn)方式是通過類似DHCP的服務器把DNS服務器地址、域名和搜索路徑等DNS信息告知節(jié)點。當然,這需要額外的服務器。
3.5.3 在IPv4到IPv6的過渡階段如何實現(xiàn)DNS?
在IPv4到IPv6的過渡過程中,作為Internet基礎(chǔ)架構(gòu)的DNS服務也要支持這種網(wǎng)絡協(xié)議的升級和轉(zhuǎn)換??梢杂脙煞N方法實現(xiàn)IPv4到IPv6過渡階段的DNS:
?。?) DNS-ALG與NAT-PT相結(jié)合的方法
IPv4和IPv6的DNS在記錄格式等方面有所不同,為了實現(xiàn)IPv4網(wǎng)絡和IPv6網(wǎng)絡之間的DNS查詢和響應,可以將應用層網(wǎng)關(guān)DNS-ALG與NAT-PT相結(jié)合,作為IPv4和IPv6網(wǎng)絡之間的翻譯器。例如,IPv4的地址域名映射使用“A”記錄,而IPv6使用“AAAA”或“A6”記錄。那么,IPv4節(jié)點發(fā)送到IPv6網(wǎng)絡的DNS查詢請求是“A”記錄,DNS-ALG就把“A”改寫成“AAAA”,并發(fā)送給IPv6網(wǎng)絡中的DNS服務器。當服務器的回答到達DNS-ALG時,DNS-ALG修改回答,把“AAAA”改為“A”,把IPv6地址改成DNS-ALG地址池中的IPv4轉(zhuǎn)換地址,把這個IPv4轉(zhuǎn)換地址和IPv6地址之間的映射關(guān)系通知NAT-PT,并把這個IPv4轉(zhuǎn)換地址作為解析結(jié)果返回IPv4主機。IPv4主機就以這個IPv4轉(zhuǎn)換地址作為目的地址與實際的IPv6主機通過NAT-PT通信。這個過程示意如下圖。
(2) 雙協(xié)議棧方式
對于采用雙協(xié)議棧方式的過渡方法,在DNS服務器中同時存在“A”記錄和“AAAA”(或“A6”)記錄。由于節(jié)點既可以處理IPv4協(xié)議,也可以處理IPv6協(xié)議,因此無需類似DNS ALG的轉(zhuǎn)換設(shè)備。無論DNS服務器回答“A”記錄還是“AAAA”記錄,都可以進行通信。
3.6 鄰居發(fā)現(xiàn)
3.6.1 IPv6鄰居發(fā)現(xiàn)協(xié)議包括哪些內(nèi)容?
IPv6定義了鄰居發(fā)現(xiàn)協(xié)議(Neighbor Discovery protocol,NDP),它使用一系列IPv6控制信息報文(ICMPv6)來實現(xiàn)相鄰節(jié)點(同一鏈路上的節(jié)點)的交互管理,并在一個子網(wǎng)中保持網(wǎng)絡層地址和鏈路層地址之間的映射。鄰居發(fā)現(xiàn)協(xié)議中定義了5種類型的信息:路由器宣告、路由器請求、路由重定向、鄰居請求和鄰居宣告。通過這些信息,實現(xiàn)了對以下功能的支持:
· 路由器發(fā)現(xiàn):即幫助主機來識別本地路由器;
· 前綴發(fā)現(xiàn):節(jié)點使用此機制來確定指明鏈路本地地址的地址前綴以及必須發(fā)送給路由器轉(zhuǎn)發(fā)的地址前綴;
· 參數(shù)發(fā)現(xiàn):幫助節(jié)點確定諸如本地鏈路MTU之類的信息;
· 地址自動配置:用于IPv6節(jié)點自動配置;
· 地址解析:替代了ARP和RARP,幫助節(jié)點從目的IP地址中確定本地節(jié)點(即鄰居)的鏈路層地址;
· 下一跳確定:可用于確定包的下一個目的地,即可確定包的目的地是否在本地鏈路上。如果在本地鏈路,下一跳就是目的地;否則,包需要選路,下一跳就是路由器,鄰居發(fā)現(xiàn)可用于確定應使用的路由器;
· 鄰居不可達檢測:幫助節(jié)點確定鄰居(目的節(jié)點或路由器)是否可達;
· 重復地址檢測:幫助節(jié)點確定它想使用的地址在本地鏈路上是否已被占用;
· 重定向:有時節(jié)點選擇的轉(zhuǎn)發(fā)路由器對于待轉(zhuǎn)發(fā)的包而言并非最佳。這種情況下,該轉(zhuǎn)發(fā)路由器可以對節(jié)點進行重定向,使它將包發(fā)送給更佳的路由器。例如,節(jié)點將發(fā)往Internet的包發(fā)送給為節(jié)點所在的內(nèi)部網(wǎng)服務的默認路由器,該內(nèi)部網(wǎng)路由器可以對節(jié)點進行重定向,以使其將包發(fā)送給連接在同一本地鏈路上的 Internet路由器。
3.6.2 IPv6鄰居發(fā)現(xiàn)協(xié)議與IPv4地址解析協(xié)議有什么區(qū)別?
IPv6不再執(zhí)行地址解析協(xié)議(ARP)或反向地址解析協(xié)議(RARP),而以鄰居發(fā)現(xiàn)協(xié)議中的相應功能代替,IPv6鄰居發(fā)現(xiàn)協(xié)議與IPv4地址解析協(xié)議主要區(qū)別如下:
IPv4中地址解析協(xié)議ARP是獨立的協(xié)議,負責IP地址到鏈路層地址的轉(zhuǎn)換,對不同的鏈路層協(xié)議要定義不同的ARP協(xié)議。IPv6中鄰居發(fā)現(xiàn)協(xié)議NDP包含了ARP的功能,且運行于因特網(wǎng)控制報文協(xié)議ICMPv6上,更具有一般性,包括更多的內(nèi)容,而且適用于各種鏈路層協(xié)議;
ARP協(xié)議以及ICMPv4路由器發(fā)現(xiàn)和ICMPv4重定向報文基于廣播,而NDP協(xié)議的鄰居發(fā)現(xiàn)報文基于高效的組播和單播;
可達性檢測的目的是確認相應IP地址代表的主機或路由器是否還能收發(fā)報文,IPv4沒有統(tǒng)一的解決方案。NDP中定義了可達性檢測過程,保證IP報文不會發(fā)送給“黑洞”。
3.7 超長數(shù)據(jù)傳送問題
3.7.1 IPv6如何解決超長數(shù)據(jù)的傳送問題?
IPv6要求互聯(lián)網(wǎng)上的每條鏈路具有1280或更多個八位組的最大傳輸單元(MTU)。無法在一段之內(nèi)傳送1280個八位組的鏈路必須根據(jù)鏈路的情況在IPv6下層的協(xié)議中提供分段和重組機制。具有可配置MTU的鏈路,比如PPP鏈路必須配置為具有至少1280個八位組的MTU;要發(fā)送大于路徑MTU的包,節(jié)點可以使用IPv6分段報頭,在源節(jié)點將包分段,并在目的節(jié)點將包重組。
3.7.2 IPv6通信中源節(jié)點如何發(fā)現(xiàn)到目的節(jié)點的最大傳輸單元?
RFC1981 中描述了一種動態(tài)發(fā)現(xiàn)路徑最大傳輸單元(PMTU)的方法。基本思想是源節(jié)點最初假定到目的節(jié)點的一條路徑的PMTU是這條路徑第一跳的已知MTU。如果發(fā)往這條路徑的任何包由于太大而不能被路徑上的一些節(jié)點轉(zhuǎn)發(fā),那些節(jié)點將丟棄這些包并發(fā)回ICMPv6包太大消息。源節(jié)點收到這樣一個消息后應根據(jù)包太大消息中報告的MTU壓縮的那一跳的MTU值減小它為這條路徑假定的PMTU。當節(jié)點對PMTU的估計值小于或等于實際PMTU時路徑MTU發(fā)現(xiàn)過程結(jié)束。要注意在這個過程中“發(fā)包-收到包太大消息”的循環(huán)可能反復多次,因為路徑上總潛在可能存在MTU更小的鏈路。節(jié)點也可以通過停止發(fā)送比IPv6最小鏈路MTU大的包來終止這個發(fā)現(xiàn)過程。
3.8 路由技術(shù)
3.8.1 IPv6在路由方面有什么新特點?
IPv6采用聚類機制,定義了非常靈活的層次尋址及路由結(jié)構(gòu),同一層次上的多個網(wǎng)絡在上層路由器中表示為一個統(tǒng)一的網(wǎng)絡前綴,這樣可以顯著減少路由器必須維護的路由表項。在理想情況下,一個核心主干網(wǎng)路由器只須維護不超過8192個表項。這大大降低了路由器的尋路和存儲開銷。
IPv6協(xié)議所帶來的另一個特點是提供數(shù)據(jù)流標簽,即流量識別。路由器可以識別屬于某個特定流量的數(shù)據(jù)包,并且這條信息第一次接收時即被記錄下來,下一次這個路由器接收到同樣的流量數(shù)據(jù)包后,路由器采用識別的記錄情況,而不需查對路徑選擇表,從而減少了數(shù)據(jù)處理的時間。
多點傳送路由是指目的地址是一個多點傳送地址的信息包路由。在IPv6中,多點傳送路由的問題與IPv4中類似,只是功能有所加強,分別成為了ICMPv6和OSPFv6的一部分,而不是IPv4中的單獨協(xié)議,從而成為了IPv6整體的一部分。為了路由多點傳送信息包,IPv6中創(chuàng)建了一個分布樹(多點傳送樹)到達組里的所有成員。
3.8.2 IPv6中可用的路由協(xié)議包括哪些?
IPv6主要使用三種路由協(xié)議:RIPv6(Routing Information Protocol,路由信息協(xié)議)、OSPFv6(Open Shortest Path First,開放最短路徑優(yōu)先)和IDRPv2(Inter-Domain Routing Protocol,域間路由協(xié)議)以及可能的EIGRP和雙層的IS-IS。
RIPv6是可以與IPv6共同使用的RIP版本。更新后的RIP允許接收128位地址,沒有增加新特性,沒有消除以前限制的相關(guān)前綴長度。這種選擇的原因是為了保持RIPv6的簡單性,這樣它可以在非常簡單的設(shè)備上實現(xiàn)。
OSPFv6是可以用于IPv6的OSPF版本,它也是IPv6推薦的內(nèi)部網(wǎng)關(guān)路由協(xié)議(IGP),作為所有路由器廠商的標準實現(xiàn),它適于大型網(wǎng)絡。OSPFv6作為OSPF的更新,允許傳送新的128位地址和相關(guān)的前綴長度,在OSPFv6中,區(qū)域定義為128位地址。
IDRP是和IPv6共同使用的外部網(wǎng)關(guān)路由協(xié)議(EGP),IDRP是一個路徑矢量協(xié)議,在OSI結(jié)構(gòu)中是設(shè)計在無連接網(wǎng)絡協(xié)議(CLNP,ISO 8473)使用的,在Internet上作為EGP從BGP-4得出,適于和IPv6共同使用的IDRP版本是IDRPv2。
3.9 組播技術(shù)
3.9.1 IPv6在支持組播方面有什么特征?
IPv6加強了組播功能,這是一種可將信息傳遞給所有已登記了欲接收該消息的主機的功能。使用組播功能可以同時傳遞數(shù)據(jù)給大量的用戶,傳遞過程只會占有一些公共或?qū)S脦掗_銷而不會浪費帶寬在整個網(wǎng)絡里廣播。在IPv6的組播功能中增加了 “標志”,可以區(qū)分永久性與臨時性地址,更有利于組播功能的實現(xiàn)。IPv6還包含了一些限制組播消息傳遞范圍的一些特性,這樣,組播消息可以被局限在一個特定的位置、區(qū)域、公司或其它約定范圍,從而減少了帶寬的使用并可提供安全性。組播的意義在于只有用戶加入相應的組播組才能收到發(fā)給該組的信息,這對于視頻節(jié)目的發(fā)送來說意義尤其重大,模擬電視中的頻道概念就完全可以用組播組的概念來代替。而且組播組的范圍可以包括同一本地網(wǎng)、同一機構(gòu)網(wǎng)、甚至IPv6全球地址空間中的任何位置的節(jié)點,這就為網(wǎng)絡多媒體信息服務提供了更大的靈活性。
3.10 對移動性的支持
3.10.1 什么是移動IPv6?
移動IPv6協(xié)議為用戶提供可移動的IP數(shù)據(jù)服務,讓用戶可以在世界各地都使用同樣的IPv6地址,非常適合未來無線上網(wǎng)。
現(xiàn)在的互聯(lián)網(wǎng)協(xié)議IPv4,原本不提供任何移動性支持。針對這一情況,IETF于1996年制訂了支持移動互聯(lián)網(wǎng)設(shè)備的協(xié)議,稱為移動IP,其協(xié)議有兩種版本:基于IPv4的移動IPv4和基于IPv6的移動IPv6。
移動IP的主要目標是:不管是連接在本地鏈路還是移動到外地網(wǎng)絡,移動節(jié)點總是通過本地地址尋址。移動IP在網(wǎng)絡層加入了新的特性,在改變網(wǎng)絡連接點時,運行在節(jié)點上的應用程序不用修改或配置仍然可用。這些特性使得移動節(jié)點總是通過本地地址通信。這種機制對于IP層以上的協(xié)議層是完全透明的。移動節(jié)點所在的本地鏈路稱為移動節(jié)點的家鄉(xiāng)鏈路,移動節(jié)點的本地地址稱為家鄉(xiāng)地址。
移動IPv6操作包括家鄉(xiāng)代理注冊、三角路由、路由優(yōu)化、綁定管理、移動檢測和家鄉(xiāng)代理發(fā)現(xiàn)。移動IPv6的工作機制如下圖所示。圖中有3條鏈路和3個系統(tǒng)。鏈路A上有一個路由器提供家鄉(xiāng)代理服務,這個鏈路是移動節(jié)點的家鄉(xiāng)鏈路。移動節(jié)點從鏈路A移動到鏈路B。鏈路C上有一個通信節(jié)點,可以是移動的或者靜止的。
當移動節(jié)點連接到外地鏈路時,除了家鄉(xiāng)地址外,它還可以通過一個或多個轉(zhuǎn)交地址進行通信。轉(zhuǎn)交地址是移動節(jié)點在外地鏈路時的IP地址。移動節(jié)點的家鄉(xiāng)地址和轉(zhuǎn)交地址之間的關(guān)聯(lián)稱為“綁定”。移動節(jié)點的轉(zhuǎn)交地址可以自動配置。
移動IPv6的實現(xiàn)離不開家鄉(xiāng)鏈路上的家鄉(xiāng)代理。當移動節(jié)點離開本地時,要向家鄉(xiāng)鏈路上的一個路由器注冊自己的一個轉(zhuǎn)交地址,要求這個路由器作為自己的家鄉(xiāng)代理。家鄉(xiāng)代理需要用代理鄰居發(fā)現(xiàn)來截獲家鄉(xiāng)鏈路上發(fā)往移動節(jié)點家鄉(xiāng)地址的數(shù)據(jù)包,然后通過隧道將截獲的數(shù)據(jù)包發(fā)往移動節(jié)點的主轉(zhuǎn)交地址。為了通過隧道發(fā)送截獲的數(shù)據(jù)包,家鄉(xiāng)代理要把數(shù)據(jù)包進行IPv6封裝,外部的IPv6報頭地址設(shè)為移動節(jié)點的主轉(zhuǎn)交地址。
當移動節(jié)點離開本地時,家鄉(xiāng)鏈路的一些節(jié)點可能重新配置,導致執(zhí)行家鄉(xiāng)代理功能的路由器被其他路由器所代替。在這種情況下,移動節(jié)點可能不知道自己家鄉(xiāng)代理的IP地址。移動IPv6提供了一種動態(tài)家鄉(xiāng)代理地址發(fā)現(xiàn)機制,移動節(jié)點可以動態(tài)發(fā)現(xiàn)家鄉(xiāng)鏈路上家鄉(xiāng)代理的IP地址,離開本地時,它在這個家鄉(xiāng)代理上注冊轉(zhuǎn)交地址。
移動IPv6還定義了一個附加的IPv6目的選項——家鄉(xiāng)地址選項。作為發(fā)送方的移動節(jié)點通過在發(fā)送的數(shù)據(jù)包中攜帶家鄉(xiāng)地址選項可以把家鄉(xiāng)地址告訴作為接收方的通信節(jié)點,而轉(zhuǎn)交地址對于移動IPv6以上層(如傳輸層)是透明的。
在IPv6中,移動節(jié)點能把自己的轉(zhuǎn)交地址告訴每個通信節(jié)點,使通信節(jié)點和移動節(jié)點之間進行直接路由,避免了三角路由問題。由于未來互聯(lián)網(wǎng)上會有大量的無線移動節(jié)點,因此,在路由效率上的大規(guī)模改善可能對互聯(lián)網(wǎng)的可擴展性產(chǎn)生本質(zhì)的影響。
移動IPv6具有誘人的應用前景,它為新一代無線用戶提供了移動支持,但在移動越區(qū)切換、QoS、安全等方面仍不能滿足實際應用的需要。目前,許多研究機構(gòu)(包括移動通信的著名廠商諾基亞、愛立信等)都在研究這些關(guān)鍵技術(shù)。
3.10.2 為什么IPv6能夠比IPv4更好地解決移動問題?
移動IPv6與移動IPv4相比優(yōu)勢明顯,主要是其設(shè)計吸收了移動IPv4的發(fā)展經(jīng)驗,并且抓住了設(shè)計新版本IP協(xié)議(IPv6)的大好時機,結(jié)合了IPv6的很多新特性。IPv6的出現(xiàn)是移動計算的一個重要里程碑,IPv6的下列主要特性對于未來的移動無線網(wǎng)絡的發(fā)展至關(guān)重要:足夠多的IP地址、安全數(shù)據(jù)報頭的實現(xiàn)、目的選項提高了路由效率、地址自動配置、避免入口過濾、錯誤恢復沒有軟狀態(tài)“瓶頸”。
移動IPv6協(xié)議的優(yōu)點在移動終端數(shù)量持續(xù)上漲的今天尤其突出。IPv6將是實現(xiàn)移動互聯(lián)網(wǎng)上許多新型而精彩的服務的關(guān)鍵。盡管IPv4中也存在移動協(xié)議,但二者之間存在本質(zhì)的區(qū)別:移動IPv4協(xié)議不適用于數(shù)量龐大的移動終端。目前全世界的移動終端數(shù)就超過7億個,而且移動電話終端的潮流才剛剛開始,包含諸如門、防盜自動警鈴等設(shè)備的下一輪終端浪潮已經(jīng)顯露出來。移動IP需要為每個設(shè)備提供一個全球唯一的IP地址,不久的將來,當每個人都要攜帶一個或多個移動終端時,IPv4將沒有足夠的地址空間為在公共互聯(lián)網(wǎng)上運行的每個移動終端分配一個全球唯一的IP地址,而IPv6卻可以實現(xiàn)這一點。除了IPv6的其他優(yōu)點外,單這一項功能就可以實現(xiàn)個人之間的直接通信。從另一個角度說,移動IPv6能夠通過簡單的擴展,滿足大規(guī)模移動用戶的需求。這樣,它就能在全球范圍內(nèi)解決有關(guān)網(wǎng)絡和訪問技術(shù)之間的移動性問題。另外,IPv4協(xié)議中對移動性的支持不是強制的,而移動IPv6是IPv6協(xié)議中不可或缺的部分,所有IPv6的實現(xiàn)都必須支持移動性。
3.11 安全問題
3.11.1 IPv6能徹底解決互聯(lián)網(wǎng)中的安全問題嗎?
原來的互聯(lián)網(wǎng)安全機制只建立于應用程序級,如E-mail加密、SNMPv2網(wǎng)絡管理安全、接入安全(HTTP、SSL)等,無法從IP層來保證Internet的安全。為了加強互聯(lián)網(wǎng)的安全性,從1995年開始,IETF著手研究制定了一套IP安全(IP Security,IPSec)協(xié)議用于保護IP通信的安全。IPSec提供既可用于IPv4也可用于IPv6的安全性機制,它是IPv6的一個組成部分,也是IPv4的一個可選擴展協(xié)議。通過集成IPSec,IPv6實現(xiàn)了IP級的安全。IPSec提供如下安全性服務:訪問控制、無連接的完整性、數(shù)據(jù)源身份認證、防御包重傳攻擊、保密、有限的業(yè)務流保密性。IPSec的認證報頭(Authentication Header,AH,RFC2402中描述)協(xié)議定義了認證的應用方法,封裝安全負載(Encapsulating Security Payload,ESP,RFC2406中描述)協(xié)議定義了加密和可選認證的應用方法。IPSec安全性服務完全通過AH和ESP頭相結(jié)合的機制來提供,當然還要有正確的相關(guān)密鑰管理協(xié)議。在實際進行IP通信時,可以根據(jù)安全需求同時使用這兩種協(xié)議或選擇使用其中的一種。
IPv6實質(zhì)上不會比IPv4更加安全。IPv6標準的起草者、思科總部的兩位“杰出網(wǎng)絡技術(shù)領(lǐng)袖”Fred Baker和Tony Hain認為IPv6從根本上來說,只是IP地址改變的協(xié)議包,并不能解決現(xiàn)在的互聯(lián)網(wǎng)協(xié)議IPv4中的安全問題。但是由于IPSec提供的端到端安全性的兩個基本組件——認證和加密——都是IPv6協(xié)議的必備組件,而在IPv4中,它們只是可選組件,因此,采用IPv6,安全性會更加簡便、一致。更重要的是,IPv6使我們有機會在將網(wǎng)絡轉(zhuǎn)換到這種新型協(xié)議的同時發(fā)展端到端安全性。
3.11.2 為解決IPv6網(wǎng)絡安全問題,傳統(tǒng)的安全設(shè)備需要做那些改進?
IPv6網(wǎng)絡中仍需要使用防火墻、入侵檢測系統(tǒng)等傳統(tǒng)的安全設(shè)備,但由于IPv6的一些新特點,IPv4網(wǎng)中現(xiàn)有的這些安全設(shè)備在IPv6網(wǎng)中不能直接使用,還需要做些改進:
防火墻的設(shè)計
由于IPv6相對IPv4在數(shù)據(jù)報頭上有了很大的改變,所以原來的防火墻產(chǎn)品在IPv6網(wǎng)絡上不能直接使用,必須做一些改進。針對IPv6的Socket套接口函數(shù)已經(jīng)在RFC3493:Basic Socket Interface Extensions for IPv6中定義,以前的應用程序都必須參考新的API做相應的改動。
IPv4中防火墻過濾的依據(jù)是IP地址和TCP/UDP端口號。IPv4中IP頭部和TCP頭部是緊接在一起的,而且其長度是固定的,所以防火墻很容易找到頭部,并應用相應的策略。然而在IPv6中TCP/UDP報頭的位置有了根本的變化,它們不再是緊連在一起的,通常中間還間隔有其他的擴展頭部,如路由選項頭部,AH/ESP頭部等。防火墻必須讀懂整個數(shù)據(jù)包才能進行過濾操作,這對防火墻的處理性能會有很大的影響。
入侵檢測系統(tǒng)(IDS)的設(shè)計
在IPv6下也使我們不得不放棄以往的網(wǎng)絡監(jiān)控技術(shù),投身一個全新的研究領(lǐng)域。首先,IDS產(chǎn)品同防火墻一樣,在IPv6下不能直接運行,還要做相應的修改。其次,IDS的工作原理實際上是一個監(jiān)聽器,接收網(wǎng)段上的所有數(shù)據(jù)包,并對其進行分析,從而發(fā)現(xiàn)攻擊,并實施相應的報警措施。但是,如果使用傳輸模式進行端到端的加密,IDS就無法工作,因為它接收的是加密的數(shù)據(jù)包,無法理解。當然,解決方案之一是讓IDS能對這些數(shù)據(jù)包進行解密,但這樣勢必會帶來新的安全問題。同時IPv6的可靠性是否如最初所設(shè)想的那樣,也有待時間的考驗。
由于IPv6中引入了網(wǎng)絡層的加密技術(shù),未來網(wǎng)絡上的數(shù)據(jù)通訊的保密性將會越來越強,這使網(wǎng)絡入侵檢測系統(tǒng)和主機入侵檢測引擎也面臨在多種不同平臺如何部署的問題。這就需要研究IDS新的部署方式,再下一步,研究如何才能在任何網(wǎng)絡狀況、任何服務器、任何客戶端、任何應用環(huán)境都能進行適當?shù)淖赞D(zhuǎn)換和自適應。
3.12 服務質(zhì)量
3.12.1 為更好地提供服務質(zhì)量,IPv6協(xié)議作了哪些考慮?
從協(xié)議的角度看,IPv6與目前的IPv4提供相同的服務質(zhì)量(QoS),但是IPv6的優(yōu)點體現(xiàn)在能提供不同的服務。這些優(yōu)點來自于IPv6的包頭結(jié)構(gòu)中新增的優(yōu)先級字段和流標簽字段。優(yōu)先級字段擴大到1個字節(jié),這就可以定義256個級別的優(yōu)先級,對各種多媒體信息根據(jù)緊急性確定數(shù)據(jù)包的優(yōu)先級,從而保證每一項服務都能達到用戶滿意的質(zhì)量。而有了20位長的流標簽字段,在傳輸過程中,中間的各節(jié)點就可以識別和分開處理任何IP地址流。在IPv6中,同一個業(yè)務流的所有數(shù)據(jù)包采用相同的流標簽,這樣當路由器檢測到相同的流標簽的時候就采用相同的路徑發(fā)出去,而不需要為每一個數(shù)據(jù)包重新選擇路由,從而大大提高了數(shù)據(jù)包轉(zhuǎn)發(fā)的效率,降低了端到端的延遲。盡管對流標簽的準確應用還沒有制定出有關(guān)標準,但將來它會用于基于服務級別的新計費系統(tǒng)。此外,在支持 “總是在線”連接、防止服務中斷以及提高網(wǎng)絡性能方面,IPv6也有助于改進服務質(zhì)量。
IPv6實現(xiàn)QoS的協(xié)議是IETF的資源保留協(xié)議(Resource Reserve Protocol,RSVP)。主機用RSVP代表應用數(shù)據(jù)流(指可以由路由器或者轉(zhuǎn)發(fā)數(shù)據(jù)的主機辨別的相關(guān)數(shù)據(jù)包的流,在IPv6協(xié)議下就是擁有相同的流標簽的流)向網(wǎng)絡請求特定的服務質(zhì)量,例如基于平均值的最大帶寬、最大接收延遲、優(yōu)先隊列以及其他參數(shù),主機也可以指定一個特定的網(wǎng)絡服務級別,這類似于數(shù)字視頻廣播(Digital Video Broadcasting,DVB)中的網(wǎng)絡信息表的概念。RSVP帶著這個請求通過網(wǎng)絡,訪問這個數(shù)據(jù)流經(jīng)過的網(wǎng)絡的每個節(jié)點。在每個節(jié)點上,RSVP 試圖為這個流進行資源保留。這使得提供具有服務質(zhì)量的圖像和其它實時業(yè)務成為可能。
3.13 IPv4向IPv6的轉(zhuǎn)換
3.13.1 什么是IPv6轉(zhuǎn)換機制?為什么需要轉(zhuǎn)換機制?
IPv6不可能立刻替代IPv4,因此在相當一段時間內(nèi)IPv4和IPv6會共存在一個環(huán)境中。要提供平穩(wěn)的轉(zhuǎn)換過程,使得對現(xiàn)有的使用者影響最小,就需要有良好的轉(zhuǎn)換機制。目前,這個議題是IETF ngtrans工作小組的主要目標,有許多轉(zhuǎn)換機制被提出,部分已被用于6Bone上。IETF推薦了雙協(xié)議棧、隧道技術(shù)以及NAT等轉(zhuǎn)換機制:
IPv6/IPv4雙協(xié)議棧技術(shù)
簡單地說,雙棧機制就是使IPv6網(wǎng)絡節(jié)點具有一個IPv4棧和一個IPv6棧,同時支持IPv4和IPv6協(xié)議。IPv6和IPv4是功能相近的網(wǎng)絡層協(xié)議,兩者都應用于相同的物理平臺,并承載相同的傳輸層協(xié)議TCP或UDP,如果一臺主機同時支持IPv6和IPv4協(xié)議,那么該主機就可以和僅支持IPv4或IPv6協(xié)議的主機通信,IPv6/IPv4雙協(xié)議棧的協(xié)議結(jié)構(gòu)。
應用層協(xié)議
TCP/UDP協(xié)議
IPv6協(xié)議
IPv4協(xié)議
鏈路層及物理協(xié)議
隧道技術(shù)
隧道機制就是必要時將IPv6數(shù)據(jù)包作為數(shù)據(jù)封裝在IPv4數(shù)據(jù)包里,使IPv6數(shù)據(jù)包能在已有的IPv4基礎(chǔ)設(shè)施(主要是指IPv4路由器)上傳輸?shù)臋C制。隨著IPv6的發(fā)展,出現(xiàn)了一些被運行IPv4協(xié)議的骨干網(wǎng)絡隔離開的局部IPv6網(wǎng)絡,為了實現(xiàn)這些IPv6網(wǎng)絡之間的通信,必須采用隧道技術(shù)。隧道對于源站點和目的站點是透明的,在隧道的入口處,路由器將IPv6的數(shù)據(jù)分組封裝在IPv4中,該IPv4分組的源地址和目的地址分別是隧道入口和出口的IPv4地址,在隧道出口處,再將IPv6分組取出轉(zhuǎn)發(fā)給目的站點。隧道技術(shù)的優(yōu)點在于隧道的透明性,IPv6主機之間的通信可以忽略隧道的存在,隧道只起到物理通道的作用。隧道技術(shù)在IPv4向IPv6演進的初期應用非常廣泛。但是,隧道技術(shù)不能實現(xiàn)IPv4主機和IPv6主機之間的通信;
網(wǎng)絡地址轉(zhuǎn)換技術(shù)
網(wǎng)絡地址轉(zhuǎn)換(Network Address Translator,NAT)技術(shù)是將IPv4地址和IPv6地址分別看作內(nèi)部地址和全局地址,或者相反。例如,內(nèi)部的IPv4主機要和外部的IPv6主機通信時,在NAT服務器中將IPv4地址(相當于內(nèi)部地址)變換成IPv6地址(相當于全局地址),服務器維護一個IPv4與IPv6地址的映射表。反之,當內(nèi)部的IPv6主機和外部的IPv4主機進行通信時,則IPv6主機映射成內(nèi)部地址,IPv4主機映射成全局地址。NAT技術(shù)可以解決IPv4主機和IPv6主機之間的互通問題。
3.13.2 目前常見的IPv4/IPv6互通轉(zhuǎn)換的技術(shù)標準有哪些?
現(xiàn)有網(wǎng)絡到IPv6網(wǎng)絡的過渡在技術(shù)上已十分成熟,而且這種過渡可以是循序漸進的。國際標準化組織和許多研發(fā)機構(gòu)都開發(fā)出了多種IPv4與IPv6的互通轉(zhuǎn)換機制。下面給出了目前常見的IPv4/IPv6互通轉(zhuǎn)換技術(shù)標準:
· 6to4:RFC 3056
· NAT-PT(Network Address Translation-Protocol Translation):RFC 2766
· SIIT(Stateless IP/ICMP Translation):RFC 2765
· Tunnel broker:RFC 3053
· 6over4:RFC 2529
· BIS(Bump-In-the-Stack):RFC 2767
· BIA(Bump-in-the-API):RFC 3338
· SOCKS-gateway:RFC 3089
· TCP/UDP-relay:RFC 3142
· DSTM(Dual Stack Transition Mechanism):draft-ietf-ngtrans-dstm-08.txt
· ISATAP(Intra-Site Automatic Tunnel Addressing Protocol):draft-ietf-ngtrans-isatap-08.txt
3.13.3 什么是隧道?“IPv6 over IPv4”是什么意思?
隧道(Tunnel)是指將一種協(xié)議報頭封裝在另一種協(xié)議報頭中,這樣,一種協(xié)議就可以通過另一種協(xié)議的封裝進行通信。IPv6隧道是將IPv6報頭封裝在IPv4報頭中,這樣IPv6協(xié)議包就可以穿越IPv4網(wǎng)絡進行通信。
在IPv6全面實施之前,總有一些網(wǎng)絡先提供對IPv6的支持,但是這些IPv6網(wǎng)絡被運行IPv4協(xié)議的骨干網(wǎng)絡隔離開來?!癐Pv6 over IPv4”的隧道就用來連接這些孤立的IPv6網(wǎng)絡。隧道技術(shù)目前是國際IPv6試驗床6Bone所采用的技術(shù)。利用隧道技術(shù)可以通過現(xiàn)有的運行IPv4協(xié)議的Internet骨干網(wǎng)絡(即隧道)將局部的IPv6網(wǎng)絡連接起來,因而是IPv4向IPv6過渡的初期最易于采用的技術(shù)。隧道技術(shù)的優(yōu)點在于隧道的透明性,IPv6主機之間的通信可以忽略隧道的存在,隧道只起到物理通道的作用。它不需要大量的IPv6專用路由器設(shè)備和專用鏈路,可以明顯地減少投資。其缺點是:在IPv4網(wǎng)絡上配置IPv6隧道是一個比較麻煩的過程,而且隧道技術(shù)不能實現(xiàn)IPv4主機和IPv6主機之間的通信。
IPv4/v6互通技術(shù)
本文首先介紹互通技術(shù)出現(xiàn)的背景及現(xiàn)狀,隨后對IPv4向IPv6過渡的三種基本技術(shù)作了簡單的介紹,接下來分別介紹了IPv6小島之間的通信方式,以及IPv6小島與IPv4海洋之間的通信方式,最后就如何選擇合適的過渡機制談了些看法。
1.互通技術(shù)出現(xiàn)的背景及現(xiàn)狀
IPv6已被認為是下一代互聯(lián)網(wǎng)絡協(xié)議核心標準之一。但是,一種新的協(xié)議從誕生到廣泛應用需要一個過程,尤其是對于IPv4仍然很好的支撐著的Internet而言。在IPv6的網(wǎng)絡流行于全球之前,總是有一些網(wǎng)絡首先使用IPv6協(xié)議棧并希望能夠與當前的Internet正常通信。為達到這一目的,研究者們必須開發(fā)出IPv4 / IPv6互通技術(shù)以保證IPv4能夠平穩(wěn)過渡到IPv6,除此之外,互通技術(shù)應該對普通用戶做到“無縫”,對信息傳遞做到高效。
為了開展對于IPv4/IPv6過渡問題和高效無縫互連問題的研究,國際上,IETF組建了專門的working group即NGTRANS工作組來處理這個問題。同時,IETF在全球范圍內(nèi)成立試驗床6-Bone,專門對IPv6的特性進行研究。目前已經(jīng)出現(xiàn)了多種過渡技術(shù)和互連方案,這些技術(shù)各有特點,用于解決不同過渡時期、不同環(huán)境的通信問題。
在過渡的初期,Internet將由運行IPv4的“海洋”和運行IPv6的“小島”組成。隨著時間的推移,IPv4的海洋將會逐漸變小,而IPv6的小島將會越來越多,最終完全取代IPv4。在過渡的初期,要解決的問題可以分成兩大類:第一類就是解決這些IPv6的小島之間互相通信的問題;第二類就是解決IPv6的小島與IPv4的海洋之間通信的問題。
針對這兩類問題已經(jīng)提出了很多方案,有一些已經(jīng)相當成熟并形成了RFC,有一些還只是作為Internet draft,有待進一步完善。
2.IPv4向IPv6過渡的三種基本技術(shù)
目前解決過渡問題基本技術(shù)主要有三種:雙協(xié)議棧(RFC 2893 obsolete RFC1933)、隧道技術(shù)(RFC 2893)、NAT-PT(RFC 2766)。
?。?) 雙協(xié)議棧 ( Dual Stack)
采用該技術(shù)的節(jié)點上同時運行IPv4和IPv6兩套協(xié)議棧。這是使IPv6節(jié)點保持與純IPv4節(jié)點兼容最直接的方式,針對的對象是通信端節(jié)點(包括主機、路由器)。這種方式對IPv4和IPv6提供了完全的兼容,但是對于IP地址耗盡的問題卻沒有任何幫助。由于需要雙路由基礎(chǔ)設(shè)施,這種方式反而增加了網(wǎng)絡的復雜度。
?。?) 隧道技術(shù) ( Tunnel)
隧道技術(shù)提供了一種以現(xiàn)有IPv4路由體系來傳遞IPv6數(shù)據(jù)的方法:將IPv6的分組作為無結(jié)構(gòu)意義的數(shù)據(jù),封裝在IPv4數(shù)據(jù)報中,被IPv4網(wǎng)絡傳輸。根據(jù)建立方式的不同,隧道可以分成兩類:(手工)配置的隧道和自動配置的隧道。隧道技術(shù)巧妙地利用了現(xiàn)有的IPv4網(wǎng)絡,它的意義在于提供了一種使IPv6的節(jié)點之間能夠在過渡期間通信的方法,但它并不能解決IPv6節(jié)點與IPv4節(jié)點之間相互通信的問題。
?。?) NAT-PT
轉(zhuǎn)換網(wǎng)關(guān)除了要進行IPv4地址和IPv6地址轉(zhuǎn)換,還要包括協(xié)議并翻譯。轉(zhuǎn)換網(wǎng)關(guān)作為通信的中間設(shè)備,可在IPv4和IPv6網(wǎng)絡之間轉(zhuǎn)換IP報頭的地址,同時根據(jù)協(xié)議不同對分組做相應的語義翻譯,從而使純IPv4和純IPv6站點之間能夠透明通信。
3.IPv6小島之間的通信方式
(1) 手工配置隧道 ( Configured Tunnel, RFC2893 )
這種隧道的建立是手工配置的,需要隧道兩個端點所在網(wǎng)絡的管理員協(xié)作完成。隧道的端點地址由配置來決定,不需要為站點分配特殊的IPv6地址,適用于經(jīng)常通信的IPv6站點之間。每一個隧道的封裝節(jié)點必須保存隧道終點的地址,當一個IPv6包在隧道上傳輸時終點地址會作為IPv4包的目的地址進行封裝。通常封裝節(jié)點要根據(jù)路由信息決定一個包是否要通過隧道轉(zhuǎn)發(fā)。
采用手工配置隧道進行通信的站點之間必須有可用的IPv4 連接,并且至少要具有一個全球唯一的IPv4地址。站點中每個主機都至少需要支持IPv6,路由器需要支持雙棧。在隧道要經(jīng)過NAT設(shè)施的情況下這種機制不可用。
手工配置隧道的主要缺點是網(wǎng)絡管理員的負擔很重,因為他要為每一條隧道做詳細的配置。
(2) 自動配置的隧道 ( Auto-configured Tunnel, RFC2893 )
這種隧道的建立和拆除是動態(tài)的,它的端點根據(jù)分組的目的地址確定,適用于單獨的主機之間或不經(jīng)常通信的站點之間。自動配置的隧道需要站點采用IPv4兼容的IPv6地址( IPv4 Compatible IPv6 Address,0::IPv4ADDR/96 ),這些站點之間必須有可用的IPv4連接,每個采用這種機制的主機都需要有一個全球唯一的IPv4地址。
采用這種機制不能解決IPv4地址空間耗盡的問題(采用手工配置隧道的站點就不需要IPv4地址)。兩外還有一種危險就是如果把Internet 上全部IPv4路由表包括到IPv6網(wǎng)絡中,那么會加劇路由表膨脹的問題。這種隧道的兩個端點都必須支持雙協(xié)議棧(手工配置就不需要)。在隧道要經(jīng)過NAT設(shè)施的情況下這種機制不可用。
?。?) Tunnel Broker ( RFC3053- IPv6 Tunnel Broker )
Tunnel Broker不是一種隧道機制,而是一種方便構(gòu)造隧道的機制??梢院喕淼赖呐渲眠^程,適用于單個主機獲取IPv6連接的情況。Tunnel Broker也可用于站點之間,但這時可能會在IPv6的路由表中引入很多條目,導致IPv6的路由表過于龐大,違背了IPv6設(shè)計的初衷。用戶可以通過Tunnel Broker從支持IPv6的ISP處獲得持久的IPv6地址和域名。 Tunnel Broker要求隧道的雙方都支持雙棧并有可用的IPv4連接,在隧道要經(jīng)過NAT設(shè)施的情況下這種機制不可用。采用TB方法,可以使IPv6 的ISP可以很容易對用戶執(zhí)行接入控制,按照策略對網(wǎng)絡資源進行分配。
TB轉(zhuǎn)換機制包括Tunnel Server(TS)和Tunnel Broker(TB)。server和boker位于不同的計算機上,對于隧道的控制通常是web形式的。
?。?) 6 over 4 ( RFC2529 ),IPv4多播隧道
6 over 4 也是一種自動建立隧道的機制,這種隧道端點的IPv4地址采用鄰居發(fā)現(xiàn)的方法確定。與手工配置隧道不同的是,它不需要任何地址配置;與自動隧道不同的是它不要求使用V4兼容的V6地址。但是采用這種機制的前提就是IPv4網(wǎng)絡基礎(chǔ)設(shè)施支持IPv4多播。這里的IPv4多播域可以是采用全球唯一的IPv4地址的網(wǎng)絡,或是一個私有的IPv4網(wǎng)絡的一部分。這種機制適用于IPv6路由器沒有直接連接的物理鏈路上的孤立的IPv6主機,使得它們能夠?qū)Pv4廣播域作為它們的虛擬鏈路,成為功能完全的IPv6站點。
采用這種方法連接的IPv6站點的不需要采用IPv4兼容地址,也不需要手工配置的隧道。當采用6 over 4的站點通過一臺支持6 over 4的路由器與外界相連時,站點內(nèi)的主機可以和外部IPv6站點通信。但是6 over 4還是沒有解決一個孤立的用戶連接到全球性的IPv6 Internet上。
?。?) 6 to 4 ( RFC3056)
6to4也是一種自動構(gòu)造隧道的機制,這種機制要求站點采用特殊的IPv6地址(2002:IPv4ADDR::/48 ),這種地址是自動從站點的IPv4地址派生出來的。所以每個采用6to4機制的節(jié)點至少必須具有一個全球唯一的IPv4地址,(這種地址分配方法,可以使得其它域的邊界路由器自動地區(qū)分隧道接收端點是否在本域內(nèi))。由于這種機制下隧道端點的IPv4地址可以從IPv6地址中提取,所以隧道的建立是自動的。6to4不會在IPv4的路由表中引入新的條目,在IPv6的路由表中只增加一條表項。采用6to4機制的IPv6 ISP只需要做很少的管理工作,這種機制很適用于運行IPv6的站點之間的通信。6to4要求隧道中至少有兩臺路由器支持雙棧和6to4,主機要求至少支持IPv6協(xié)議棧。
6to4機制允許在采用6to4的IPv6站點和純IPv6站點之間通過中繼路由器 ( 6to4 Relay Router ) 進行通信,這時不要求通信的兩個端點之間具有可用的IPv4連接,中繼路由器建議運行BGP4+。
這種機制把廣域的IPv4網(wǎng)絡作為一個單播的點到點鏈路層。這種機制適合作為V4/V6共存的初始階段的轉(zhuǎn)換工具,它可以與防火墻、NAT共存,但是NAT box必須具有全球唯一的IPv4地址,并且應有6to4機制和完備的路由功能。
在隧道終點,任何從正常IPv4鏈路傳來的6to4數(shù)據(jù)流都可以被接受和解封裝。為了防止IPv6欺騙,可采用附加的基于源地址的包過濾技術(shù)。一種方法就是檢查用于封裝的IPv4地址是否與被封裝的IPv6包頭地址一致。這種檢查要在中繼路由器(relay router)中設(shè)置。在任何情況下,6to4數(shù)據(jù)流中的源和目的地址嵌入的V4地址必須是以全球唯一單播地址格式,否則這些數(shù)據(jù)包將會在不被警告的情況被丟棄。
4.IPv6小島與IPv4海洋之間的通信方式
?。?) Dual Stack Model ( RFC2893 )
在這種模型下,任意節(jié)點都是完全雙棧的。這時不存在IPv4與IPv6之間的相互通信問題,但是這種機制要給每一個IPv6的站點分配一個IPv4地址。這種方法不能解決IPv4地址資源不足的問題,而且隨著IPv6站點的增加會很難得到滿足,因此這種方法只能用在早期的變遷過程。
?。?) Limited Dual Stack Model ( RFC2893 )
在這種模型下,服務器和路由器仍然是雙棧的,而非服務器的主機只需要支持IPv6。這種機制可以節(jié)省大量的IPv4地址,但是在純IPv6和純IPv4節(jié)點之間的通信將會出現(xiàn)問題,為了解決這種問題,必須與其它技術(shù)結(jié)合使用。
?。?) SIIT ( Stateless IP/ ICMP Translation, RFC2765 )
SIIT定義了在IPv4和IPv6的分組報頭之間進行翻譯的方法,這種翻譯是無狀態(tài)的,因此對于每一個分組都要進行翻譯。這種機制可以和其它的機制(如NAT-PT)結(jié)合,用于純IPv6站點同純 IPv4站點之間的通信,但是在采用網(wǎng)絡層加密和數(shù)據(jù)完整性保護的環(huán)境下這種技術(shù)不可用。純IPv6節(jié)點和純IPv4節(jié)點通過一個SIIT轉(zhuǎn)換器通信,IPv6節(jié)點看到的對方一個IPv4瞞apped地址的主機,同時它自己則使用一個IPv4 translated的地址。如果IPv6主機發(fā)出的IP分組中的目的地址是一個IPv4瞞apped地址,那么SIIT轉(zhuǎn)換器就知道這個IP分組需要進行協(xié)議轉(zhuǎn)換。
(4) NAT-PT (Network Address Translation - Protocol Translation, RFC2766 )
NAT-PT就是在做IPv4/IPv6地址轉(zhuǎn)換(NAT)的同時在IPv4分組和IPv6分組之間進行報頭和語義的翻譯(PT)。適用于純IPv4站點和純IPv6站點之間的通信。對于一些內(nèi)嵌地址信息的高層協(xié)議(如FTP),NAT-PT需要和應用層的網(wǎng)關(guān)協(xié)作來完成翻譯。在NAT-PT的基礎(chǔ)上利用端口信息,就可以實現(xiàn)NAPT-PT,這點同目前IPv4下的NAPT沒有本質(zhì)區(qū)別。
NAT-PT的原理和SIIT類似,其改進的地方是將傳統(tǒng)的IPv4下的NAT應用于SIIT中的IPv4地址的選取當中。SIIT的一個最大的缺點是需要比較大的IPv4地址池,以供IPv6應用動態(tài)分配。這個IPv4地址池很大程度上制約了SIIT的應用。而NAT-PT采用傳統(tǒng)的IPv4下的NAT技術(shù)來分配IPv4地址,這樣就可以以很少的IPv4地址構(gòu)成自己的IPv4地址分配池,可以給大量的需要進行地址轉(zhuǎn)換的應用使用協(xié)議轉(zhuǎn)換服務。
在實現(xiàn)方面,如果沒有DNS-ALG的支持,只能實現(xiàn)由IPv6發(fā)起的與IPv4之間的通信,反之,包就會被丟棄。如果有DNS-ALG的支持,就可以實現(xiàn)雙向的通信。有一些應用需要一定程度的地址穩(wěn)定性,NAT-PT可以被配置成提供V6到特定V4地址的靜態(tài)映射。
該機制適用于過渡的初始階段,使得基于雙協(xié)議棧的主機,能夠運行IPv4應用程序與IPv6應用互相通信。這種技術(shù)允許不支持IPv6的應用程序透明地訪問純IPv6站點。該機制要求主機必須是雙棧的,同時要在協(xié)議棧中插入三個特殊的擴展模塊:域名解析器、地址映射器和翻譯器,相當于在主機的協(xié)議棧中使用了NAT-PT。
?。?) BIA ( Bump-In-the-API, Internet Draft )
這種技術(shù)同BIS類似,只是在API層而不是在協(xié)議棧的層次上進行分組的翻譯,所以它的實現(xiàn)比BIS要簡單一些,因為不需要對IP包頭進行翻譯。BIS與BIA的主要區(qū)別是:BIS用在沒有IPv6協(xié)議棧的系統(tǒng)上,BIA用在有IPv6協(xié)議棧的系統(tǒng)上。
當雙棧主機上的IPv4應用與其它IPv6主機通信時,API翻譯器檢測到從IPv4應用發(fā)出的基于socket API的函數(shù),就調(diào)用IPv6 socket API函數(shù)與IPv6主機通信。
?。?) SOCKS64 ( Socks gateway, rfc3089 )
SOCKS64是原有SOCKS協(xié)議 ( RFC1928 ) 的擴展,相當于IP層的代理。這種機制不需要修改DNS或者做地址映射,可用于多種環(huán)境,但是需要采用SOCKS代理服務器,并在客戶端安裝支持SOCKS代理的軟件,對于用戶來講不是透明的。該機制增加了兩個新的功能部件,它們構(gòu)成了網(wǎng)關(guān)機制。
除了上述7種通信方式,IPv6小島與IPv4海洋之間還可以通過TRT、DSTM、ALG等方式進行通信。
5.如何選擇合適的過渡機制
從已有的過渡機制可以看出,目前所有的方案都是針對某一種問題而提出的。這些過渡機制都不是普遍適用的,每一種機制都適用于某種或幾種特定的網(wǎng)絡情況,而且常常需要和其它的技術(shù)組合使用。在實際應用時需要綜合考慮各種實際情況來制定合適的過渡策略。對于某一類互連問題,設(shè)計者們可以找出新的方式,并隨著網(wǎng)絡技術(shù)和發(fā)展不斷的改進和更新這種方式。
為選擇一個合適的機制,首先需求要明確,明確應用的類型、范圍和系統(tǒng)的類型,然后選擇合適的轉(zhuǎn)換機制進行設(shè)計和實施。IPv4向IPv6過渡時期,通常采用的組網(wǎng)原則:
· 在能直接建立IPv6鏈路的情況下,使用純IPv6路由;
· 在不能使用IPv6鏈路的情況下,IPv6節(jié)點之間使用隧道技術(shù);
· 雙棧的IPv6/IPv4主機和純IPv6或者純IPv4 的主機通信不需要采用協(xié)議轉(zhuǎn)換,而直接“自動”選擇相應的通信協(xié)議(IPv4或者 IPv6)。
· 對于純IPv6和純IPv4主機之間的通信,則應該使用協(xié)議轉(zhuǎn)換或者應用層網(wǎng)關(guān)(ALG)技術(shù),設(shè)計的協(xié)議轉(zhuǎn)換器或者ALG應該盡量保證在不修改原有應用的情況下就可以使用
評論