版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
8.1過渡技術(shù)概述
8.2IPv6安全問題
8.3小結(jié)
習(xí)題
第8章IPv6過渡及安全技術(shù)
1.IPv6過渡期的特點(diǎn)
如何完成從IPv4到IPv6的轉(zhuǎn)換,是IPv6發(fā)展需要解決的第一個(gè)問題。過渡是指某一事物從一種狀態(tài)逐步演化為另一種狀態(tài),或者逐步轉(zhuǎn)變?yōu)榱硪皇挛?。過渡的特征有兩個(gè):過渡需要一個(gè)過程,需要一定的時(shí)間;在過渡過程中,事物發(fā)生了質(zhì)的變化,逐漸不同于原來的事物,過渡完成以后,演變成為新的事物。8.1過渡技術(shù)概述
IPv6不可能立刻替代IPv4,因此在相當(dāng)長一段時(shí)間內(nèi),IPv4和IPv6會(huì)共存于一個(gè)環(huán)境中。要提供平穩(wěn)的轉(zhuǎn)換過程,使得對現(xiàn)有的使用者影響最小,就需要有良好的轉(zhuǎn)換機(jī)制。
IPv6是下一代Internet的核心協(xié)議。但是,一種新的協(xié)議從誕生到廣泛應(yīng)用需要一個(gè)過程,尤其是對于IPv4仍然很好地支撐著Internet的情況而言。在IPv6的網(wǎng)絡(luò)流行于全球之前,總要有一些網(wǎng)絡(luò)首先使用IPv6協(xié)議,并希望能夠與當(dāng)前的Internet正常通信。為達(dá)到這一目的,研究者們必須開發(fā)出IPv4/IPv6互通技術(shù),以保證IPv4能夠平穩(wěn)過渡到IPv6。除此之外,互通技術(shù)應(yīng)該對普通用戶做到“無縫”,對信息傳遞做到高效。
IETF專門組建ngtrans工作小組,現(xiàn)在為V6ops,開展對于IPv4/IPv6過渡問題和高效無縫互聯(lián)問題的研究。IETF還在全球范圍內(nèi)成立IPv6網(wǎng)絡(luò)試驗(yàn)床6Bone,專門對IPv6的特性進(jìn)行研究。實(shí)現(xiàn)從IPv4平穩(wěn)地向IPv6過渡是IETFngtrans工作小組的主要目標(biāo),近年來,他們已提出了許多兩種協(xié)議轉(zhuǎn)換的機(jī)制。IETF推薦的轉(zhuǎn)換機(jī)制有雙協(xié)議棧、隧道技術(shù)、翻譯技術(shù)和NAT等,這些技術(shù)各有特點(diǎn),可用于解決不同過渡時(shí)期、不同環(huán)境的通信問題,其中一部分轉(zhuǎn)換技術(shù)已在6Bone上應(yīng)用。
IPv4網(wǎng)絡(luò)向IPv6網(wǎng)絡(luò)的過渡可以分為四個(gè)階段,如圖8-l所示。在過渡的初期,Internet將由運(yùn)行IPv4的“海洋”和運(yùn)行IPv6的“小島”組成。隨著時(shí)間的推移,IPv4的海洋將會(huì)逐漸變小,而IPv6的小島將會(huì)越來越多,逐步連接成IPv6海洋,最終實(shí)現(xiàn)IPv6完全取代IPv4。過渡初期要解決的主要問題有兩個(gè):第一個(gè)是解決這些IPv6的小島之間互相通信的問題;第二個(gè)是解決IPv6的小島與IPv4的海洋之間通信的問題。圖8-1IPv4網(wǎng)絡(luò)向IPv6網(wǎng)絡(luò)的過渡階段
2.過渡需要采取的措施
市場、成本與政策是推動(dòng)IPv6實(shí)用化的關(guān)鍵。IPv6是網(wǎng)絡(luò)技術(shù)發(fā)展趨勢,IPv4向IPv6過渡技術(shù)也逐漸成熟,但還面臨著許多需要解決的問題。逐步將IPv4向IPv6遷移,是業(yè)界的共識。IPv4網(wǎng)絡(luò)中數(shù)量巨大的設(shè)備和裝置需要得到IPv6的支持。在IPv4環(huán)境下,需要降低IPv6的啟動(dòng)門檻。降低門檻的一個(gè)辦法是提供硬件支持IPv6的產(chǎn)品,以節(jié)省用于升級的成本。降低門檻的另一個(gè)辦法是通過軟件升級的方法,采用翻譯技術(shù)和雙協(xié)議轉(zhuǎn)換技術(shù)。
IPv6技術(shù)從網(wǎng)絡(luò)技術(shù)發(fā)展的必然趨勢變成網(wǎng)絡(luò)應(yīng)用的現(xiàn)實(shí),在技術(shù)上得以保障的前提下,業(yè)務(wù)、市場推廣和產(chǎn)品的開發(fā)是真正使IPv6得以廣泛應(yīng)用的基礎(chǔ)。未來的電信網(wǎng)將是基于IPv6技術(shù)的網(wǎng)絡(luò),電信級的IP網(wǎng)和GPRS、3G移動(dòng)上網(wǎng)成為兩個(gè)關(guān)鍵性應(yīng)用,推動(dòng)了IPv6在公共信息基礎(chǔ)設(shè)施平臺建設(shè)中的應(yīng)用。
IPv6技術(shù)在日本發(fā)展得很快。日本采用模型證實(shí)實(shí)驗(yàn)的方法,制定有利于IPv6技術(shù)推廣應(yīng)用的政策法規(guī),由地方政府、企業(yè)用戶、家庭用戶組成一個(gè)模型地區(qū),進(jìn)行從IPv4過渡到IPv6方式的試驗(yàn),來制定合適的過渡模型。為了促進(jìn)IPv6產(chǎn)業(yè)的發(fā)展,日本制定了一系列的優(yōu)惠,低利息、無利息貸款等各種支持。目前,日本已經(jīng)形成了IPv6運(yùn)營商、IPv6設(shè)備提供商、IPv6終端提供商、IPv6用戶這樣一個(gè)完整的產(chǎn)業(yè)鏈,使得日本的IPv6走在了世界的前列。
中國建成了全球最大的IPv6試驗(yàn)網(wǎng)——CernetⅡ。
推動(dòng)IPv6技術(shù)實(shí)用化的措施可以歸納為:市場需求驅(qū)動(dòng)IPv6;降低門檻啟動(dòng)IPv6;政策規(guī)劃推動(dòng)IPv6。
3.過渡面臨的問題
1)?IPv6過渡期的技術(shù)特點(diǎn)
處于過渡期的IPv6技術(shù)的最大特點(diǎn)是不斷的升級,在技術(shù)層面上引領(lǐng)IPv4網(wǎng)絡(luò)向IPv6網(wǎng)絡(luò)遷徙。IPv4發(fā)展了幾十年,在路由協(xié)議、QoS、多播、報(bào)文頭擴(kuò)展、狀態(tài)機(jī)備份、安全等方面還在不斷地完善中,以適應(yīng)網(wǎng)絡(luò)功能的轉(zhuǎn)型和信息社會(huì)發(fā)展對多媒體信息傳輸?shù)男枨?。IPv6在標(biāo)準(zhǔn)建設(shè)、協(xié)議棧開發(fā)方面正在起步,還有大量的工作要完成。在相當(dāng)長的一段時(shí)間內(nèi),IPv6將會(huì)面臨不斷升級完善的局面。為了兼容現(xiàn)有的IPv4技術(shù),盡快地獲取生存空間,支持IPv6的網(wǎng)絡(luò)設(shè)備更多的要在雙棧環(huán)境下運(yùn)行,“兼容性”大于“先進(jìn)性”。在確保兼容性的前提下,怎樣使IPv6技術(shù)在網(wǎng)絡(luò)應(yīng)用支持方面做到比IPv4更具優(yōu)勢,是過渡期IPv6開發(fā)的重點(diǎn)。
如何更好地體現(xiàn)IPv6的技術(shù)優(yōu)勢呢?對硬件平臺的要求應(yīng)該是考慮的重點(diǎn)。一般而言,目前的硬件平臺主要分為ASIC平臺和可編程硬件平臺NP、FPGA等。
2)軟件升級支持
針對處在過渡期的IPv6技術(shù)會(huì)不斷升級的特點(diǎn),NP等可編程硬件顯然具備更強(qiáng)的優(yōu)勢。NP對于硬件的技術(shù)優(yōu)勢主要在于方便優(yōu)化、升級,從而很容易增加新特性。由于IPv6網(wǎng)絡(luò)處于新生時(shí)期,協(xié)議、特性的更新是頻繁的,這就要求IPv6設(shè)備能較快地更新?lián)Q代。從另一個(gè)角度看,IPv6設(shè)計(jì)的一個(gè)宗旨是方便用戶應(yīng)用層的擴(kuò)展,因此NP可以根據(jù)用戶需求設(shè)計(jì)出實(shí)用的私有特性。而ASIC目前能夠做的只能是IPv6已經(jīng)固化的轉(zhuǎn)發(fā)功能,無法做到支持?jǐn)U展方面的功能,只能依靠設(shè)備中的CPU解決。這樣的后果是整個(gè)設(shè)備的轉(zhuǎn)發(fā)速率下降到一個(gè)無法接受的水平(幾百kb/s),并且會(huì)威脅到設(shè)備的穩(wěn)定性。因此,從這個(gè)角度來說,選擇可編程的硬件平臺設(shè)備可以更好地保護(hù)用戶的投資。
3)路由表容量問題
IPv6采用128位地址,路由表占用空間在容量不變時(shí)要增大到原來的4倍,而ASIC中的硬件轉(zhuǎn)發(fā)的路由表存儲(chǔ)在ASIC專用的地址空間中,硬件地址表空間很有限。ASIC平臺在IPv6的環(huán)境中,如果保持IPv4一樣的地址表空間將會(huì)大大提高成本,因此硬件在設(shè)計(jì)上需要盡量節(jié)省私有空間大小而提高路由表容量。在實(shí)際的應(yīng)用環(huán)境中,過渡期設(shè)備往往運(yùn)行在雙棧環(huán)境下,同時(shí)面臨IPv6和IPv4的路由表需求,因此對地址空間的要求將大于目前的純IPv4環(huán)境。
4)對擴(kuò)展首部的支持
IPv6的擴(kuò)展首部(頭)的功能遠(yuǎn)遠(yuǎn)強(qiáng)于IPv4的IP選項(xiàng)字段,對于擴(kuò)展首部的處理也更加豐富。其中,所有轉(zhuǎn)發(fā)節(jié)點(diǎn)都要處理路由擴(kuò)展頭、逐跳選項(xiàng)頭和地址選項(xiàng)頭。逐跳選項(xiàng)與地址選項(xiàng)是為了支持特殊應(yīng)用(如安全、管理)而預(yù)留的,中間節(jié)點(diǎn)需要根據(jù)某種策略來處理。目前,RFC2460并未定義成熟而有意義的選項(xiàng),其潛力尚未發(fā)揮。
當(dāng)需要使用這些選項(xiàng)頭實(shí)現(xiàn)用戶的特殊需求,或者IPv6有擴(kuò)展升級時(shí),只有NP等可編程硬件能很快適應(yīng)這些變化并升級系統(tǒng),而用ASIC實(shí)現(xiàn)則難以快速應(yīng)對協(xié)議升級和市場需求變化。
5)報(bào)文轉(zhuǎn)發(fā)效率
IPv6的一個(gè)設(shè)計(jì)思想是減輕轉(zhuǎn)發(fā)的負(fù)擔(dān),采用以下幾個(gè)思路和技術(shù)措施:
(1)基本報(bào)文頭長度固定,沒有多余的頭部長度字段。
(2)轉(zhuǎn)發(fā)節(jié)點(diǎn)并不計(jì)算校驗(yàn)和。
(3)中間節(jié)點(diǎn)不得分段。
相對于其它硬件平臺來說,ASIC平臺在“硬件”轉(zhuǎn)發(fā)技術(shù)上具有優(yōu)勢,即可直接通過ASIC硬件查表實(shí)現(xiàn)數(shù)據(jù)的快速轉(zhuǎn)發(fā)。在轉(zhuǎn)發(fā)性能、轉(zhuǎn)發(fā)延遲方面,在IPv4的環(huán)境中,ASIC平臺相對其它平臺有幾乎大1個(gè)甚至更多數(shù)量級的優(yōu)勢。然而,隨著IPv6的這些特點(diǎn)的產(chǎn)生,其它硬件平臺在IP報(bào)文頭上的開銷將大大減小,導(dǎo)致其它平臺和ASIC平臺之間的差距在縮小。
6)服務(wù)質(zhì)量(QoS)的實(shí)施
作為從IPv4基礎(chǔ)上發(fā)展起來的IPv6技術(shù),并沒有改變IP技術(shù)盡力交付、提供無連接這一最本質(zhì)的特點(diǎn),因此,IPv4所面臨的所有QoS問題,在IPv6中同樣存在。IPv6在IPBase(基本)和Extension(擴(kuò)展)首部中包含了少量特定于QoS的服務(wù)元素,包括流量類別(TrafficClass)和相應(yīng)的流標(biāo)簽(FlowLabel)。由于報(bào)文頭的簡化,QoS處理和實(shí)施的效率會(huì)有所提高。但也應(yīng)該看到,隨著IP網(wǎng)絡(luò)規(guī)模的增大和應(yīng)用業(yè)務(wù)的日益復(fù)雜,IP網(wǎng)絡(luò)已經(jīng)日益成為一個(gè)“補(bǔ)丁”網(wǎng)絡(luò)。迄今為止,在IPv4網(wǎng)絡(luò)中的QoS技術(shù)和標(biāo)準(zhǔn)還在不斷產(chǎn)生,而IPv6的Qos問題還根本沒有被廣泛提及,隊(duì)列機(jī)制、調(diào)度機(jī)制等標(biāo)準(zhǔn)的制定工作還處于初級階段。這些機(jī)制將牽涉到隊(duì)列的緩沖區(qū)設(shè)計(jì)、時(shí)延處理策略等。通過ASIC可以將這些處理機(jī)制都固化在芯片中,但在現(xiàn)有的環(huán)境下,用ASIC實(shí)現(xiàn)將來的IPv6的QoS策略顯然不現(xiàn)實(shí),因此采用可編程硬件是有效實(shí)現(xiàn)將來的QoS策略的唯一選擇。
4.過渡時(shí)期采用技術(shù)的選擇
確保IPv6和IPv4的共存所使用的技術(shù)主要分為三類:雙棧技術(shù)、隧道技術(shù)和轉(zhuǎn)換技術(shù)。
1)雙棧技術(shù)(DualStack)
這類技術(shù)可以讓IPv4技術(shù)和IPv6技術(shù)共存于同一設(shè)備和網(wǎng)絡(luò)中。技術(shù)文檔是RFC2893。采用該技術(shù)的節(jié)點(diǎn)上同時(shí)運(yùn)行IPv4和IPv6兩套協(xié)議棧。這是使IPv6節(jié)點(diǎn)保持與純IPv4節(jié)點(diǎn)兼容最直接的方式,針對的對象是通信端節(jié)點(diǎn)(包括主機(jī)、路由器)。這種方式對IPv4和IPv6提供了完全的兼容,但是對于IP地址耗盡的問題卻沒有任何幫助。由于需要雙路由基礎(chǔ)設(shè)施,因此這種方式反而增加了網(wǎng)絡(luò)的復(fù)雜度。
2)隧道技術(shù)(Tunnel)
這類技術(shù)可以讓IPv6業(yè)務(wù)在現(xiàn)有IPv4基礎(chǔ)設(shè)施上傳輸。多個(gè)技術(shù)文檔定義了隧道技術(shù)與數(shù)據(jù)包的封裝,這些技術(shù)文檔有RFC2473、RFC2893、RFC3056等。隧道技術(shù)提供了一種以現(xiàn)有IPv4路由體系來傳遞IPv6數(shù)據(jù)的方法:將IPv6的分組作為無結(jié)構(gòu)意義的數(shù)據(jù)封裝在IPv4數(shù)據(jù)報(bào)中,被IPv4網(wǎng)絡(luò)傳輸。根據(jù)建立方式的不同,隧道可以分成兩類:手工配置的隧道和自動(dòng)配置的隧道。隧道技術(shù)巧妙地利用了現(xiàn)有的IPv4網(wǎng)絡(luò),它的意義在于提供了一種使IPv6的節(jié)點(diǎn)之間能夠在過渡期間通信的方法,但它并不能解決IPv6節(jié)點(diǎn)與IPv4節(jié)點(diǎn)之間相互通信的問題。
3)轉(zhuǎn)換(翻譯)技術(shù)
這類技術(shù)讓純IPv6節(jié)點(diǎn)能夠和純IPv4節(jié)點(diǎn)相互通信。技術(shù)文檔是RFC2766。轉(zhuǎn)換網(wǎng)關(guān)除了要進(jìn)行IPv4地址和IPv6地址轉(zhuǎn)換外,還要進(jìn)行協(xié)議的轉(zhuǎn)換和翻譯。轉(zhuǎn)換網(wǎng)關(guān)作為通信的中間設(shè)備,可在IPv4和IPv6網(wǎng)絡(luò)之間轉(zhuǎn)換IP首部的地址,同時(shí)根據(jù)協(xié)議不同對分組做相應(yīng)的語義翻譯,從而使純IPv4和純IPv6站點(diǎn)之間能夠透明通信。
隨著CNGI等項(xiàng)目的啟動(dòng),IPv6技術(shù)的戰(zhàn)略地位凸現(xiàn),主流網(wǎng)絡(luò)設(shè)備供應(yīng)商紛紛推出自己支持IPv6的產(chǎn)品,但同時(shí)也看到IPv6技術(shù)還遠(yuǎn)遠(yuǎn)沒有達(dá)到普及的程度。那么,IPv6技術(shù)究竟離我們有多遠(yuǎn)?目前阻止其廣泛應(yīng)用的障礙都有哪些?其實(shí)從IPv6技術(shù)本身來說,還有很多急待解決的問題,特別是過渡到IPv6技術(shù)之后,IPv6和IPv4對硬件平臺的要求有什么不同,及從IPv6如何過渡到規(guī)模應(yīng)用階段來說,保護(hù)用戶的投資顯得異常重要。8.1.1隧道技術(shù)
1.隧道技術(shù)概述
隧道(Tunnel)是指將一種協(xié)議首部封裝在另一種協(xié)議首部中,使得一種協(xié)議可以通過另一種協(xié)議的封裝進(jìn)行通信。IPv6隧道將IPv6首部封裝在IPv4首部中,這樣,IPv6數(shù)據(jù)包就可以穿越IPv4網(wǎng)絡(luò)進(jìn)行通信。在IPv6全面實(shí)施之前,總有一些網(wǎng)絡(luò)先提供對IPv6的支持,但是這些IPv6網(wǎng)絡(luò)被運(yùn)行IPv4的骨干網(wǎng)絡(luò)隔離開來。“IPv6overIPv4”的隧道就用來連接這些孤立的IPv6網(wǎng)絡(luò)。隧道技術(shù)目前是國際IPv6試驗(yàn)床6Bone所采用的技術(shù)。利用隧道技術(shù)可以通過現(xiàn)有的運(yùn)行IPv4的Internet骨干網(wǎng)絡(luò)(即隧道)將局部的IPv6網(wǎng)絡(luò)連接起來,因而是IPv4向IPv6過渡的初期最易于采用的技術(shù)。隧道技術(shù)的優(yōu)點(diǎn)在于隧道的透明性,IPv6主機(jī)之間的通信可以忽略隧道的存在,隧道只起到物理通道的作用。在隧道的入口處,路由器將IPv6的數(shù)據(jù)分組封裝在IPv4中,該
IPv4分組的源地址和目的地址分別是隧道入口和出口的IPv4地址,在隧道出口處,再將IPv6分組取出轉(zhuǎn)發(fā)給目的站點(diǎn)。隧道技術(shù)不需要大量的IPv6專用路由器設(shè)備和專用鏈路,可以明顯地減少投資。隧道技術(shù)的缺點(diǎn)是,在IPv4網(wǎng)絡(luò)上配置IPv6隧道是一個(gè)比較麻煩的過程,而且隧道技術(shù)不能實(shí)現(xiàn)IPv4主機(jī)和IPv6主機(jī)之間的通信。
Internet技術(shù)文檔RFC2473、RFC2893與RFC3056給出了隧道技術(shù)與數(shù)據(jù)包的封裝(將IPv6數(shù)據(jù)包封裝成IPv4數(shù)據(jù)包)的定義和配置技術(shù)。有兩種隧道:
(1)手動(dòng)配置隧道。在IPv4上承載IPv6,IPv6數(shù)據(jù)包被封裝成IPv4數(shù)據(jù)包,然后傳遞至IPv4路由基礎(chǔ)設(shè)施中。這些點(diǎn)對點(diǎn)的隧道需要手動(dòng)加以配置。
(2)自動(dòng)配置隧道。IPv4上承載IPv6,IPv6節(jié)點(diǎn)可以使用不同地址類型,如兼容IPv4的IPv6地址、6to4地址、ISATAP地址等,在一個(gè)IPv4路由網(wǎng)絡(luò)中動(dòng)態(tài)地建立隧道并通過它傳輸IP報(bào)文。這些特殊的IPv6單播地址在其某個(gè)IPv6地址字段中存儲(chǔ)著IPv4地址。
隧道可以用不同的方式來實(shí)現(xiàn),可以是路由器—路由器、主機(jī)—路由器、主機(jī)—主機(jī)或路由器一主機(jī)。
2.隧道技術(shù)工作原理
采用隧道技術(shù),兩個(gè)IPv6網(wǎng)絡(luò)通過純IPv4網(wǎng)絡(luò)實(shí)現(xiàn)互聯(lián),如圖8-2所示,主機(jī)PC-A位于某個(gè)IPv6網(wǎng)絡(luò)中,希望向另一IPv6網(wǎng)絡(luò)中的PC-B主機(jī)發(fā)送IPv6數(shù)據(jù)包。路由器R1和路由器R2之間的網(wǎng)絡(luò)是純IPv4網(wǎng)絡(luò),在R1和R2之間可以存在任意多個(gè)IPv4路由器。路由器R1是隧道入口點(diǎn)。實(shí)現(xiàn)過程如下:
(1)?PC-A將IPv6數(shù)據(jù)包發(fā)送至路由器R1上。
(2)路由器R1接收到發(fā)往PC-B的數(shù)據(jù)包后,開始把該數(shù)據(jù)包封裝在一個(gè)IPv4首部中,然后轉(zhuǎn)發(fā)至路由器R2。
(3)在路由器R2,也即隧道的出口點(diǎn),解開數(shù)據(jù)包的封裝,將IPv4首部剝離,取出IPv6數(shù)據(jù)包并轉(zhuǎn)發(fā)至最終的目的地PC-B。圖8-2兩個(gè)IPv6網(wǎng)絡(luò)通過純IPv4網(wǎng)絡(luò)實(shí)現(xiàn)互聯(lián)隧道有兩個(gè)端點(diǎn),一個(gè)是隧道入口點(diǎn),另一個(gè)則是隧道出口點(diǎn)。在圖8-2中,隧道的端點(diǎn)就是兩個(gè)路由器。根據(jù)隧道實(shí)現(xiàn)方式的不同,隧道的入口點(diǎn)及出口點(diǎn)既可能是主機(jī),也可能是路由器。如果隧道出口點(diǎn)是主機(jī),則原始數(shù)據(jù)包的IPv6目的地址應(yīng)該等同于隧道的出口點(diǎn),該地址應(yīng)該可從原始數(shù)據(jù)包的IPv6首部中獲得。如果隧道出口點(diǎn)是路由器,此時(shí)原始數(shù)據(jù)包的IPv6目標(biāo)地址并不等同于隧道的出口點(diǎn)地址。這種情況下,隧道入口點(diǎn)必須向隧道出口點(diǎn)提供地址信息。
IPv6數(shù)據(jù)包的封裝步驟如下:
(1)隧道入口點(diǎn)將IPv6數(shù)據(jù)報(bào)中跳數(shù)限制字段的值減去1,再把該數(shù)據(jù)包封裝進(jìn)某個(gè)IPv4首部中,接著通過隧道傳輸封裝后的數(shù)據(jù)包。如果有需要的話,也會(huì)將封裝后的IPv4數(shù)據(jù)包分段。
(2)隧道出口點(diǎn)接收到封裝后的數(shù)據(jù)包。如果數(shù)據(jù)包被分段,則由出口點(diǎn)重新進(jìn)行組裝。然后出口點(diǎn)剝離IPv4首部,將IPv6數(shù)據(jù)包傳遞至最初的目的地址。IPv6數(shù)據(jù)包封裝進(jìn)IPv4數(shù)據(jù)包的示意如圖8-3所示。圖8-3IPv6數(shù)據(jù)包封裝進(jìn)IPv4數(shù)據(jù)包從源主機(jī)發(fā)送到隧道入口點(diǎn)的是原始IPv6數(shù)據(jù)包,發(fā)送到隧道出口點(diǎn)的是封裝后的IPv4數(shù)據(jù)包。
需要注意的是IPv4首部中的下列字段:
●?HeaderLength(首部長度)字段除了包括IPv4首部的長度外,還要加上IPv6首部的長度,也要加上其它擴(kuò)展首部長度及IPv6有效載荷的長度。
●如果封裝后的數(shù)據(jù)包必須要加以分段,則標(biāo)志位(Flag)字段與段偏移(F0,F(xiàn)ragment,Offset)字段中就會(huì)填入對應(yīng)的值?!裆鏁r(shí)間(TTL,TimetoLive)字段的值取決于所使用的實(shí)現(xiàn)方式。
●協(xié)議號(ProtocolNumber)設(shè)置為41,這是指派給IPv6的值。如果想分析隧道中的IPv6通信,就要在分析器中設(shè)置一個(gè)過濾器,篩選出ProtocolNumber字段值為41的所有數(shù)據(jù)包。
●IPv4源地址(IPv4SourceAddress)指隧道入口點(diǎn)外發(fā)接口的地址,而IPv4目的地址(IPv4DestinationAddress)指隧道出口點(diǎn)的IPv4地址。●把IPv4上的IPv6隧道看成一跳,因此IPv6首部中的跳數(shù)限制(HopLimit)字段每次遞減1。這種方式對最終用戶隱藏了隧道的存在,而且一般工具,如traceroute等也檢測不到隧道的存在。
3.手工隧道
手工配置隧道(ConfiguredTunnel)需要隧道兩個(gè)端點(diǎn)所在網(wǎng)絡(luò)的管理員協(xié)作完成。隧道的端點(diǎn)地址由配置來決定,不需要為站點(diǎn)分配特殊的IPv6地址,適用于經(jīng)常通信的IPv6站點(diǎn)之間。每一個(gè)隧道的封裝節(jié)點(diǎn)必須保存隧道終點(diǎn)的地址,當(dāng)一個(gè)IPv6數(shù)據(jù)包在隧道上傳輸時(shí),終點(diǎn)地址會(huì)作為IPv4數(shù)據(jù)包的目的地址進(jìn)行封裝。通常封裝節(jié)點(diǎn)要根據(jù)路由信息決定一個(gè)包是否要通過隧道轉(zhuǎn)發(fā)。采用手工配置隧道進(jìn)行通信的站點(diǎn)之間必須有可用的IPv4連接,并且至少要具有一個(gè)全球唯一的IPv4地址。站點(diǎn)中每個(gè)主機(jī)都需要支持IPv6,路由器需要支持雙棧。在隧道要經(jīng)過NAT設(shè)施的情況下,這種機(jī)制不可用。
手工配置隧道如圖8-4所示。
圖8-4中,PC-A和PC-B主機(jī)分別位于兩個(gè)不同的IPv6網(wǎng)絡(luò),需要通過IPv4網(wǎng)絡(luò)通信。R1和R2為雙棧路由器,位于IPv4網(wǎng)絡(luò)的邊界,分別與兩個(gè)不同的IPv6網(wǎng)絡(luò)連接。進(jìn)行手工隧道配置時(shí),在R1和R2之間互相指定隧道的起點(diǎn)和終點(diǎn)。圖8-4手工隧道配置
4.基本的自動(dòng)隧道技術(shù)
1)配置隧道
在配置隧道中,隧道入口點(diǎn)上已經(jīng)配置了隧道出口點(diǎn)地址。封裝IPv6數(shù)據(jù)包的時(shí)候,隧道入口點(diǎn)使用該地址作為IPv4首部中的目的地址。
網(wǎng)段上的IPv6/IPv4主機(jī)即使沒有IPv6路由器,也可以配置出一個(gè)靜態(tài)路由指向IPv4隧道另一端的IPv6路由器(位于Internet上),這樣就可以和遠(yuǎn)程IPv6網(wǎng)絡(luò)進(jìn)行交流了。這種情況下,隧道另一端IPv6/IPv4路由器的IPv6地址將會(huì)加入到路由表中作為默認(rèn)路由?,F(xiàn)在,所有匹配該路由的IPv6目的地址都可以利用隧道通過IPv4基礎(chǔ)設(shè)施。默認(rèn)路由的掩碼為零,只有在不存在具有特定匹配掩碼或網(wǎng)絡(luò)前綴的其它路由器的情況下,才會(huì)使用此默認(rèn)路由。
2)自動(dòng)配置的隧道
自動(dòng)配置的隧道的建立和拆除是動(dòng)態(tài)的,它的端點(diǎn)根據(jù)分組的目的地址確定,適用于單獨(dú)的主機(jī)之間或不經(jīng)常通信的站點(diǎn)之間。自動(dòng)配置的隧道需要站點(diǎn)采用IPv4兼容的IPv6地址(IPv4CompatibleIPv6Address,0::IPv4ADDR/96),這些站點(diǎn)之間必須有可用的IPv4連接,每個(gè)采用這種機(jī)制的主機(jī)都需要有一個(gè)全球唯一的IPv4地址。采用這種機(jī)制不能解決IPv4地址空間耗盡的問題(采用手工配置隧道的站點(diǎn)就不需要IPv4地址)。此外,還有一種危險(xiǎn)就是,如果把Internet上的全部IPv4路由表包括到IPv6網(wǎng)絡(luò)中,那么會(huì)加劇路由表膨脹的問題。這種隧道的兩個(gè)端點(diǎn)都必須支持雙協(xié)議棧(手工配置就不需要)。這種機(jī)制不可以在隧道要經(jīng)過NAT設(shè)施的情況下使用。
3)自動(dòng)隧道與配置隧道的配合使用
很多時(shí)候,在不包含IPv6路由器的網(wǎng)段中,其中的IPv6/IPv4主機(jī)需要配合使用這兩種隧道技術(shù)。這類主機(jī)可以有兩個(gè)隧道路由條目。一個(gè)路由條目指向全零的96位前綴,只要數(shù)據(jù)包的目的地址為兼容IPv4的IPv6,這些數(shù)據(jù)包就會(huì)通過這個(gè)路由發(fā)送。另一個(gè)路由條目指向一個(gè)配置成自動(dòng)隧道的IPv6路由器,目的地址確實(shí)為IPv6的所有數(shù)據(jù)包將會(huì)通過該配置隧道進(jìn)行路由。這些真正的IPv6主機(jī)的應(yīng)答數(shù)據(jù)包將會(huì)被發(fā)送至該IPv6路由器上,由該路由器通過自動(dòng)隧道將這些數(shù)據(jù)包傳送回原始主機(jī)。如果發(fā)送數(shù)據(jù)包的主機(jī)既有兼容IPv4的IPv6地址,又有一個(gè)全局的真正IPv6地址,則對于發(fā)往兼容IPv4的IPv6目的主機(jī)上的數(shù)據(jù)包,該主機(jī)會(huì)用兼容IPv4的IPv6地址作為數(shù)據(jù)包的源地址;而對于發(fā)往真正IPv6目的主機(jī)上的數(shù)據(jù)包,該主機(jī)會(huì)用真正的IPv6地址作為數(shù)據(jù)包的源地址。下面通過一個(gè)名稱為PC-A的主機(jī)的路由表為例說明隧道配置情況:
C:\>ipv6rt
::/0→2/::2pref0(lifetime:1800s,publish,noaging)
2002::/162pref0(lifetime:1800s,publish,noaging)
::/96→2pref0(1ifetime:inlite)
C:\>顯示路由表的命令是ipv6rt。第一個(gè)條目為::/0。零長度的前綴表明該路由是默認(rèn)路由。數(shù)據(jù)包將通過2號接口跳至下一跳,其IPv6地址為2。這是一個(gè)兼容IPv4的IPv6地址,也就是PC-A所配置的6to4中繼路由器。這樣,所有無法匹配特定路由條目的IPv6通信都將被封裝進(jìn)一個(gè)IPv4首部中,然后通過該默認(rèn)路由被路由。PC-A上啟用了路由:其相關(guān)生存時(shí)間與發(fā)布標(biāo)志位表明該路由是一個(gè)發(fā)布路由。2號接口是隧道式偽接口,所有通過2號接口送出的通信都將被封裝進(jìn)一個(gè)IPv4首部中。
2002::/16條目表示該6to4中繼器的路由,同樣要通過2號接口送出,也要進(jìn)行封裝。有了這兩個(gè)路由之后,該主機(jī)既能到達(dá)6Bone,也能到達(dá)6to4主機(jī)。第3個(gè)路由條目表明路由指向前綴全零的96位掩碼。所有匹配該前綴的兼容IPv4的IPv6地址只要無法找到其它特定條目,就只有通過2號接口路由。
4)?IPv4多播隧道6over4
6over4也是一種自動(dòng)建立隧道的機(jī)制,在RFC2529中描述和定義,這種隧道端點(diǎn)的IPv4地址采用鄰居發(fā)現(xiàn)的方法確定。與手工配置隧道不同的是,它不需要任何地址配置;與自動(dòng)隧道不同的是它不要求使用IPv4兼容的IPv6地址。但是,采用這種機(jī)制的前提就是IPv4網(wǎng)絡(luò)基礎(chǔ)設(shè)施支持IPv4多播。這里的IPv4多播域可以是采用全球唯一的IPv4地址的網(wǎng)絡(luò),或是一個(gè)私有的IPv4網(wǎng)絡(luò)的一部分。這種機(jī)制適用于IPv6路由器沒有直接連接的物理鏈路上的孤立的IPv6主機(jī),使得它們能夠?qū)Pv4廣播域作為它們的虛擬鏈路,成為功能完全的IPv6站點(diǎn)。采用這種方法連接的IPv6站點(diǎn)不需要采用IPv4兼容地址,也不需要手工配置的隧道。當(dāng)采用6over4的站點(diǎn)通過一臺支持6over4的路由器與外界相連時(shí),站點(diǎn)內(nèi)的主機(jī)可以和外部IPv6站點(diǎn)通信。
5.隧道IPv6
技術(shù)文檔RFC2473給出了IPv6封裝的隧道模型與實(shí)現(xiàn)機(jī)制。IPv6隧道中的主要差別在于:數(shù)據(jù)包會(huì)被封裝進(jìn)一個(gè)IPv6首部中,并會(huì)通過IPv6網(wǎng)絡(luò)發(fā)送;所封裝的數(shù)據(jù)包可以是IPv6數(shù)據(jù)包,也可以是IPv4數(shù)據(jù)包,甚至還可能是其它協(xié)議包。隧道入口點(diǎn)會(huì)預(yù)處理IPv6首部,如有必要,會(huì)在原始數(shù)據(jù)包首部上添加一組擴(kuò)展(Extension)首部。隧道入口點(diǎn)所做的預(yù)處理工作稱為隧道IPv6(TunnelIPv6)首部。隧道IPv6首部及組成如圖8-5所示。圖8-5隧道IPv6首部及組成在隧道入口點(diǎn)處的IPv6首部中,其源地址是隧道入口節(jié)點(diǎn)的地址,而目的地址則是隧道出口節(jié)點(diǎn)的地址。隧道入口節(jié)點(diǎn)也可以是原始數(shù)據(jù)包的源節(jié)點(diǎn)。原始數(shù)據(jù)包的首部根據(jù)標(biāo)準(zhǔn)的轉(zhuǎn)發(fā)規(guī)則進(jìn)行處理。若是IPv4首部,則TTL字段將會(huì)減1。若是IPv6首部,HopLimit字段將會(huì)遞減1。這樣,隧道入口點(diǎn)和隧道出口點(diǎn)之間的網(wǎng)絡(luò)只相當(dāng)于一跳,而不管實(shí)際上其中存在多少跳。
TunnelIPv6首部根據(jù)IPv6規(guī)則進(jìn)行處理。如果數(shù)據(jù)包存在擴(kuò)展首部,則把該數(shù)據(jù)包看成標(biāo)準(zhǔn)的IPv6數(shù)據(jù)包進(jìn)行處理;舉個(gè)例子,Hop-by-HopExtension首部會(huì)被Hop-hopOptions字段中的所有節(jié)點(diǎn)進(jìn)行處理;DestinationOptions首部會(huì)被目的主機(jī)處理,也就是由隧道出口點(diǎn)加以處理。所有這些選項(xiàng)都在隧道入口處進(jìn)行配置,需要用到的DestinationOptions首部,如隧道封裝限制選項(xiàng)TELO(TunnelEncapsulationLimitOption)的配置。嵌套隧道的時(shí)候也可以使用該選項(xiàng)。隧道的某一跳可以是另一隧道的入口點(diǎn),這時(shí)就用到了嵌套隧道。第一個(gè)隧道稱為外部隧道,第二個(gè)隧道稱為內(nèi)部隧道。內(nèi)部隧道入口點(diǎn)把自外部隧道接收的整個(gè)數(shù)據(jù)包看成原始數(shù)據(jù)包。嵌套隧道的數(shù)目本身只有一個(gè)限制,就是IPv6數(shù)據(jù)包的最大尺寸。每次封裝都會(huì)增加TunnelIPv6首部的尺寸,理論上可以允許大約1600層嵌套隧道,不過這并不太現(xiàn)實(shí)。并且,也要考慮數(shù)據(jù)包被分段的情況,如果因?yàn)楦郊拥腡unnelIPv6首部使數(shù)據(jù)包的尺寸增大而導(dǎo)致再次分段,那么分段的數(shù)目將會(huì)加倍。因此,需要有一種機(jī)制限制嵌套隧道的層數(shù)。RFC2473對隧道封裝限制選項(xiàng)(TELO)做了規(guī)定,該選項(xiàng)會(huì)帶有一個(gè)DestinationOption首部,隧道封裝限制選項(xiàng)的格式如圖8-6所示。圖8-6隧道封裝限制選項(xiàng)的格式隧道封裝限制選項(xiàng)格式中的三個(gè)字段的功用如下:
(1)選項(xiàng)類型(OptionType)字段,占1字節(jié),十進(jìn)制值4表示隧道封裝限制選項(xiàng)。
(2)選項(xiàng)數(shù)據(jù)長度(OptionDataLength)字段,占1字節(jié),圖8-6中該字段的十進(jìn)制值為1,這代表接下來的選項(xiàng)數(shù)據(jù)(OptionData)字段的長度。
(3)選項(xiàng)數(shù)據(jù)(OptionData)字段,占1字節(jié),在圖8-6中,選項(xiàng)字段的長度為1字節(jié),存儲(chǔ)了隧道封裝限制選項(xiàng)的真正值。該字段的值表示能夠允許多少層封裝。如果該值為零,就直接丟棄該數(shù)據(jù)包,向該數(shù)據(jù)包的源地址(即前一個(gè)隧道的隧道入口點(diǎn))發(fā)送一條ICMP參數(shù)問題報(bào)文。如果該值為非零值,就封裝并轉(zhuǎn)發(fā)該數(shù)據(jù)包,這時(shí)候會(huì)應(yīng)用一個(gè)新的隧道封裝限制選項(xiàng),其值比已封裝的數(shù)據(jù)包中所收到的限制值小1。如果所接收到的數(shù)據(jù)包沒有隧道封裝限制,但該隧道的入口點(diǎn)卻配置了該選項(xiàng),則這時(shí)隧道入口點(diǎn)就必須考慮目的選項(xiàng)首部以及所配置的值。應(yīng)該避免環(huán)路封裝。當(dāng)某個(gè)節(jié)點(diǎn)所封裝的數(shù)據(jù)包來源于自身,并且目標(biāo)也是自己時(shí),就會(huì)出現(xiàn)回送封裝。如果隧道的入口點(diǎn)與出口點(diǎn)都屬于同一個(gè)主機(jī),則IPv6實(shí)現(xiàn)應(yīng)該檢查、拒絕這種隧道配置,從而避免環(huán)路封裝。另一種意外情況是路由循環(huán)嵌套封裝。如果某個(gè)來自于內(nèi)部隧道的數(shù)據(jù)包重新進(jìn)入外部隧道(但這時(shí)它還沒有退出該外部隧道),則會(huì)出現(xiàn)路由循環(huán)嵌套封裝。只有配合使用原始數(shù)據(jù)包的跳數(shù)限制和隧道封裝限制配置,才能控制這種路由循環(huán)嵌套封裝。
隧道IPv6(TunnelIPv6)首部的格式如圖8-7所示。圖8-7隧道IPv6的首部格式隧道入口點(diǎn)上可以預(yù)處理的IPv6首部中的字段包括:
(1)版本(Version),該字段的值為6。
(2)傳輸類型(TrafficClass),該字段的值為原始數(shù)據(jù)包的值,或在隧道入口點(diǎn)上預(yù)先配置的值。
(3)流標(biāo)簽(FlowLabel),該字段的值為0,或者為隧道入口點(diǎn)上預(yù)先配置的值。
(4)有效載荷長度(PayloadLength),該字段的值為原始數(shù)據(jù)包的長度值加上隧道入口點(diǎn)所預(yù)處理的所有擴(kuò)展首部(若有的話)的長度值。
(5)下一個(gè)首部(NextHeader),該字段的值為協(xié)議編號或擴(kuò)展首部的編碼值,如41標(biāo)識IPv6,0標(biāo)識Hop-by-Hop擴(kuò)展首部,60標(biāo)識目的選項(xiàng)首部。
(6)跳數(shù)限制(Hoplimit),該字段的值為隧道入口點(diǎn)上預(yù)先配置的值。
(7)隧道IPv6首部的源地址(SourceAddress),該字段的值為隧道入口點(diǎn)外接口的IPv6地址。
(8)目標(biāo)地址(DestinationAddress),該字段的值為隧道出口點(diǎn)的IPv6地址。需要注意的是,配置成隧道入口點(diǎn)的主機(jī)必須支持所封裝數(shù)據(jù)包的分段。所封裝的數(shù)據(jù)包可以超過隧道的路徑MTU(PathMTU)的值。由于人們把隧道入口點(diǎn)當(dāng)做已封裝數(shù)據(jù)包的源,因此必要的時(shí)候必須進(jìn)行分段,隧道出口節(jié)點(diǎn)將重新組裝該數(shù)據(jù)包。如果原始數(shù)據(jù)包是IPv4數(shù)據(jù)包,且設(shè)置了不分段(Don’tFragment)標(biāo)志位,則這時(shí)隧道入口點(diǎn)將丟棄該數(shù)據(jù)包,同時(shí)向該數(shù)據(jù)包的源地址發(fā)送回一條目的地不可達(dá)(DestinationUnreachable)ICMP報(bào)文,該報(bào)文附帶的信息為“需要分段和設(shè)置DF位(FragmentationNeededandDFSet)”。
6.6to4機(jī)制
技術(shù)文檔RFC3065定義和描述的6to4也是一種自動(dòng)構(gòu)造隧道的機(jī)制,這種機(jī)制要求站點(diǎn)采用特殊IPv6地址(2002:IPv4ADDR::/48)。這種地址是自動(dòng)從站點(diǎn)的IPv4地址派生出來的,所以每個(gè)采用6to4機(jī)制的節(jié)點(diǎn)至少必須具有一個(gè)全球唯一的IPv4地址。這種地址分配方法,可以使得其它域的邊界路由器自動(dòng)區(qū)分隧道接收端點(diǎn)是否在本域內(nèi)。由于這種機(jī)制下隧道端點(diǎn)的IPv4地址可以從IPv6地址中提取,因此隧道的建立是自動(dòng)的。6to4不會(huì)在IPv4的路由表中引入新的條目,在IPv6的路由表中只增加一條表項(xiàng)。采用6to4機(jī)制的IPv6ISP只需要做很少的管理工作,這種機(jī)制很適用于運(yùn)行IPv6的站點(diǎn)之間的通信。6to4要求隧道中至少有兩臺路由器支持雙棧和6to4,主機(jī)要求至少支持IPv6協(xié)議棧。
6to4機(jī)制允許在采用6to4的IPv6站點(diǎn)和純IPv6站點(diǎn)之間通過中繼路由器(6to4RelayRouter)進(jìn)行通信,這時(shí)不要求通信的兩個(gè)端點(diǎn)之間具有可用的IPv4連接,中繼路由器建議運(yùn)行BGP4+。
這種機(jī)制把廣域IPv4網(wǎng)絡(luò)作為一個(gè)單播的點(diǎn)到點(diǎn)鏈路層。這種機(jī)制適合作為IPv4和IPv6共存的初始階段的轉(zhuǎn)換工具,它可以與防火墻、NAT共存,但是NAT必須具有全球唯一的IPv4地址,并且應(yīng)有6to4機(jī)制和完備的路由功能。在隧道終點(diǎn),任何從正常IPv4鏈路傳來的6to4數(shù)據(jù)流都可以被接收和解封裝。為了防止IPv6欺騙,可采用附加的基于源地址的包過濾技術(shù)。一種方法就是檢查用于封裝的IPv4地址是否與被封裝的IPv6包頭地址一致。這種檢查要在中繼路由器(RelayRouter)中設(shè)置。在任何情況下,6to4數(shù)據(jù)流中的源和目的地址嵌入的IPv4地址必須是全球唯一單播地址格式,否則這些數(shù)據(jù)包將會(huì)在不被警告的情況下被丟棄。
6to4隧道技術(shù)可以實(shí)現(xiàn)IPv6節(jié)點(diǎn)之間使用不經(jīng)過事先聲明的IPv4隧道通過IPv4網(wǎng)絡(luò)相互通信。6to4機(jī)制在RFC3056文檔“經(jīng)過IPv4網(wǎng)絡(luò)的IPv6域連接(ConnectionofIPv6DomainsviaIPv4clouds)”中定義和說明。所經(jīng)過的IPv4網(wǎng)絡(luò)可以被看做是一個(gè)單播的點(diǎn)對點(diǎn)鏈路層,純IPv6域通信通過6to4網(wǎng)關(guān)連接IPv4網(wǎng)絡(luò)。6to4網(wǎng)關(guān)實(shí)現(xiàn)時(shí)是一臺6to4路由器。IPv6數(shù)據(jù)包在6to4網(wǎng)關(guān)上被封裝進(jìn)IPv4,這種配置中至少需要一個(gè)全球唯一的IPv4單播地址。
6to4自動(dòng)構(gòu)造隧道機(jī)制在構(gòu)造地址時(shí)采用6to4地址,6to4地址是一種特殊的IPv6地址,它以2002開頭,后面跟著的32位IPv4地址轉(zhuǎn)化為32位十六進(jìn)制表表示,構(gòu)成一個(gè)48位的6to4前綴2002::IPv4ADDR::/48。ICANN為這種6to4機(jī)制指派了一個(gè)特定的頂級聚合TLA(TopLevelAggregation),其地址前綴為2002::/16。6to4前綴的格式如圖8-8所示。圖8-86to4前綴的格式前綴2002::/16之后是以十六進(jìn)制表示的32位IPv4地址,標(biāo)識6to4網(wǎng)關(guān)地址。緊接著后面80位地址空間,可以用16位表示本地網(wǎng)絡(luò)地址,即能創(chuàng)建65536個(gè)網(wǎng)絡(luò);剩下的64位可用來表示某個(gè)網(wǎng)絡(luò)中的節(jié)點(diǎn)地址,每個(gè)網(wǎng)絡(luò)可以有264個(gè)節(jié)點(diǎn)。
通過6to4中繼路由器,6to4網(wǎng)絡(luò)中的主機(jī)可以和遠(yuǎn)程IPv6網(wǎng)絡(luò)(例如6Bone)上的其它IPv6主機(jī)通信。中繼路由器用以把6to4網(wǎng)絡(luò)連接至純IPv6網(wǎng)絡(luò)上。需要說明的是,Internet上有很多公共的6to4中繼路由器可供使用,這些中繼路由器的列表可以通過瀏覽網(wǎng)頁/-nsayer/6to4/查到。
6to4中繼路由器任播地址在RFC3068文檔中定義,目的是簡化6to4網(wǎng)關(guān)的配置(這種網(wǎng)關(guān)原來需要一個(gè)默認(rèn)路由才能找到Internet上的6to4中繼路由器)。所指派的任播地址對應(yīng)著前綴中的第一個(gè)節(jié)點(diǎn),如。6to4路由器上必須配置一個(gè)默認(rèn)路由指向該任播地址。使用這個(gè)地址意味著6to4數(shù)據(jù)包會(huì)自動(dòng)地路由至最近的可用6to4中繼路由器。如果6to4中繼路由器掉線了,也沒有必要重新配置6to4網(wǎng)關(guān),數(shù)據(jù)包會(huì)自動(dòng)重新路由至下一個(gè)可用的中繼路由器。如果主機(jī)希望和純IPv6子網(wǎng)中的某個(gè)節(jié)點(diǎn)進(jìn)行通信(如目的地址為3fie:B00:c18:1::10的節(jié)點(diǎn)),IPv4首部目的地址將是保留的任播地址,而該IPv4數(shù)據(jù)包則被傳遞至最近的6to4中繼路由器。對某個(gè)純IPv6主機(jī)希望把數(shù)據(jù)包發(fā)送至6to4網(wǎng)絡(luò)群中的情況,純IPv6主機(jī)將會(huì)廣播前綴2002::/16,把自己的數(shù)據(jù)包路由至最近的6to4中繼路由器。
6to4站點(diǎn)的IPv6數(shù)據(jù)包進(jìn)入外部IPv4網(wǎng)絡(luò)的時(shí)候,通過6to4網(wǎng)關(guān)把這些IPv6數(shù)據(jù)包封裝進(jìn)IPv4數(shù)據(jù)包中,再在外部IPv4網(wǎng)絡(luò)中傳輸。
兩個(gè)主機(jī),若一個(gè)僅有6to4地址,而另一個(gè)有一個(gè)6to4地址及一個(gè)純IPv6地址,則這兩個(gè)主機(jī)都只能使用6to4進(jìn)行通信。若兩個(gè)主機(jī)都有6to4地址及純IPv6地址,則既可以使用6to4地址也可以使用純IPv6地址進(jìn)行通信,默認(rèn)情況是選用純IPv6地址通信。
7.ISATAP
ISATAP是站點(diǎn)內(nèi)自動(dòng)隧道尋址協(xié)議(Intra-SiteAutomaticTunnelAddressingProtocol)的縮寫,用來為沒有IPv6路由器的IPv4內(nèi)部網(wǎng)中的IPv6節(jié)點(diǎn)提供IPv6連接。通過ISATAP配置,不需要有IPv6路由器就可以在內(nèi)部網(wǎng)絡(luò)中、防火墻之后部署IPv6。如果使用了專用IPv4地址及NAT,ISATAP還可以提供一種自動(dòng)隧道機(jī)制。ISATAP用到的地址是在其EUI-64接口標(biāo)識符內(nèi)嵌入一個(gè)IPv4地址。與ISATA有關(guān)的技術(shù)文檔可以查閱/internet-drafts/draft-ieft-ngtrans-isatap-04.txt。ISATAP地址的格式如圖8-9所示。圖8-9ISATAP地址的格式
ISATAP地址格式可以概括成“64位前綴:5EFE:IPv4地址”。ISATAP地址有一個(gè)標(biāo)準(zhǔn)的64位前綴,可以是本地鏈路、本地站點(diǎn)、6to4前綴,也可以是全球可匯聚單播地址。接口標(biāo)識符中用到了IANA的OUI,即00005E,后面一個(gè)字節(jié)是類型字段,取值FE表示該地址中包含一個(gè)嵌入式IPv4地址。最后4字節(jié)指IPv4地址,這里可以寫成點(diǎn)分十進(jìn)制表示。例如,假設(shè)所指派的前綴為2001:620:600:200::/64,IPv4地址為15,這時(shí)ISATAP地址為2001:620:600:200:0:5EFE:
3E02:5473。也可以把該地址寫成2001:620:600:200:0:5EFE:
15。所對應(yīng)的本地鏈路地址為FE80::5EFE:15。
IPv4網(wǎng)絡(luò)中的IPv6主機(jī)可以利用ISATAP相互通信,不需要IPv6路由器。如果這些主機(jī)要和Internet上的IPv6主機(jī)進(jìn)行通信,如6Bone上的IPv6主機(jī)通信,則需要配置一個(gè)邊界路由器,這個(gè)邊界路由器可以是ISATAP路由器,也可以是6to4網(wǎng)關(guān)。
IPv4網(wǎng)絡(luò)中所有主機(jī)的IPv4地址都可以嵌入到標(biāo)準(zhǔn)ISATAP前綴中,使得這些地址是唯一的,且可路由的。具有標(biāo)準(zhǔn)ISATAP前綴的主機(jī)稱為ISATAP主機(jī),可以給大量的
ISATAP主機(jī)指派一個(gè)ISATAP前綴。對于內(nèi)部網(wǎng)絡(luò)中的某個(gè)網(wǎng)段上部署了IPv6的情況,可以在某個(gè)純IPv6節(jié)點(diǎn)配置一個(gè)ISATAP接口,使得這個(gè)IPv6節(jié)點(diǎn)擔(dān)當(dāng)純IPv6網(wǎng)段與IPv4網(wǎng)段內(nèi)ISATAP主機(jī)之間的路由器。由于IPv4網(wǎng)絡(luò)上的ISATAP節(jié)點(diǎn)沒有能給它們發(fā)送自動(dòng)配置前綴信息的IPv6路由器,因此就需要配置這些ISATAP節(jié)點(diǎn)的前綴。若這些ISATAP節(jié)點(diǎn)需要連接Internet,則需要配置能指向ISATAP路由器或6to4網(wǎng)關(guān)的默認(rèn)路由。ISATAP機(jī)制可以實(shí)現(xiàn)自動(dòng)啟用站內(nèi)IPv6路由器搜索與無狀態(tài)地址自動(dòng)配置?,F(xiàn)在正在討論一種ISATAP路由器任播地址,這種地址的工作方式類似前面所闡述的6to4任播地址。8.1.2雙棧技術(shù)
1.雙棧技術(shù)工作原理
IPv6/IPv4雙(協(xié)議)棧技術(shù)是使IPv6網(wǎng)絡(luò)節(jié)點(diǎn)具有一個(gè)IPv4棧和一個(gè)IPv6棧,同時(shí)支持IPv4和IPv6的技術(shù)。IPv6和IPv4是功能相近的網(wǎng)絡(luò)層協(xié)議,兩者都應(yīng)用于相同的數(shù)據(jù)鏈路層和物理層協(xié)議平臺,并承載相同的運(yùn)輸層協(xié)議TCP或UDP。如果一臺主機(jī)同時(shí)支持IPv6和IPv4,那么該主機(jī)就可以和僅支持IPv4或IPv6的主機(jī)通信。IPv6/IPv4雙(協(xié)議)棧的協(xié)議結(jié)構(gòu)如圖8-10所示。圖8-10IPv6/IPv4雙協(xié)議棧的協(xié)議結(jié)構(gòu)雙棧節(jié)點(diǎn)和IPv6節(jié)點(diǎn)進(jìn)行通信的時(shí)候,就像一個(gè)純IPv6節(jié)點(diǎn),而當(dāng)它和IPv4節(jié)點(diǎn)通信的時(shí)候,又像一個(gè)純IPv4節(jié)點(diǎn)。這類節(jié)點(diǎn)實(shí)現(xiàn)中可能有一個(gè)配置開關(guān)來啟用或禁用其中某個(gè)棧,因此這類節(jié)點(diǎn)將有三種操作模式:啟用IPv4棧而禁用IPv6棧時(shí),節(jié)點(diǎn)就像一個(gè)純IPv4節(jié)點(diǎn);啟用IPv6棧而禁用IPv4棧時(shí),節(jié)點(diǎn)就像一個(gè)純IPv6節(jié)點(diǎn);同時(shí)啟用IPv4棧和IPv6棧時(shí),該節(jié)點(diǎn)能使用這兩種協(xié)議版本。
節(jié)點(diǎn)使用IPv4機(jī)制進(jìn)行IPv4地址配置(靜態(tài)配置或DHCP),而使用IPv6機(jī)制進(jìn)行IPv6地址配置(靜態(tài)配置或自動(dòng)配置)。雙棧網(wǎng)絡(luò)構(gòu)建了一個(gè)基礎(chǔ)設(shè)施,這個(gè)框架中,路由器上已經(jīng)啟用了IPv4轉(zhuǎn)發(fā)與IPv6轉(zhuǎn)發(fā)。這種技術(shù)的缺點(diǎn)在于必須升級整個(gè)網(wǎng)絡(luò)軟件后才能運(yùn)行兩個(gè)獨(dú)立的協(xié)議棧。這意味著要同步存儲(chǔ)所有的表(如路由表),還要為這兩種協(xié)議都配置路由協(xié)議。對網(wǎng)絡(luò)管理而言,需根據(jù)協(xié)議的不同采用單獨(dú)的命令,如在使用Microsoft操作系統(tǒng)的主機(jī)上,測試網(wǎng)絡(luò)連接通路的命令,IPv4使用ping.exe,而IPv6使用ping6.exe。
IPv6/IPv4雙(協(xié)議)棧技術(shù)在具體實(shí)現(xiàn)上有不同的方式和應(yīng)用環(huán)境,目前的雙棧技術(shù)有基本雙棧技術(shù)、有限雙棧技術(shù)、雙棧翻譯機(jī)制DSTM(DualStackTranslationModel)技術(shù)。
2.基本雙棧和有限雙棧技術(shù)
雙棧技術(shù)是一切過渡技術(shù)的基礎(chǔ),隧道機(jī)制和翻譯機(jī)制都需要利用雙棧節(jié)點(diǎn)。實(shí)現(xiàn)雙棧機(jī)制的節(jié)點(diǎn)稱為雙棧節(jié)點(diǎn)。雙棧具有三種工作模式:只運(yùn)行IPv6,對外呈現(xiàn)為IPv6節(jié)點(diǎn);只運(yùn)行IPv4,對外呈現(xiàn)為IPv4節(jié)點(diǎn);同時(shí)運(yùn)行IPv4和IPv6,對外呈現(xiàn)雙棧模式。
雙棧節(jié)點(diǎn)可以支持三種隧道模式:不運(yùn)行隧道;僅運(yùn)行手工隧道;同時(shí)運(yùn)行手工和自動(dòng)隧道。在IPv4到IPv6的過渡過程中,作為Internet基礎(chǔ)架構(gòu)的DNS服務(wù)也要支持這種網(wǎng)絡(luò)協(xié)議的升級和轉(zhuǎn)換。IPv6和IPv4都使用DNS來解析名稱與IP地址。IPv6/IPv4節(jié)點(diǎn)需要有一個(gè)DNS解析器來同時(shí)解析這兩種DNS地址記錄。DNS的A記錄用來解析IPv4地址,而DNS的AAAA記錄或A6記錄將用來解析IPv6地址。DNS服務(wù)器需要對地址進(jìn)行驗(yàn)證,IPv6必須滿足三項(xiàng)規(guī)定:
(1)地址是分配給某個(gè)節(jié)點(diǎn)的一個(gè)接口。
(2)地址在接口上配置。
(3)接口連接的鏈路連接到IPv6網(wǎng)絡(luò)。主機(jī)采用雙??梢酝瑫r(shí)收發(fā)IPv6和IPv4協(xié)議包,可以方便地與其它IPv6節(jié)點(diǎn)和IPv4節(jié)點(diǎn)通信。路由器采用雙棧可以實(shí)現(xiàn)隧道和翻譯技術(shù)。
有限雙棧技術(shù)LDSM(LimitedDualStackModel)是對雙棧技術(shù)的改進(jìn),要求服務(wù)器主機(jī)和路由器是雙棧的,非服務(wù)器主機(jī)僅需要支持IPv6。有限雙棧技術(shù)的優(yōu)點(diǎn)是僅需要較少的IPv4地址。有限雙棧技術(shù)(LDSM)在RFC2893中定義。
3.雙棧機(jī)制DSTM
在以IPv6為主的網(wǎng)絡(luò)中,節(jié)點(diǎn)可能需要與一些沒有實(shí)現(xiàn)雙棧的IPv4節(jié)點(diǎn)通信,需要節(jié)點(diǎn)實(shí)現(xiàn)雙棧。在網(wǎng)絡(luò)中同時(shí)支持兩種網(wǎng)絡(luò)層協(xié)議,將增加網(wǎng)絡(luò)管理的開銷和復(fù)雜程度,如需要分配的地址量大、路由設(shè)備要求高等,比較好的解決方法是使網(wǎng)絡(luò)策略盡可能支持IPv6。
DSTM可以為以IPv6為主的網(wǎng)絡(luò)中的雙棧節(jié)點(diǎn)分配臨時(shí)IPv4地址,并采用IPv4overIPv6隧道機(jī)制。在早期的IPv6網(wǎng)絡(luò)中,DSTM用于避免使用NAT與遺留IPv4節(jié)點(diǎn)和程序通信。
DSTM有以下基本假定:
(1)?DSTM域是在一個(gè)內(nèi)部網(wǎng)(Intranet)上。
(2)?DSTM節(jié)點(diǎn)只在與IPv4節(jié)點(diǎn)通信時(shí)才需要維護(hù)IPv4地址。
(3)?DSTM僅維護(hù)必要的IPv4路由,盡可能地使用IPv6路由。
(4)當(dāng)節(jié)點(diǎn)獲得IPv4地址后,節(jié)點(diǎn)采用動(dòng)態(tài)隧道技術(shù)將IPv4數(shù)據(jù)封裝在IPv6數(shù)據(jù)包中,發(fā)往邊界路由器。
(5)已經(jīng)存在的IPv4節(jié)點(diǎn)和應(yīng)用程序不用做任何修改。在DSTM網(wǎng)絡(luò)中,通過給雙棧節(jié)點(diǎn)分配臨時(shí)IPv4地址實(shí)現(xiàn)與IPv4節(jié)點(diǎn)的通信,不要求對IPv4節(jié)點(diǎn)和IPv4應(yīng)用程序進(jìn)行任何改動(dòng)。實(shí)現(xiàn)DSTM的系統(tǒng)由DSTM服務(wù)器和DSTM節(jié)點(diǎn)組成,DSTM服務(wù)器為客戶節(jié)點(diǎn)分配IPv4地址,為DSTM節(jié)點(diǎn)指定隧道端點(diǎn)TEP(TunnelEndPoints)。要求DSTM服務(wù)器保證在一段時(shí)間內(nèi)所分配的IPv4地址是唯一的。DSTM節(jié)點(diǎn)使用TEP把IPv4數(shù)據(jù)封裝在IPv4數(shù)據(jù)包中,發(fā)往DSTM邊界路由器。邊界路由器收到這種IPv4overIPv6數(shù)據(jù)包后,將從IPv6數(shù)據(jù)包中取出IPv4數(shù)據(jù),然后把Ipv4數(shù)據(jù)包發(fā)往IPv4目的地。依據(jù)類似的原理,DSTM邊界路由器在收到返回的IPv4數(shù)據(jù)包時(shí),將IPv4數(shù)據(jù)包封裝到IPv6數(shù)據(jù)包中,再發(fā)往正確的DSTM節(jié)點(diǎn)。
DSTM網(wǎng)絡(luò)的組成和實(shí)現(xiàn)如圖8-11所示。圖8-11DSTN網(wǎng)絡(luò)的組成和實(shí)現(xiàn)
DSTM網(wǎng)絡(luò)的組成包括:DSTM服務(wù)器、DSTM客戶節(jié)點(diǎn)和隧道端點(diǎn)(TEP)。
DSTM服務(wù)器的實(shí)現(xiàn)包括:客戶訪問模塊,根據(jù)客戶的請求給出并返回IPv4地址和信息;地址訪問模塊,維護(hù)IPv4地址的存活期;路由信息訪問模塊,用于學(xué)習(xí)和配置DSTM域內(nèi)的TEP信息,為客戶提供TEP信息。
DSTM客戶節(jié)點(diǎn)獲得從DSTM服務(wù)器返回的IPv4地址和TEP信息,獲得的IPV4地址有一定的存活期,超過期限后節(jié)點(diǎn)不能繼續(xù)使用該地址。節(jié)點(diǎn)不允許動(dòng)態(tài)更新DNS返回給DSTM服務(wù)器訪問模塊的IPv4地址。節(jié)點(diǎn)可以手工配置TEP,也可以使用動(dòng)態(tài)隧道技術(shù)配置TEP。
TEP能夠正確地拆解封裝IPv4overIPv6的數(shù)據(jù)包。當(dāng)通信僅限于內(nèi)部網(wǎng)時(shí),可以使用私用地址。若域內(nèi)某節(jié)點(diǎn)需要訪問公網(wǎng)IPv4節(jié)點(diǎn),則DSTM服務(wù)器最好將公網(wǎng)IPv4分配給該節(jié)點(diǎn)。
DSTM服務(wù)器負(fù)責(zé)為IPv6網(wǎng)絡(luò)中的主機(jī)分配和管理臨時(shí)的IPv4地址。為了減少對IPv4地址的需求,DSTM服務(wù)器可以結(jié)合主機(jī)的端口識別把同一個(gè)IPv4地址分配給不同的主機(jī)、DSTM服務(wù)器。需要維持已經(jīng)分配的IPv4地址與IPv6主機(jī)之間的映射關(guān)系,服務(wù)器分配給IPv6主機(jī)的IPv4地址需在一定時(shí)間內(nèi)收回,若還需要必須重新申請。DSTM服務(wù)器與內(nèi)部節(jié)點(diǎn)之間的通信必須使用IPv6協(xié)議,DSTM服務(wù)器也提供對節(jié)點(diǎn)請求的認(rèn)證。
DSTM客戶節(jié)點(diǎn)擁有雙協(xié)議棧、客戶端程序和IPv4到IPv6的轉(zhuǎn)換接口。DSTM客戶節(jié)點(diǎn)之間的通信處于IPv6網(wǎng)絡(luò)內(nèi)使用IPv6地址。DSTM客戶節(jié)點(diǎn)需要一個(gè)IPv4地址的依據(jù)是:
(1)當(dāng)DNS查詢返回一個(gè)IPv4地址時(shí)。
(2)當(dāng)一個(gè)應(yīng)用程序打開一個(gè)IPv4套接字時(shí)。
(3)當(dāng)一個(gè)IPv4包已經(jīng)發(fā)出,還沒有得到接口的處理時(shí)。
DSTM客戶節(jié)點(diǎn)發(fā)送第一個(gè)IPv4包時(shí),DSTM客戶端程序與DSTM服務(wù)器取得聯(lián)系,得到臨時(shí)的IPv4地址和TEP的IPv6地址,IPv4overIPv6接口負(fù)責(zé)把IPv4包封裝在IPv6包中。TEP負(fù)責(zé)將內(nèi)部封裝在IPv6包中的IPv4包解封裝,或?qū)腎Pv6網(wǎng)絡(luò)外部進(jìn)來的IPv4包封裝在IPv6包中。
DSTM的優(yōu)點(diǎn)主要有:
(1)協(xié)議對網(wǎng)絡(luò)是透明的,由于采用封裝的封裝,因此在IPv6網(wǎng)絡(luò)中不需要IPv4路由器。
(2)協(xié)議對應(yīng)用程序是透明的,在雙協(xié)議棧主機(jī)上的應(yīng)用程序與在IPv4上的應(yīng)用程序一樣,不需要修改。
(3)采用DHCPv6允許動(dòng)態(tài)分配IPv4地址。
DSTM存在的問題主要有:
(1)不支持不對稱路徑,從IPv4節(jié)點(diǎn)返回的數(shù)據(jù)必須經(jīng)過相同的TEP設(shè)備。
(2)存在一定的網(wǎng)絡(luò)處理延遲,不能滿足實(shí)時(shí)業(yè)務(wù)應(yīng)用。8.1.3翻譯技術(shù)
翻譯技術(shù)即協(xié)議轉(zhuǎn)換技術(shù),在文檔RFC2765和RFC2766中定義和描述,是與雙棧技術(shù)、隧道技術(shù)一起提供的主要過渡機(jī)制。該機(jī)制的目標(biāo)是為IPv6網(wǎng)絡(luò)節(jié)點(diǎn)與IPv4網(wǎng)絡(luò)節(jié)點(diǎn)相互通信提供透明的路由。RFC2766中定義和描述的內(nèi)容如下:
(1)網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT),轉(zhuǎn)換IP地址、TCP、UDP及ICMP首部校驗(yàn)和等。
(2)網(wǎng)絡(luò)地址接1∶3轉(zhuǎn)換(NAPT,NetworkAddressPortTranslation),除了NAT傳輸中所轉(zhuǎn)換的字段之外,還要轉(zhuǎn)換其它標(biāo)識符,如TCP端口號、UDP端口號、ICMP報(bào)文類型等。
(3)網(wǎng)絡(luò)地址轉(zhuǎn)換與協(xié)議轉(zhuǎn)換(NAT-PT,NetworkAddressTranslationProtocolTranslation)允許IPv6數(shù)據(jù)包與等價(jià)IPv4數(shù)據(jù)包之間的相互轉(zhuǎn)換。
1.NAT
NAT(NetworkAddressTranslation)最初用于解決IPv4地址短缺問題,允許一個(gè)內(nèi)網(wǎng)只有一個(gè)合法的Internet地址,在內(nèi)部網(wǎng)絡(luò)中可以使用專用IP地址,通過設(shè)置硬件的或軟件的NAT,把內(nèi)網(wǎng)(Intranet)的專用IP地址轉(zhuǎn)換為外網(wǎng)(Internet)上可以使用的公用IP地址。NAT的另一個(gè)主要作用是對外網(wǎng)屏蔽了內(nèi)網(wǎng)節(jié)點(diǎn)的地址,實(shí)現(xiàn)內(nèi)網(wǎng)和外網(wǎng)之間的隔離,起到了網(wǎng)絡(luò)安全作用。NAT的功能可以設(shè)置在路由器、防火墻或NAT設(shè)備中,NAT通過維護(hù)一個(gè)地址轉(zhuǎn)換表,把內(nèi)網(wǎng)的專用IP地址映射到外網(wǎng)的IP地址。NAT有三種類型:靜態(tài)NAT、動(dòng)態(tài)NAT和網(wǎng)絡(luò)地址端口轉(zhuǎn)換NAPT。對于IPv4向IPv6過渡機(jī)制來講,這里的內(nèi)網(wǎng)和外網(wǎng)可以分別對應(yīng)IPv4網(wǎng)絡(luò)或IPv6網(wǎng)絡(luò)。在內(nèi)網(wǎng)與外網(wǎng)之間的NAT提供了IPv6網(wǎng)絡(luò)與IPv4網(wǎng)絡(luò)之間的路由。NAT可以是雙向的,也可以是非雙向的。雙向的例子是兩端都可以發(fā)起會(huì)話,單向的例子是只有IPv6主機(jī)才能發(fā)起會(huì)話。IPv4網(wǎng)絡(luò)上的主機(jī)使用DNS解析域名,把域名解析為該域名所對應(yīng)的IP地址,DNS應(yīng)用層網(wǎng)關(guān)ALG
(ApplicationLayerGateway)能相互轉(zhuǎn)換IPv6地址與IPv4NAT地址綁定。
NAT網(wǎng)關(guān)使用一個(gè)IPv4地址池,并把這些地址和相應(yīng)的IPv6地址綁定在一起。不需要對終端節(jié)點(diǎn)做任何修改。
2.NAPT
從IPv6主機(jī)經(jīng)NAPT網(wǎng)關(guān)發(fā)送至IPv4主機(jī)上,然后返回。NAPT數(shù)據(jù)包的傳輸過程如圖8-12所示。
圖8-12中,IPv6主機(jī)PC-B的IPv6地址為ABCD:BEEF::2228:7001。NAPT路由器另一端PC-A的IPv4地址為01。NAPT網(wǎng)關(guān)所指派的地址池為120.10.40/24。圖8-12NAPT數(shù)據(jù)包的傳輸過程
NAPT數(shù)據(jù)包的傳輸過程如下:
(1)?PC-B給目的地址(前綴為01,端口號為23)發(fā)送一個(gè)數(shù)據(jù)包之后,就發(fā)起與PC-A的會(huì)話。NAPT向IPv6網(wǎng)絡(luò)廣播前綴?::/96,只要有數(shù)據(jù)包發(fā)送至該前綴,就將其通過NAPT進(jìn)行路由。作為源地址,PC-B使用了自己的IPv6地址及端口號3056。
(2)?NAPT網(wǎng)關(guān)從自己的地址池中抽取出一個(gè)IPv4地址及一個(gè)端口號。這里假定使用了地址0。在從NAPT發(fā)至PC-A的后續(xù)包中,其源地址是0,端口號為1025;其目的地址是01,端口號為23。
(3)PC-A做出應(yīng)答的時(shí)候,所發(fā)送的數(shù)據(jù)包的源地址將是01,端口號為23;目的地址則是0,端口號為1025。
(4)?NAPT根據(jù)其緩存中會(huì)話生存期的相關(guān)參數(shù)進(jìn)行數(shù)據(jù)包的轉(zhuǎn)換,把數(shù)據(jù)包從源地址(前綴為01,端口號為23)發(fā)送至目的地址(ABCD:BEEF::2228:7001,端口號為3056)。需要說明的是,RFC2766文檔中所描述的這些轉(zhuǎn)換機(jī)制存在問題:這種機(jī)制無法充分利用IPv6所提供的某些功能;也存在著網(wǎng)絡(luò)拓?fù)湎拗?,與同一會(huì)話有關(guān)的入站及出站數(shù)據(jù)報(bào)必須穿越同一NAT路由器。改進(jìn)的措施之一是在某些應(yīng)用程序中使用IP數(shù)據(jù)報(bào)有效載荷中的IP地址,NAT并不知道應(yīng)用層,也就不會(huì)查看有效載荷中的IP地址。這類應(yīng)用程序在實(shí)現(xiàn)時(shí),NAT必須和應(yīng)用層網(wǎng)關(guān)ALG配合使用。技術(shù)文檔RFC2766描述了域名系統(tǒng)應(yīng)用層網(wǎng)關(guān)(DNSALG),用于實(shí)現(xiàn)在IPv6網(wǎng)絡(luò)中的NAT-PT設(shè)備通過IPv4網(wǎng)絡(luò)傳輸至DNS服務(wù)器之間的請求和訪問服務(wù),提供完成IPv4資源記錄類型(A類型)到IPv6資源記錄類型(AAAA類型或A6類型)的轉(zhuǎn)換的機(jī)制。在RFC2428文檔中,定義了替換原來的PORT命令與PASV命令的兩個(gè)新擴(kuò)展的FTP命令,新命令提供對IPv6長地址的支持,并用來傳送所使用協(xié)議的附加信息。FTPALG應(yīng)該能夠把這些FTP命令轉(zhuǎn)換成NAT上能用的命令。
需要指出的是,任何NAT機(jī)制都無法提供端到端的安全性,只有使用純IPv4或純IPv6的兩個(gè)端點(diǎn)才能很好地使用IPsec安全機(jī)制,實(shí)現(xiàn)可靠的安全性。
3.NAT-PT
1)?NAT-PT
網(wǎng)絡(luò)地址轉(zhuǎn)換與協(xié)議轉(zhuǎn)換(NAT-PT)在RFC2766文檔中描述和定義。NAT-PT的基本原理是利用IPv4地址池指定的IPv4地址給IPv6,作為IPv6節(jié)點(diǎn)與IPv4網(wǎng)絡(luò)通信時(shí)暫時(shí)對應(yīng)的IP地址。NAT-PT很重要的一項(xiàng)工作就是建立IPv6地址與IPv4地址之間的映射表。
NAT-PT就是在做IPv4/IPv6地址轉(zhuǎn)換(NAT)的同時(shí)在IPv4分組和IPv6分組之間進(jìn)行首部和語義的翻譯(PT),適用于純IPv4站點(diǎn)和純IPv6站點(diǎn)之間的通信。對于一些內(nèi)嵌地址信息的高層協(xié)議(如FTP),NAT-PT需要和應(yīng)用層的網(wǎng)關(guān)協(xié)作來完成翻譯。在NAT-PT的基礎(chǔ)上利用端口信息,就可以實(shí)現(xiàn)NAPT-PT,這點(diǎn)同目前IPv4下的NAPT沒有本質(zhì)區(qū)別。
NAT-PT的原理和SIIT類似,其改進(jìn)的地方是將傳統(tǒng)的IPv4下的NAT應(yīng)用于SIIT中的IPv4地址的選取當(dāng)中。SIIT的一個(gè)最大的缺點(diǎn)是需要比較大的IPv4地址池,以供IPv6應(yīng)用動(dòng)態(tài)分配。這個(gè)IPv4地址池很大程度上制約了SIIT的應(yīng)用。而NAT-PT采用傳統(tǒng)的IPv4下的NAT技術(shù)來分配IPv4地址,這樣就可以以很少的IPv4地址構(gòu)成自己的IPv4地址分配池,可以給大量的需要進(jìn)行地址轉(zhuǎn)換的應(yīng)用使用協(xié)議轉(zhuǎn)換服務(wù)。
在實(shí)現(xiàn)方面,如果沒有DNS-ALG的支持,只能實(shí)現(xiàn)由IPv6發(fā)起的與IPv4之間的通信,反之,包就會(huì)被丟棄。如果有DNS-ALG的支持,就可以實(shí)現(xiàn)雙向的通信。有一些應(yīng)用需要一定程度的地址穩(wěn)定性,NAT-PT可以被配置成提供IPv6到特定IPv4地址的靜態(tài)映射。該機(jī)制適用于過渡的初始階段,使得基于雙協(xié)議棧的主機(jī),能夠運(yùn)行IPv4應(yīng)用程序與IPv6應(yīng)用互相通信。這種技術(shù)允許不支持IPv6的應(yīng)用程序透明地訪問純IPv6站點(diǎn)。該機(jī)制要求主機(jī)必須是雙棧的,同時(shí)要在協(xié)議棧中插入三個(gè)特殊的擴(kuò)展模塊:域名解析器、地址映射器和翻譯器,相當(dāng)于在主機(jī)的協(xié)議棧中使用了NAT-PT。
NAT-PT只允許IPv6網(wǎng)絡(luò)的節(jié)點(diǎn)去訪問IPv4網(wǎng)絡(luò),進(jìn)程的建立是單向的。例如,IPv6節(jié)點(diǎn)通過NAT-PT獲得一個(gè)IPv4地址,與IPv4網(wǎng)絡(luò)通信。可以采用多個(gè)端口對應(yīng)單一IPv6地址的方法,通過端口對應(yīng),每一個(gè)IPv4地址可以處理65535個(gè)TCP或UDP進(jìn)程。該方法的不足是一次只能提供一個(gè)對于同一種服務(wù),或者說使用同一種端口提供服務(wù)的服務(wù)器。NAT-PT實(shí)現(xiàn)了對終端節(jié)點(diǎn)透明,因?yàn)镹AT-PT提供IPv4/IPv6地址轉(zhuǎn)換,不需要對終端節(jié)點(diǎn)做任何改動(dòng)。
2)?DNS-ALG與NAT-PT相結(jié)合
下面討論DNS-ALG與NAT-PT相結(jié)合的方法。IPv4和IPv6的DNS在記錄格式等方面有所不同,為了實(shí)現(xiàn)IPv4網(wǎng)絡(luò)和IPv6網(wǎng)絡(luò)之間的DNS查詢和響應(yīng),可以將應(yīng)用層網(wǎng)關(guān)DNS-ALG與NAT-PT相結(jié)合,作為IPv4和IPv6網(wǎng)絡(luò)之間的翻譯器。例如,IPv4的地址域名映射使用“A”記錄,而IPv6使用“AAAA”或“A6”記錄。那么,若IPv4節(jié)點(diǎn)發(fā)送到IPv6網(wǎng)絡(luò)的DNS查詢請求是“A”記錄,則DNS-ALG就把“A”改寫成“AAAA”,并發(fā)送給IPv6網(wǎng)絡(luò)中的DNS服務(wù)器。當(dāng)服務(wù)器的回答到達(dá)DNS-ALG時(shí),DNS-ALG修改回答,把“AAAA”改為“A”,把IPv6地址改成DNS-ALG地址池中的IPv4轉(zhuǎn)換地址,再把這個(gè)IPv4轉(zhuǎn)換地址和IPv6地址之間的映射關(guān)系通知NAT-PT,并把這個(gè)IPv4轉(zhuǎn)換地址作為解析結(jié)果返回IPv4主機(jī)。IPv4主機(jī)就以這個(gè)IPv4轉(zhuǎn)換地址作為目的地址與實(shí)際的IPv6主機(jī)通過NAT-PT通信。
4.無狀態(tài)IP/ICMP轉(zhuǎn)換
無狀態(tài)IP/ICMP轉(zhuǎn)換SIIT(StatelessIP/ICMPTranslation)定義了在IPv4和IPv6的分組首部之間進(jìn)行翻譯的方法。這種轉(zhuǎn)換不記錄流的狀態(tài),因而稱為是無狀態(tài)的,因此對于每一個(gè)分組都要進(jìn)行翻譯。SIIT在文檔RFC2765中描述和定義。這種機(jī)制可以和其它的機(jī)制(如NAT-PT)結(jié)合,用于純IPv6站點(diǎn)與純IPv4站點(diǎn)之間的通信,但是在采用網(wǎng)絡(luò)層加密和數(shù)據(jù)完整性保護(hù)的環(huán)境下,這種技術(shù)不可用。純IPv6節(jié)點(diǎn)和純IPv4節(jié)點(diǎn)通過一個(gè)SIIT轉(zhuǎn)換器通信,IPv6節(jié)點(diǎn)看到對方一個(gè)IPv4mapped地址的主機(jī),同時(shí)它自己則使用一個(gè)IPv4translated的地址。如果IPv6主機(jī)發(fā)出的IP分組中的目的地址是一個(gè)IPv4mapped地址,那么SIIT轉(zhuǎn)換器就知道這個(gè)IP分組需要進(jìn)行協(xié)議轉(zhuǎn)換。有了協(xié)議轉(zhuǎn)換器之后,就可以在內(nèi)部建立新的純IPv6網(wǎng)絡(luò),同時(shí)能讓這些純IPv6客戶端訪問標(biāo)準(zhǔn)IPv4Internet或其它純IPv4節(jié)點(diǎn)。這樣也就引入了一種新的地址類型:IPv4轉(zhuǎn)換地址。這種地址的格式為0::FFFF:0:0:0/96。主機(jī)標(biāo)識符是從特定地址池中抽取的一個(gè)IPv4地址,該標(biāo)識符指派給了希望和IPv4節(jié)點(diǎn)通信的那個(gè)IPv6節(jié)點(diǎn)。
協(xié)議轉(zhuǎn)換器一般涉及對TCP首部及UDP首部的修改,對于計(jì)算校驗(yàn)和的情況,會(huì)涉及到偽首部的計(jì)算范圍。另外,ICMP錯(cuò)誤報(bào)文中還包含有效載荷中原始數(shù)據(jù)包的IP首部,協(xié)議轉(zhuǎn)換器需要修改這個(gè)首部,否則接收節(jié)點(diǎn)無法理解原始數(shù)據(jù)包。需要說明的是,在多播中也不能使用該協(xié)議轉(zhuǎn)換技術(shù),原因是IPv4多播地址與IPv6多播地址不能相互轉(zhuǎn)換。
需要注意的是,SIIT技術(shù)使用特定的地址空間來完成IPv4地址與IPv6地址的轉(zhuǎn)換,需要一個(gè)IPv4地址池,由于SIIT不提供地址復(fù)用,因此地址池的空間限制了IPv6節(jié)點(diǎn)的數(shù)量,從而使SIIT技術(shù)所能應(yīng)用的網(wǎng)絡(luò)規(guī)模也受到了限制。
5.IPv4轉(zhuǎn)換至IPv6
在IPv4轉(zhuǎn)換到IPv6的過程中,轉(zhuǎn)換器接收傳來的IPv4數(shù)據(jù)報(bào)。由于已經(jīng)配置的轉(zhuǎn)換器具有映射IPv6節(jié)點(diǎn)的IPv4地址池,因此轉(zhuǎn)換器把IPv4首部中的所有信息轉(zhuǎn)換進(jìn)IPv6首部中,這樣就去掉IPv4首部,并替換上一個(gè)IPv6首部。
需要考慮路徑MTU發(fā)現(xiàn)(PathMTUDiscovery)協(xié)議的應(yīng)用,路徑MTU在IPv4中是可選的,但在IPv6中卻是捆綁執(zhí)行的。如果IPv4主機(jī)設(shè)置了首部中的不分段(Don’tFragment)標(biāo)志位,則說明要進(jìn)行路由MTU發(fā)現(xiàn),這時(shí)轉(zhuǎn)換器可以使用路徑MTU發(fā)現(xiàn)。如果IPv4數(shù)據(jù)包中并沒有設(shè)置不分段標(biāo)志位,則IPv6轉(zhuǎn)換器將要確保該數(shù)據(jù)包能夠安全地通過IPv6網(wǎng)絡(luò),采用的方式是對IPv4數(shù)據(jù)包進(jìn)行分段,必須滿足IPv6數(shù)據(jù)包最小尺寸為1280字節(jié)的要求。IPv6協(xié)議可以保證在傳輸1280字節(jié)數(shù)據(jù)包的過程中不需要再次分段。轉(zhuǎn)換器在進(jìn)行分段過程中需要給每一個(gè)分段加上一個(gè)分段首部,以此表示發(fā)送者允許分段。數(shù)據(jù)包在傳輸過程中通過IPv6到IPv4的轉(zhuǎn)換器時(shí),該轉(zhuǎn)換器就會(huì)知道自己可以對該數(shù)據(jù)包進(jìn)行分段。表8-1詳細(xì)列出了需要轉(zhuǎn)換為IPv6首部的信息。表8-1需要轉(zhuǎn)換為IPv6首部的信息如果要添加一個(gè)Fragment(分段)首部,就會(huì)在IPv6數(shù)據(jù)包中插入所列出的信息。帶分段的IPv6首部字段如表8-2所示。
對于IP數(shù)據(jù)報(bào)的數(shù)據(jù)部分為運(yùn)輸層UDP協(xié)議數(shù)據(jù)包的情況,協(xié)議轉(zhuǎn)換器必須計(jì)算出一個(gè)有效的、與IPv6數(shù)據(jù)報(bào)中字段聯(lián)系的校驗(yàn)和。在接收端進(jìn)行差錯(cuò)檢查,若所接收到的是已分段的UDP數(shù)據(jù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療保障全流程保障承諾書3篇
- 售后服務(wù)問題反饋處理表單系統(tǒng)
- 春天的運(yùn)動(dòng)會(huì)作文(13篇)
- 2026年千陽縣中醫(yī)醫(yī)院執(zhí)業(yè)醫(yī)師招聘備考題庫參考答案詳解
- 2026年度忠門鎮(zhèn)中心衛(wèi)生院編外人員招聘備考題庫及1套完整答案詳解
- 2026年中山市東區(qū)中學(xué)公開招聘地理專任教師備考題庫及答案詳解參考
- 2026年10人麗水一地事業(yè)單位招聘備考題庫及參考答案詳解1套
- 2026年廣州醫(yī)科大學(xué)附屬第四醫(yī)院編外人員招聘備考題庫及答案詳解一套
- 2026年宜賓港信資產(chǎn)管理有限公司公開招聘的備考題庫有答案詳解
- 2026年廣州市人民印刷廠股份有限公司招聘備考題庫完整答案詳解
- 膽囊癌教學(xué)課件
- 2025年春新滬粵版物理八年級下冊全冊教案
- 2025年上海市嘉定區(qū)高考生物二模試卷
- 量子醫(yī)學(xué)課件
- 2025年秋閩教版小學(xué)英語五年級上冊(期末)綜合詞匯句子專項(xiàng)訓(xùn)練題及答案
- 大學(xué)消防風(fēng)險(xiǎn)評估報(bào)告
- GB/T 46127-2025機(jī)用套筒扳手傳動(dòng)附件
- 骨科骨筋膜室綜合征護(hù)理查房
- 中建項(xiàng)目經(jīng)理工程體系培訓(xùn)
- 醫(yī)院科教科長述職報(bào)告
- 解讀建設(shè)宜居宜業(yè)和美鄉(xiāng)村
評論
0/150
提交評論