針對(duì)IPv6協(xié)議DNS服務(wù)器的剖析
在IPv6隆重商用的前提是IPv4的地址枯竭。因?yàn)檫@個(gè)原因,所以我們急切需要IPv6協(xié)議來改善這個(gè)情況。那么IPv6如何進(jìn)行DNS服務(wù)器的分配呢?下面我們就此來深入的剖析一下其中的原理。希望能對(duì)大家有所幫助。
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體系需要各自獨(dú)立,相反,DNS的體系和域名空間必須一致,即IPv4和IPv6共同擁有統(tǒng)一的域名空間。在IPv4到IPv6的過渡階段,域名可以同時(shí)對(duì)應(yīng)于多個(gè)IPv4和IPv6的地址。以后隨著IPv6網(wǎng)絡(luò)的普及,IPv6協(xié)議地址將逐漸取代IPv4地址。DNS樹形結(jié)構(gòu)中唯一的一個(gè)根(Root),用點(diǎn)號(hào)“.”表示。根的下一級(jí)稱為頂級(jí)域(Top Level Domain,TLD),也稱一級(jí)域。頂級(jí)域的下級(jí)就是二級(jí)域(Second Level Domain,SLD),二級(jí)域的下級(jí)就是三級(jí)域,依次類推。每個(gè)域都是其上級(jí)域的子域(Sub Domain),比如“.net.cn”是“.cn”的子域,而“cnnic.net.cn”既是“net.cn”的子域,同時(shí)也是“.cn”的子域。
DNS樹上的每一個(gè)節(jié)點(diǎn)都有一個(gè)標(biāo)識(shí)(Label),根節(jié)點(diǎn)的標(biāo)識(shí)是“空”(即長(zhǎng)度為0),其它節(jié)點(diǎn)的標(biāo)識(shí)的長(zhǎng)度在1到63字節(jié)之間。一個(gè)節(jié)點(diǎn)的域名是由從這個(gè)節(jié)點(diǎn)到根節(jié)點(diǎn)的路徑上的所有標(biāo)識(shí)從左到右順序排列組成的,標(biāo)識(shí)之間用“.”分隔。例如http://www.cnnic.net.cn/
DNS的整個(gè)域名空間劃分成許多的區(qū)(Zone),數(shù)據(jù)采用分布式存儲(chǔ)。每個(gè)區(qū)都有域名服務(wù)器(包括主服務(wù)器和輔服務(wù)器),以資源記錄(Resource Record)的形式來存儲(chǔ)域名信息。資源記錄包括了主機(jī)名(域名)和IP地址的對(duì)應(yīng),以及子域服務(wù)器的授權(quán)等多種類型。
用戶在使用DNS服務(wù)時(shí),可以不必細(xì)致地了解DNS域名空間的樹型結(jié)構(gòu)體系,只需在設(shè)置網(wǎng)絡(luò)時(shí)指定一個(gè)DNS服務(wù)器或使用動(dòng)態(tài)主機(jī)配置(DHCP)等相關(guān)技術(shù),從而使用戶的應(yīng)用程序可以通過操作系統(tǒng)內(nèi)嵌的解析器(Resolver)訪問DNS系統(tǒng),查詢域名相關(guān)的網(wǎng)絡(luò)資源信息。
IPv6協(xié)議如何自動(dòng)發(fā)現(xiàn)提供解析服務(wù)的DNS服務(wù)器?
(1)無狀態(tài)的DNS服務(wù)器發(fā)現(xiàn)
無狀態(tài)DNS服務(wù)器自動(dòng)發(fā)現(xiàn)有以下幾種方式:
為子網(wǎng)內(nèi)部的DNS服務(wù)器配置站點(diǎn)范圍內(nèi)的任意播地址。要進(jìn)行自動(dòng)配置的節(jié)點(diǎn)以該任意播地址為目的地址發(fā)送服務(wù)器發(fā)現(xiàn)請(qǐng)求,詢問DNS服務(wù)器地址、域名和搜索路徑等DNS信息。這個(gè)請(qǐng)求到達(dá)距離最近的DNS服務(wù)器,服務(wù)器根據(jù)請(qǐng)求,回答DNS服務(wù)器單播地址、域名和搜索路徑等DNS信息。節(jié)點(diǎn)根據(jù)服務(wù)器的應(yīng)答配置本機(jī)DNS信息,以后的DNS請(qǐng)求就直接用單播地址發(fā)送給DNS服務(wù)器。
與第一種方式相同,只是不用站點(diǎn)范圍內(nèi)的任意播地址,而采用站點(diǎn)范圍內(nèi)的組播地址或鏈路組播地址等。
IPv6協(xié)議一直用站點(diǎn)范圍內(nèi)的任意播地址作為DNS服務(wù)器的地址,所有的DNS解析請(qǐng)求都發(fā)送給這個(gè)任意播地址。距離最近的DNS服務(wù)器負(fù)責(zé)解析這個(gè)請(qǐng)求,得到解析結(jié)果后把結(jié)果返回請(qǐng)求節(jié)點(diǎn),而不像第一種方式是把DNS服務(wù)器單播地址、域名和搜索路徑等DNS信息告訴節(jié)點(diǎn)。
從網(wǎng)絡(luò)擴(kuò)展性、安全性、實(shí)用性等多方面綜合考慮,第一種采用站點(diǎn)范圍內(nèi)的任意播地址作為DNS服務(wù)器地址的方式相對(duì)較好。
(2)有狀態(tài)的DNS服務(wù)器發(fā)現(xiàn)
有狀態(tài)的DNS服務(wù)器發(fā)現(xiàn)方式是通過類似DHCP的服務(wù)器把DNS服務(wù)器地址、域名和搜索路徑等DNS信息告知節(jié)點(diǎn)。當(dāng)然,這需要額外的服務(wù)器。
在IPv4到IPv6協(xié)議的過渡階段如何實(shí)現(xiàn)DNS?
在IPv4到IPv6的過渡過程中,作為Internet基礎(chǔ)架構(gòu)的DNS服務(wù)也要支持這種網(wǎng)絡(luò)協(xié)議的升級(jí)和轉(zhuǎn)換??梢杂脙煞N方法實(shí)現(xiàn)IPv4到IPv6過渡階段的DNS:
(1)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查詢請(qǐng)求是“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協(xié)議地址之間的映射關(guān)系通知NAT-PT,并把這個(gè)IPv4轉(zhuǎn)換地址作為解析結(jié)果返回IPv4主機(jī)。IPv4主機(jī)就以這個(gè)IPv4轉(zhuǎn)換地址作為目的地址與實(shí)際的IPv6主機(jī)通過NAT-PT通信。
(2)雙協(xié)議棧方式
對(duì)于采用雙協(xié)議棧方式的過渡方法,在DNS服務(wù)器中同時(shí)存在“A”記錄和“AAAA”(或“A6”)記錄。由于節(jié)點(diǎn)既可以處理IPv4協(xié)議,也可以處理IPv6協(xié)議,因此無需類似DNS ALG的轉(zhuǎn)換設(shè)備。無論DNS服務(wù)器回答“A”記錄還是“AAAA”記錄,都可以進(jìn)行通信。