王巍,吳許俊,朱長水
(南京理工大學(xué) 泰州科技學(xué)院,江蘇 泰州 225300)
IPv4網(wǎng)絡(luò)中,DNS用來實現(xiàn)域名到地址以及地址到域名的映射,IPv6網(wǎng)絡(luò)[1]在原有的域名系統(tǒng)上進(jìn)行了擴(kuò)展。IETF為IPv6的DNS定義了兩種新的記錄類型:AAAA記錄類型和A6記錄類型。在IPv4和IPv6并存的環(huán)境中,DNS服務(wù)器需要為雙棧主機(jī)至少保存兩條DNS記錄,分別記錄主機(jī)IPv4地址到域名的映射以及IPv6地址到域名的映射。
為了解決因特網(wǎng)IPv4地址空間的局限性,IETF提出了下一代IP地址結(jié)構(gòu)IPv6,其在IP地址空間、路由協(xié)議、安全性、移動性以及服務(wù)質(zhì)量QoS支持等方面都作出了較大的改進(jìn)。IPv6地址的位數(shù)是IPv4地址的位數(shù)的4倍,128比特的IPv6地址空間非常巨大,世界上的每個人都可以擁有5.7×1028個IPv6地址。由于地址空間的增加,就無須進(jìn)行地址轉(zhuǎn)換,NAT部署帶來的問題和系統(tǒng)開銷也隨之解決,將使通信真正實現(xiàn)全球可達(dá)且任意點到任意點的連接。
IPv6地址共分為 3種類型:1) 單播地址(Unicast Address):用來標(biāo)識單一網(wǎng)絡(luò)接口。目標(biāo)地址是單播地址的數(shù)據(jù)包將發(fā)送給以該地址為標(biāo)識的網(wǎng)絡(luò)接口。2)任播地址(AnycastAddress):用來標(biāo)識一組網(wǎng)絡(luò)接口,這些接口通常屬于不同的節(jié)點。目標(biāo)地址是任播地址的數(shù)據(jù)包將發(fā)送到路由意義上距離最短的網(wǎng)絡(luò)接口。3)多播地址(MulticastAddress):用來標(biāo)識同一組網(wǎng)絡(luò)接口。發(fā)送到多播地址的數(shù)據(jù)包將發(fā)送給本組內(nèi)所有的網(wǎng)絡(luò)接口。
IPv6中取消了廣播地址,其功能通過IPv6的多播地址實現(xiàn)[2]。 在 IPv4中地址分為A、B、C、D、E類,IPv4地址中包含網(wǎng)絡(luò)標(biāo)識符和主機(jī)標(biāo)識符兩部分,而在 IPv6協(xié)議中采用層次型的地址體系結(jié)構(gòu)。該地址結(jié)構(gòu)延續(xù)了IPv4中的超網(wǎng)和CIDR協(xié)議的思想。IPv6單播地址的結(jié)構(gòu)如表1所示。
表1 IPv6的單播地址結(jié)構(gòu)Tab.1 Structure of IPv6 Unicast Address
IPv6采用多層次的地址結(jié)構(gòu)可以顯著提高路由速度[3],網(wǎng)絡(luò)中不同層次的路由能夠識別出地址中位于上層的網(wǎng)絡(luò)標(biāo)識。低層子網(wǎng)的網(wǎng)絡(luò)標(biāo)識在其高層的子網(wǎng)中被聚合起來,縮小了高層子網(wǎng)中的路由表項,提高了路由匹配和轉(zhuǎn)發(fā)速度。
IPv6的DNS在體系結(jié)構(gòu)上與IPv4網(wǎng)絡(luò)類似,同樣采用了倒立的樹型[4]結(jié)構(gòu)。最高層為根(Root),下一層為頂級域[5](Top Level Domain),接著是二級域(Second Level Domain)。IPv6的DNS樹型結(jié)構(gòu)如圖1所示。IPv6 DNS在v4的基礎(chǔ)上做了以下擴(kuò)展[6]:
1)為每一個域名到IPv6地址的映射定義一個資源記錄類型。
2)主域支持基于地址的搜索。
3)把現(xiàn)有的僅支持為定位IPv4地址而執(zhí)行附加段操作的查詢,擴(kuò)展到既支持IPv4地址又支持IPv6地址[7]。
圖1 域名體系結(jié)構(gòu)Fig.1 Architecture of DNS system
IPv6地址的正向解析DNS記錄支持兩種類型:AAAA記錄和A6記錄[8]。AAAA類型是對IPv4地址的正向解析DNS記錄類型A的簡單擴(kuò)展[9],不支持IPv6地址的層次性。AAAA類型的IPv6地址正向解析DNS記錄的類型值是28。
A6記錄類型是把一個IPv6地址與多個A6記錄建立聯(lián)系,每個A6記錄都只包含了IPv6地址的一部分,這些部分結(jié)合后拼裝成一個完整的IPv6地址[10]。A6記錄類型的記錄支持一些AAAA類型的記錄所不支持的新特性,如地址聚合、地址重編號等。A6類型的記錄根據(jù)可聚合全球單播地址中的TLA、NLA和SLA項目分配的層次,把IPv6地址分解為若干級的地址前綴和地址后綴,每個地址前綴和地址后綴構(gòu)成地址鏈上的一環(huán),一個完整的地址鏈組成一個IPv6地址。
為了使域名系統(tǒng)能正確實現(xiàn)IPv6地址到域名的反向解析,域名系統(tǒng)中增加了兩個新域:ip6.int和 ip6.arpa。ip6.int對應(yīng)于AAAA記錄,是對 IPv4的簡單擴(kuò)展,ip6.arpa對應(yīng)與A6記錄,地址和“A6”一樣 ,可以分成多級地址鏈表示,每一級的授權(quán)用“DNAME”記錄。ip6.int域采用以 “.”分隔的半字節(jié)十六進(jìn)制數(shù)字格式(Nibble Format)來表示一個 IPv6地址,低位地址在前,高位地址在后,并以 ip6.int.作為其后綴;而在 ip6.arpa域中,則采用了二進(jìn)制串(Bit-string)格式的標(biāo)記類型,該格式以“<”開頭,位串中的十六進(jìn)制地址(高位在前低位在后)緊隨其后,地址末尾加上“>”標(biāo)記,域后綴為“IP6.ARPA.”。
Linux具備開源、安全、穩(wěn)定等特點而廣泛應(yīng)用于服務(wù)器領(lǐng)域,本文將在Linux系統(tǒng)下通過Bind程序來架設(shè)DNS服務(wù)器。Bind是Berkeley Internet Name Domain Service的簡寫,它是一款實現(xiàn)DNS服務(wù)器的開放源碼軟件。Bind來源于美國DARPA資助伯克里大學(xué)(Berkeley)的科研項目,該項目誕生了世界上使用最為廣泛的DNS服務(wù)器軟件BIND。
Bind程序的DNS服務(wù)進(jìn)程名為named,該進(jìn)程啟動時加載文件/etc/named.conf的配置信息,該文件定義了正向域名解析和反向域名解析的區(qū)域信息。named.conf文件中添加DNS正向解析和反向解析條目。
選項部分的directory“/var/named/”指定域文件的位置,區(qū)域 “v6test.com”定義了域v6test.com的正向解析文件為/var/named/v6test.com.zone,并且為該域的主DNS服務(wù)器。區(qū)域“1.9.3.0.0.6.3.a.e.3.d.0.1.0.0.2.ip6.int”定義了對應(yīng)AAAA記錄的反向解析信息。區(qū)域"[x20010d3ea3600391/64].ip6.arpa"定義了對應(yīng)A6記錄的反向解析信息。
建立v6test.com域名的正向解析文件v6test.com.zone,具體信息如下:
反向數(shù)據(jù)解析文件1.9.3.0.0.6.3.a.e.3.d.0.1.0.0.2.ip6.int.zone的PTR記錄與v6test.com.zone中的AAAA記錄相對應(yīng),具體信息如下:
文件中的PTR記錄采用半位元標(biāo)記格式記錄主機(jī)地址后綴,DNS服務(wù)器從named.conf文件中獲取地址前綴1.9.3.0.0.6.3.a.e.3.d.0.1.0.0.2.ip6.int從而構(gòu)成一個完整的Ipv6地址。
反向數(shù)據(jù)解析文件x20010d3ea3600391.ip6.arpa.zone的PTR記錄與v6test.com.zone中的A6記錄相對應(yīng),具體信息如下:
文件中的PTR記錄采用位串標(biāo)記格式記錄主機(jī)地址后綴,DNS服務(wù)器從named.conf文件中獲取地址前綴[x20010d3ea3600391/64].ip6.arpa從而構(gòu)成一個完整的Ipv6地址。
服務(wù)器中運(yùn)行命令/etc/rc.d/init.d/named start啟動DNS服務(wù),配置客戶機(jī)的/etc/resolv.conf文件,將客戶機(jī)DNS地址指向DNS服務(wù)器,并在Linux系統(tǒng)中使用nslookup工具測試域名解析,依次檢測正向解析和反向解析的功能。
隨著互聯(lián)網(wǎng)的發(fā)展,IPv6相關(guān)技術(shù)正逐步投入使用,與IPv4網(wǎng)絡(luò)長期共存。DNS是網(wǎng)絡(luò)互聯(lián)不可或缺的環(huán)節(jié),在IPv4/IPv6的交叉融合區(qū)域,常存在DNS服務(wù)器不能同時為IPv4和IPv6主機(jī)解析域名的問題。為了實現(xiàn)IPv4與IPv6網(wǎng)絡(luò)域名之間的互通,DNS需要采用IPv6的過渡技術(shù),以實現(xiàn)下一代網(wǎng)絡(luò)的平穩(wěn)升級。
[1]李津生,洪佩琳.下一代 Internet網(wǎng)絡(luò)技術(shù)[M].人民郵電出版社,2001.
[2]黃烜.IPv6組播技術(shù)[J].計算機(jī)與現(xiàn)代化,2005,6(18):52-59.
HUANG Xuan.IPv6 Multicast Technology[J].Computer and Modernization,2005,6(18):52-59.
[3]WANG Ling-fang,ZHANG Yu,LI Ying-hua.Implementing Cisco IPV6 Networks[M].Beijing:Posts&Telecom Press,2003.
[4]張鴻.IPv6時代的域名系統(tǒng)[R].北京:中國科學(xué)院計算機(jī)網(wǎng)絡(luò)中心,2007.
[5]李丹,吳建平,崔勇,等.互聯(lián)網(wǎng)名字空間結(jié)構(gòu)及其解析服務(wù)研究[J].軟件學(xué)報,2005,16(8):1445-4555.
LI Dan,WU Jian-ping,CUI Yong,et al.Research on the structures and resolutions of Internet namespaces[J].Journal of Software,2005,16(8):1445-1455.
[6]DONG Zhong-kai.DNS introduction[EB/OL].http://tur-tle.ee.ncku.edu.tw/tung/dns/,1999-051
[7]IETF RFC 2694-1999.DNS extensions to Network Address Translators(DNS_ALG)[S].
[8]Crawford M,Huitema C,IETF.RFC 2874,DNS Extensions to Support IPV6 Address Aggregation and Renumbering[S].www.ietf.org/rfc/rfc2874.txt,2000-07.
[9]Bush R,Durand A,F(xiàn)ink B,et al.Represent-ing Internet Protocol version 6 (IPv6)Addresses in the Domain Name System (DNS)[S].RFC 3363, 2002.
[10]張鴻,錢華林.IPv6對域名系統(tǒng)的需求及其解決方法的研究[J].微電子學(xué)與計算機(jī),2003(1): 35-38.
ZHANG Hong,QIAN Hua Lin.The Challenge for Domain Name System from IPv6 and Its Solution[J].Microelectronics&Computer, 2003(1):35-38.