針對IPv6協(xié)議DNS服務器的剖析
在IPv6隆重商用的前提是IPv4的地址枯竭。因為這個原因,所以我們急切需要IPv6協(xié)議來改善這個情況。那么IPv6如何進行DNS服務器的分配呢?下面我們就此來深入的剖析一下其中的原理。希望能對大家有所幫助。
IPv6協(xié)議域名系統(tǒng)的體系結(jié)構(gòu)是什么樣的?
IPv6網(wǎng)絡(luò)中的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)絡(luò)的普及,IPv6協(xié)議地址將逐漸取代IPv4地址。DNS樹形結(jié)構(gòu)中唯一的一個根(Root),用點號“.”表示。根的下一級稱為頂級域(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)絡(luò)時指定一個DNS服務器或使用動態(tài)主機配置(DHCP)等相關(guān)技術(shù),從而使用戶的應用程序可以通過操作系統(tǒng)內(nèi)嵌的解析器(Resolver)訪問DNS系統(tǒng),查詢域名相關(guān)的網(wǎng)絡(luò)資源信息。
IPv6協(xié)議如何自動發(fā)現(xiàn)提供解析服務的DNS服務器?
(1)無狀態(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)的組播地址或鏈路組播地址等。
IPv6協(xié)議一直用站點范圍內(nèi)的任意播地址作為DNS服務器的地址,所有的DNS解析請求都發(fā)送給這個任意播地址。距離最近的DNS服務器負責解析這個請求,得到解析結(jié)果后把結(jié)果返回請求節(jié)點,而不像第一種方式是把DNS服務器單播地址、域名和搜索路徑等DNS信息告訴節(jié)點。
從網(wǎng)絡(luò)擴展性、安全性、實用性等多方面綜合考慮,第一種采用站點范圍內(nèi)的任意播地址作為DNS服務器地址的方式相對較好。
(2)有狀態(tài)的DNS服務器發(fā)現(xiàn)
有狀態(tài)的DNS服務器發(fā)現(xiàn)方式是通過類似DHCP的服務器把DNS服務器地址、域名和搜索路徑等DNS信息告知節(jié)點。當然,這需要額外的服務器。
在IPv4到IPv6協(xié)議的過渡階段如何實現(xiàn)DNS?
在IPv4到IPv6的過渡過程中,作為Internet基礎(chǔ)架構(gòu)的DNS服務也要支持這種網(wǎng)絡(luò)協(xié)議的升級和轉(zhuǎn)換。可以用兩種方法實現(xiàn)IPv4到IPv6過渡階段的DNS:
(1)DNS-ALG與NAT-PT相結(jié)合的方法
IPv4和IPv6的DNS在記錄格式等方面有所不同,為了實現(xiàn)IPv4網(wǎng)絡(luò)和IPv6網(wǎng)絡(luò)之間的DNS查詢和響應,可以將應用層網(wǎng)關(guān)DNS-ALG與NAT-PT相結(jié)合,作為IPv4和IPv6網(wǎng)絡(luò)之間的翻譯器。例如,IPv4的地址域名映射使用“A”記錄,而IPv6使用“AAAA”或“A6”記錄。那么,IPv4節(jié)點發(fā)送到IPv6網(wǎng)絡(luò)的DNS查詢請求是“A”記錄,DNS-ALG就把“A”改寫成“AAAA”,并發(fā)送給IPv6網(wǎng)絡(luò)中的DNS服務器。當服務器的回答到達DNS-ALG時,DNS-ALG修改回答,把“AAAA”改為“A”,把IPv6地址改成DNS-ALG地址池中的IPv4轉(zhuǎn)換地址,把這個IPv4轉(zhuǎn)換地址和IPv6協(xié)議地址之間的映射關(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”記錄,都可以進行通信。