DNS的定義
DNS的定義是指:域名系統(tǒng)(Domain Name System)。在Internet 上域名與IP 地址之間是一一對應(yīng)的,域名雖然便于人們記憶,但機器之間只能互相認(rèn)識IP 地址,它們之間的轉(zhuǎn)換工作稱
DNS的定義
是指:域名系統(tǒng)(Domain Name System)。在Internet 上域名與IP 地址之間是一一對應(yīng)的,域名雖然便于人們記憶,但機器之間只能互相認(rèn)識IP 地址,它們之間的轉(zhuǎn)換工作稱為域名解析,域名解析需要由專門的域名解析系統(tǒng)來完成,DNS 就是進(jìn)行域名解析的系統(tǒng)。
歷史
DNS 最早于1983年由保羅·莫卡派喬斯(Paul Mockapetris)發(fā)明;原始的技術(shù)規(guī)范在882號因特網(wǎng)標(biāo)準(zhǔn)草案(RFC 882)中發(fā)布。1987年發(fā)布的第1034和1035號草案修正了DNS 技術(shù)規(guī)范,并廢除了之前的第882和883號草案。在此之后對因特網(wǎng)標(biāo)準(zhǔn)草案的修改基本上沒有涉及到DNS 技術(shù)規(guī)范部分的改動。 早期的域名必須以英文句號“.”結(jié)尾, 當(dāng)用戶訪問 www.baidu.com 的HTTP 服務(wù)時必須在址欄中輸入:http://www.baidu.com.,這樣DNS 才能夠進(jìn)行域名解析。如今DNS 服務(wù)器已經(jīng)可以自動補上結(jié)尾的句號。
開始時,域名的字符僅限于ASCII 字符的一個子集。2008年,ICANN 通過一項決議,允許使用其它語言作為互聯(lián)網(wǎng)頂級域名的字符。使用基于Punycode 碼的IDNA 系統(tǒng),可以將Unicode 字符串映射為有效的DNS 字符集。因此,諸如“x.中國”這樣的域名可以在地址欄直接輸入,而不需要安裝插件。但是,由于英語的廣泛使用,使用其他語言字符作為域名會產(chǎn)生多種問題,例如難以輸入,難以在國際推廣等。
域名解析
舉一個例子,www.baidu.com 作為一個域名就和IP 地址58.217.200.13相對應(yīng)。DNS 就像是一個自動的電話號碼簿,我們可以直接撥打baidu 的名字來代替電話號碼(IP 地址)。DNS 在我們直接調(diào)用網(wǎng)站的名字以后就會將像www.baidu.com 一樣便于人類使用的名字轉(zhuǎn)化成像58.217.200.13一樣便于機器識別的IP 地址。 DNS 查詢有兩種方式:遞歸 和 迭代。DNS 客戶端設(shè)置使用的DNS 服務(wù)器一般都是遞歸服務(wù)器,它負(fù)責(zé)全權(quán)處理客戶端的DNS 查詢請求,直到返回最終結(jié)果。而DNS 服務(wù)器之間一般采用迭代查詢方式。以查詢 www.baidu.com 為例: 客戶端發(fā)送查詢報文"query ww.baidu.com"至DNS 服務(wù)器,DNS 服務(wù)器首先檢查自身緩存,如果存在記錄則直接返回結(jié)果。
如果記錄老化或不存在,則
DNS 服務(wù)器向根域名服務(wù)器發(fā)送查詢報文"query www.baidu.com" ,根域名服務(wù)
,器返回 .com 域的權(quán)威域名服務(wù)器地址。
DNS 服務(wù)器向 .com 域的權(quán)威域名服務(wù)器發(fā)送查詢報文"query www.baidu.com",得到 baidu.com 域的權(quán)威域名服務(wù)器地址。
DNS 服務(wù)器向 .baidu.com 域的權(quán)威域名服務(wù)器發(fā)送查詢報文"query www.baidu.com" ,得到主機的A 記錄,存入自身緩存并返回給客戶端。 記錄類型
DNS 系統(tǒng)中,常見的資源記錄類型有:
主機記錄(A記錄) :RFC 1035定義,A 記錄是用于名稱解析的重要記錄,它將特定的主機名映射到對應(yīng)主機的IP 地址上。
別名記錄(CNAME記錄): RFC 1035定義,CNAME 記錄用于將某個別名指向到某個A 記錄上,這樣就不需要再為某個新名字另外創(chuàng)建一條新的A 記錄。 IPv6主機語錄(AAAA記錄): RFC 3596定義,與A 記錄對應(yīng),用于將特定的主機名映射到一個主機的IPv6地址。
服務(wù)位置記錄(SRV記錄): RFC 2782定義,用于定義提供特定服務(wù)的服務(wù)器的位置,如主機(hostname),端口(port number)等。
NAPTR 記錄: RFC 3403定義,它提供了正則表達(dá)式方式去映射一個域名。NAPTR 記錄非常著名的一個應(yīng)用是用于ENUM 查詢。