章芹
摘要由于面臨IPv4地址嚴重短缺的問題,NAT技術應運而生。NAT技術是一種將私有地址轉換成公有地址的技術,它大大緩解了IP地址短缺的局面,并得到廣泛的采用。而這不是根本的解決方法。IPv6即將取代IPv4已是不爭的事實。新一代網(wǎng)絡代替舊有的網(wǎng)絡需要一個過渡的過程。我們在過渡時期采用隧道技術是目前主流技術之一,但它不能夠很好的支持NAT用戶接入到IPv6的網(wǎng)絡,幾乎都不允許隧道中出現(xiàn)NAT設備,這樣就給NAT用戶連入IPv6帶來了困難。微軟公司為NAT專門設計了一個解決方案——Teredo。它采用UDP封裝方式,克服了傳統(tǒng)IPv4封裝難以穿越NAT/PT網(wǎng)關的問題。但它存在一定的不足,比如不支持對稱NAT用戶等。而中國中科院提出的silkroad技術能夠支持對稱NAT,對身份認證的支持,實現(xiàn)了較高的安全性。
關鍵詞IPv6;過渡;NAT;隧道;Teredo
中圖分類號:TP393 文獻標識碼:A 文章編號:1671-7597(2014)11-0064-02
經(jīng)過幾十年的發(fā)展,IPv4逐漸暴露出許多問題。其中最為嚴重的就是IP地址不足。IPv4中規(guī)定IP地址的總長度為32位,理論上大約有40億個地址,但由于種種原因(分類編址,以及部分具有特殊意義的地址),實際上可用的地址嚴重縮水。而且由于因特網(wǎng)技術在各個國家的起步時間的不同,導致IPv4網(wǎng)絡地址分配極為不均,大部分的A類地址都在美國。而我國因特網(wǎng)技術起步時間較晚,所以導致真正可分配到的IP地址的數(shù)量根本就無法滿足日益增長的對于IP地址的需求。此外隨著因特網(wǎng)的迅猛發(fā)展,物聯(lián)網(wǎng)技術的出現(xiàn),連接到因特網(wǎng)的終端設備也從原來的個人計算機逐漸擴展到了平板電腦、手機、甚至是一些家用電器上。這樣使得本來就嚴重不足的IPv4地址更加的捉襟見肘。這個問題已經(jīng)嚴重制約到了因特網(wǎng)技術的進一步發(fā)展。
為了緩解該問題,NAT技術應運而生。NAT技術是一種將私有地址轉換成公有地址的技術,它不僅大大緩解了IP地址短缺的局面,而且還能夠隱藏網(wǎng)絡內(nèi)部主機,有效地防止來自于外部網(wǎng)絡的攻擊。因此,它被我們廣泛的使用在了IPv4的網(wǎng)絡當中??梢哉fNAT用戶是因特網(wǎng)上面一個非常龐大、不可忽視的群體。然而,NAT技術在緩和了IPv4地址不足問題的同時,也帶來了許多不良影響。
1)使用NAT地址轉換會使路由器處理數(shù)據(jù)包延遲增大,降低了網(wǎng)絡的通信效率。
2)NAT違反了IP的體系結構,因為IP協(xié)議中規(guī)定一個IP地址對應一個網(wǎng)絡接口,而在NAT中,某個地址可能會對應的是某個網(wǎng)絡內(nèi)部成千上萬個主機,這樣可能會導致外部的節(jié)點無法主動訪問NAT用戶。
3)NAT將Internet的無連接服務變成了有連接服務,因為NAT必須包含所有經(jīng)過它的連接信息。因此NAT技術不是解決IP地址不足的根本方法。
而IPv6正是能夠從根本上解決地址枯竭問題的方法。這個新的IP協(xié)議將地址長度由原先的32位增加到了128位,大大拓展了地址空間。同時,IPv6針對IPv4中存在的不足對報頭字段進行了全新的設計與安排,在移動性、服務質量、安全性等方面提供了更為可靠的保障。但由于現(xiàn)有的網(wǎng)絡上的大部分服務、網(wǎng)絡設備、終端設備上的操作系統(tǒng)都是基于IPv4的,并不支持IPv6,所以要在短時間內(nèi)從IPv4的網(wǎng)絡轉換到IPv6的網(wǎng)絡是不可能的。中間必然要經(jīng)歷一個漫長的過渡時期,在這個時期內(nèi),IPv4網(wǎng)絡與IPv6網(wǎng)絡將并存且還要彼此之間進行通信,這使得人們不得不開發(fā)出能夠讓IPv4網(wǎng)絡與IPv6網(wǎng)絡互聯(lián)互通的技術。包括:雙協(xié)議棧技術,隧道技術,NAT/PT(網(wǎng)絡地址轉換/協(xié)議轉換技術)等。這些技術各有其特點與適用環(huán)境。比如隧道技術是目前主流的技術之一,它是把IPv6的數(shù)據(jù)包封裝在IPv4的隧道里面?zhèn)鬏敚瑥亩⒘硕说蕉说腎Pv6通信機制?,F(xiàn)有的隧道技術有手工配置隧道和6to4、ISATAP、Tunnel Broker等自動隧道技術。
由于NAT用戶的數(shù)量極為龐大,讓這部分用戶能夠獲得IPv6網(wǎng)絡連接的話,比如可以把移動手機客戶端的NAT用戶連入IPV6的網(wǎng)絡中來。而對于這類用戶,移動運營商為他們提供的只能是私有的IPv4地址,如果能讓他們可以通過IP網(wǎng)絡進行通信將大大降低手機通信的費用,這樣會促使大量的用戶參與到IPv6的網(wǎng)絡中來,進而加快IPv6網(wǎng)絡體系的建設,最終讓全球的IPv4的網(wǎng)絡演化成IPv6網(wǎng)絡。
然而,絕大部分的隧道技術都不太支持NAT用戶接入到IPv6的網(wǎng)絡,幾乎都不允許隧道中出現(xiàn)NAT設備,這樣就給NAT用戶連入IPv6帶來了困難。微軟公司為NAT專門設計了一個解決方案——Teredo(又稱為面向IPv6的IPv4 NAT網(wǎng)絡地址轉換穿越),是一項IPv6/IPv4過渡技術,能夠實現(xiàn)在處于單個或者多個IPv4 NAT后的主機之間的IPv6自動隧道。它采用UDP封裝方式,克服了傳統(tǒng)的IPv4封裝難以穿越NAT/PT網(wǎng)關的問題。它主要包括以下的組件。
1)Teredo 客戶端(支持IPv4/IPv6雙棧結點)。
2)Teredo服務器(也就是IPv4/IPv6雙棧結點,可以在IPv4網(wǎng)絡與IPv6網(wǎng)絡之間傳輸數(shù)據(jù)流)。
3)Teerdo中繼(即雙棧路由器,跨越IPv4網(wǎng)絡,從IPv6的網(wǎng)絡上的客戶端提供連接)。
4)Teerdo氣泡數(shù)據(jù)包(即用來在NAT/PT內(nèi)創(chuàng)建映射的IPv6數(shù)據(jù)包)。
5)Teredo服務前綴:使用前綴3FFE:831F::/32,其他為Teredo server、flags和Teredo client的外部地址、端口等編碼信息。
客戶端的初始化設置通過發(fā)送一系列路由請求消息給Teredo服務器以確定一個Teredo地址,服務器在收到這個請求之后向客戶端返回一個經(jīng)過NAT/PT映射之后的公有IPv4地址和端口號的路由信息以及IPv6的地址前綴(3FFE:831F::/32),然后客戶端就可以利用服務器返回的消息生成IPv6地址了,接著就可以將此IPv6的包通過隧道發(fā)送到Teredo中繼。
Teredo客戶端會定期地(一般默認每隔30秒鐘)發(fā)送單一的氣泡數(shù)據(jù)包到Teredo服務器。Teredo服務器會在不回復的情況下丟棄該數(shù)據(jù)包。這個周期性的數(shù)據(jù)包會重新刷新NAT的轉換表。否則,這個映射就無效并被刪除。
盡管Teredo服務在Windows 7上是可用的且它的接口默認狀態(tài)下可用,但它一般并不是處于活動狀態(tài)。我們可以通過ipconfig /all 命令中查看到Teredo隧道偽接口,但此接口處于斷開狀態(tài)??梢允褂胣etsh interface teredo set state [type] [servername] [refreshinterval] [ clientport] 命令啟用Teredo接口。其中type可設置的參數(shù)有disabled、client、enterpriseclient或server;servername可用于設置服務器名稱;refreshinterval是以秒計的刷新時間;clientport為客戶端使用的UDP端口號。
當然,Teredo技術也存在某些局限性。
1)Teredo客戶端每次和服務器初始化通信時總是被NATPT轉換成不同的公有地址和端口號信息,所以每次獲得的地址都不盡相同,這樣容易造成當外部用戶想主動向NAT用戶發(fā)起連接的時候往往非常困難。
endprint
2)Teredo是不支持對稱NAT的(即根據(jù)不同的外部目標地址將內(nèi)部地址和端口號映射到不同的外部地址和端口號的NAT)的,這將導致使用對稱NAT的用戶將無法采用teredo隧道技術與IPv6連接。
3)Teredo的工作原理相對復雜,且很難和現(xiàn)有的網(wǎng)絡兼容,我們不僅需要設置專門的Teredo服務器來幫助Teredo客戶端建立連接,還要求Teredo客戶端所要訪問的IPv6站點相鄰的路由器提供Teredo中繼功能,也就是說Teredo中繼不僅要能夠識別帶有Teredo服務前綴的IPv6地址,還要向所在網(wǎng)絡公告這個Teredo格式地址的可達性,以此讓它們知道該中繼可以把數(shù)據(jù)包轉發(fā)給相應的Teredo客戶端。這樣才能和Teredo服務器共同完成穿透NAT網(wǎng)關的功能。這樣也給Teredo服務的實現(xiàn)與部署帶來一定的困難。
4)因為Teredo采用UDP來承載IPv6數(shù)據(jù)包(IPv6-in-UDP),如果我們在傳輸層要求用到TCP協(xié)議來保障傳輸?shù)目煽啃詴r,Teredo就無法支持了。
5)最后,前面提到的Teredo中繼它是無狀態(tài)(stateless)的,也就是說它上面并不會維護與用戶相關的信息,也就無法提供對合法用戶的驗證。而它負責轉發(fā)NAT用戶與IPv6網(wǎng)絡之間傳送的數(shù)據(jù)包,這樣可能導致非合法的用戶也可以使用該中繼提供的服務,甚至讓一些黑客通過這種方式獲得對某個IPv6網(wǎng)絡的連接,以此進一步對該網(wǎng)絡進行攻擊。因此,Teredo技術是有一定的安全隱患的。
為此,中國科學院的研究人員針對Teredo存在的不足,提出了一種基于C/S隧道模式和服務器的有狀態(tài)特性IPv6 隧道技術Silkroad. 這種技術使位于NAT后的IPv6/ IPv4雙協(xié)議棧主機能夠使用自己的IPv4私有地址,穿越IPv4網(wǎng)絡,和其他的IPv6主機建立連接,從而實現(xiàn)了一個面向NAT用戶的IPv6隧道接入系統(tǒng),為NAT用戶向IPv6過渡提供了解決方案。
Silkroad協(xié)議在網(wǎng)絡中引入隧道服務器,負責為NAT用戶分配IPv6地址,然后作為一個中繼轉發(fā)用戶和IPv6網(wǎng)絡之間的數(shù)據(jù)流。Silkroad協(xié)議支持所有類型的NAT和IPv6網(wǎng)絡進行互連(包括之前所提到過的、Teredo不能夠支持的對稱NAT用戶),能為用戶分配固定不變的IPv6地址,并且具有更高的安全性。但該技術不夠成熟,無法真正解決對稱NAT的用戶之間的IPv6通信問題,且在實際的網(wǎng)絡傳輸過程中會消耗掉較多的網(wǎng)絡資源。有待進一步的改進。由于文章篇幅關系,不作贅述。
基于IPv6的網(wǎng)絡時代終將到來,如何在這個時期實現(xiàn)平滑過渡,比如讓龐大的NAT用戶群體連入IPV6的網(wǎng)絡中來,將會對IPv6網(wǎng)絡的普及有重大意義。上文中所提到過的Teredo是一種主流的、能夠實現(xiàn)在處于單個或者多個IPv4 NAT后的主機之間的IPv6自動隧道技術,但它存在一定的不足,比如不支持對稱NAT用戶,兼容性較差、安全性較差等。而中國中科院提出的silkroad技術雖然能夠支持對稱NAT,對身份認證的支持,實現(xiàn)了較高的安全性。但存在通信開銷過大,不支持TCP通信、不夠成熟等問題。因此要完美地解決和實現(xiàn)NAT用戶的IPv6通信還有一段路要走。這也要求我們在將來的研究中要繼續(xù)不斷改良目前已有的算法與技術。
參考文獻
[1]劉偉杰,張娟.基于IPv4/IPv6隧道技術的NAT研究[J].計算機與數(shù)字工程,2008(08).
[2]吳賢國,劉敏.面向NAT用戶的IPv6隧道技術研究[J].計算機學報,2007(01).
[3]王其磊.NAT內(nèi)網(wǎng)連通IPv6的設計與實現(xiàn)[D].大連理工大學,2011.
endprint
2)Teredo是不支持對稱NAT的(即根據(jù)不同的外部目標地址將內(nèi)部地址和端口號映射到不同的外部地址和端口號的NAT)的,這將導致使用對稱NAT的用戶將無法采用teredo隧道技術與IPv6連接。
3)Teredo的工作原理相對復雜,且很難和現(xiàn)有的網(wǎng)絡兼容,我們不僅需要設置專門的Teredo服務器來幫助Teredo客戶端建立連接,還要求Teredo客戶端所要訪問的IPv6站點相鄰的路由器提供Teredo中繼功能,也就是說Teredo中繼不僅要能夠識別帶有Teredo服務前綴的IPv6地址,還要向所在網(wǎng)絡公告這個Teredo格式地址的可達性,以此讓它們知道該中繼可以把數(shù)據(jù)包轉發(fā)給相應的Teredo客戶端。這樣才能和Teredo服務器共同完成穿透NAT網(wǎng)關的功能。這樣也給Teredo服務的實現(xiàn)與部署帶來一定的困難。
4)因為Teredo采用UDP來承載IPv6數(shù)據(jù)包(IPv6-in-UDP),如果我們在傳輸層要求用到TCP協(xié)議來保障傳輸?shù)目煽啃詴r,Teredo就無法支持了。
5)最后,前面提到的Teredo中繼它是無狀態(tài)(stateless)的,也就是說它上面并不會維護與用戶相關的信息,也就無法提供對合法用戶的驗證。而它負責轉發(fā)NAT用戶與IPv6網(wǎng)絡之間傳送的數(shù)據(jù)包,這樣可能導致非合法的用戶也可以使用該中繼提供的服務,甚至讓一些黑客通過這種方式獲得對某個IPv6網(wǎng)絡的連接,以此進一步對該網(wǎng)絡進行攻擊。因此,Teredo技術是有一定的安全隱患的。
為此,中國科學院的研究人員針對Teredo存在的不足,提出了一種基于C/S隧道模式和服務器的有狀態(tài)特性IPv6 隧道技術Silkroad. 這種技術使位于NAT后的IPv6/ IPv4雙協(xié)議棧主機能夠使用自己的IPv4私有地址,穿越IPv4網(wǎng)絡,和其他的IPv6主機建立連接,從而實現(xiàn)了一個面向NAT用戶的IPv6隧道接入系統(tǒng),為NAT用戶向IPv6過渡提供了解決方案。
Silkroad協(xié)議在網(wǎng)絡中引入隧道服務器,負責為NAT用戶分配IPv6地址,然后作為一個中繼轉發(fā)用戶和IPv6網(wǎng)絡之間的數(shù)據(jù)流。Silkroad協(xié)議支持所有類型的NAT和IPv6網(wǎng)絡進行互連(包括之前所提到過的、Teredo不能夠支持的對稱NAT用戶),能為用戶分配固定不變的IPv6地址,并且具有更高的安全性。但該技術不夠成熟,無法真正解決對稱NAT的用戶之間的IPv6通信問題,且在實際的網(wǎng)絡傳輸過程中會消耗掉較多的網(wǎng)絡資源。有待進一步的改進。由于文章篇幅關系,不作贅述。
基于IPv6的網(wǎng)絡時代終將到來,如何在這個時期實現(xiàn)平滑過渡,比如讓龐大的NAT用戶群體連入IPV6的網(wǎng)絡中來,將會對IPv6網(wǎng)絡的普及有重大意義。上文中所提到過的Teredo是一種主流的、能夠實現(xiàn)在處于單個或者多個IPv4 NAT后的主機之間的IPv6自動隧道技術,但它存在一定的不足,比如不支持對稱NAT用戶,兼容性較差、安全性較差等。而中國中科院提出的silkroad技術雖然能夠支持對稱NAT,對身份認證的支持,實現(xiàn)了較高的安全性。但存在通信開銷過大,不支持TCP通信、不夠成熟等問題。因此要完美地解決和實現(xiàn)NAT用戶的IPv6通信還有一段路要走。這也要求我們在將來的研究中要繼續(xù)不斷改良目前已有的算法與技術。
參考文獻
[1]劉偉杰,張娟.基于IPv4/IPv6隧道技術的NAT研究[J].計算機與數(shù)字工程,2008(08).
[2]吳賢國,劉敏.面向NAT用戶的IPv6隧道技術研究[J].計算機學報,2007(01).
[3]王其磊.NAT內(nèi)網(wǎng)連通IPv6的設計與實現(xiàn)[D].大連理工大學,2011.
endprint
2)Teredo是不支持對稱NAT的(即根據(jù)不同的外部目標地址將內(nèi)部地址和端口號映射到不同的外部地址和端口號的NAT)的,這將導致使用對稱NAT的用戶將無法采用teredo隧道技術與IPv6連接。
3)Teredo的工作原理相對復雜,且很難和現(xiàn)有的網(wǎng)絡兼容,我們不僅需要設置專門的Teredo服務器來幫助Teredo客戶端建立連接,還要求Teredo客戶端所要訪問的IPv6站點相鄰的路由器提供Teredo中繼功能,也就是說Teredo中繼不僅要能夠識別帶有Teredo服務前綴的IPv6地址,還要向所在網(wǎng)絡公告這個Teredo格式地址的可達性,以此讓它們知道該中繼可以把數(shù)據(jù)包轉發(fā)給相應的Teredo客戶端。這樣才能和Teredo服務器共同完成穿透NAT網(wǎng)關的功能。這樣也給Teredo服務的實現(xiàn)與部署帶來一定的困難。
4)因為Teredo采用UDP來承載IPv6數(shù)據(jù)包(IPv6-in-UDP),如果我們在傳輸層要求用到TCP協(xié)議來保障傳輸?shù)目煽啃詴r,Teredo就無法支持了。
5)最后,前面提到的Teredo中繼它是無狀態(tài)(stateless)的,也就是說它上面并不會維護與用戶相關的信息,也就無法提供對合法用戶的驗證。而它負責轉發(fā)NAT用戶與IPv6網(wǎng)絡之間傳送的數(shù)據(jù)包,這樣可能導致非合法的用戶也可以使用該中繼提供的服務,甚至讓一些黑客通過這種方式獲得對某個IPv6網(wǎng)絡的連接,以此進一步對該網(wǎng)絡進行攻擊。因此,Teredo技術是有一定的安全隱患的。
為此,中國科學院的研究人員針對Teredo存在的不足,提出了一種基于C/S隧道模式和服務器的有狀態(tài)特性IPv6 隧道技術Silkroad. 這種技術使位于NAT后的IPv6/ IPv4雙協(xié)議棧主機能夠使用自己的IPv4私有地址,穿越IPv4網(wǎng)絡,和其他的IPv6主機建立連接,從而實現(xiàn)了一個面向NAT用戶的IPv6隧道接入系統(tǒng),為NAT用戶向IPv6過渡提供了解決方案。
Silkroad協(xié)議在網(wǎng)絡中引入隧道服務器,負責為NAT用戶分配IPv6地址,然后作為一個中繼轉發(fā)用戶和IPv6網(wǎng)絡之間的數(shù)據(jù)流。Silkroad協(xié)議支持所有類型的NAT和IPv6網(wǎng)絡進行互連(包括之前所提到過的、Teredo不能夠支持的對稱NAT用戶),能為用戶分配固定不變的IPv6地址,并且具有更高的安全性。但該技術不夠成熟,無法真正解決對稱NAT的用戶之間的IPv6通信問題,且在實際的網(wǎng)絡傳輸過程中會消耗掉較多的網(wǎng)絡資源。有待進一步的改進。由于文章篇幅關系,不作贅述。
基于IPv6的網(wǎng)絡時代終將到來,如何在這個時期實現(xiàn)平滑過渡,比如讓龐大的NAT用戶群體連入IPV6的網(wǎng)絡中來,將會對IPv6網(wǎng)絡的普及有重大意義。上文中所提到過的Teredo是一種主流的、能夠實現(xiàn)在處于單個或者多個IPv4 NAT后的主機之間的IPv6自動隧道技術,但它存在一定的不足,比如不支持對稱NAT用戶,兼容性較差、安全性較差等。而中國中科院提出的silkroad技術雖然能夠支持對稱NAT,對身份認證的支持,實現(xiàn)了較高的安全性。但存在通信開銷過大,不支持TCP通信、不夠成熟等問題。因此要完美地解決和實現(xiàn)NAT用戶的IPv6通信還有一段路要走。這也要求我們在將來的研究中要繼續(xù)不斷改良目前已有的算法與技術。
參考文獻
[1]劉偉杰,張娟.基于IPv4/IPv6隧道技術的NAT研究[J].計算機與數(shù)字工程,2008(08).
[2]吳賢國,劉敏.面向NAT用戶的IPv6隧道技術研究[J].計算機學報,2007(01).
[3]王其磊.NAT內(nèi)網(wǎng)連通IPv6的設計與實現(xiàn)[D].大連理工大學,2011.
endprint