什么是DNS?
DNS是Domain Name System的縮寫,翻譯成中文就是“域名系統(tǒng)”。DNS是互聯(lián)網(wǎng)中的一項(xiàng)核心服務(wù),是用于實(shí)現(xiàn)域名和IP地址相互映射的一個(gè)分布式數(shù)據(jù)庫,它可以將域名翻譯成由計(jì)算機(jī)識別的IP地址串,讓用戶可以通過域名達(dá)到站點(diǎn)所在服務(wù)器,而不用去記住繁瑣復(fù)雜的IP地址。
域名的分層結(jié)構(gòu)
由于互聯(lián)網(wǎng)上的用戶數(shù)量較大,所以在命名的時(shí)候采用的是樹狀層次結(jié)構(gòu)。任何一個(gè)連接互聯(lián)網(wǎng)的主機(jī)或路由器,都有一個(gè)唯一的層次結(jié)構(gòu)名字,也就是域名。域名的結(jié)構(gòu)由標(biāo)號序列組成,各標(biāo)號之間用點(diǎn)隔開。類似于這樣:“….三級域名.二級域名.頂級域名” 。
“.”最右邊的部分稱作“頂級域名”。“頂級域名”又叫“一級域名”,例如:.com、.org、.NET、.cn 等。“二級域名”就是在“一級域名”前再加一級,如 baidu.com。“二級域名”以上級別的域名,統(tǒng)稱為“子域名”,不在“注冊域名”的范疇中。
各級域名由其上一級的域名管理機(jī)構(gòu)管理,而最高級的頂級域名則由ICANN進(jìn)行管理。
DNS的分層結(jié)構(gòu)
與域名相對應(yīng),DNS服務(wù)器也有對應(yīng)的層級結(jié)構(gòu)。根據(jù)DNS服務(wù)器所起的作用,可以將DNS服務(wù)器分為四種類:
根DNS服務(wù)器
Root nameserver。它是最高層次的DNS服務(wù)器,當(dāng)本地域名服務(wù)器沒有解析記錄時(shí),首先會(huì)向根域名服務(wù)器發(fā)起請求,并獲取下一級頂級域名服務(wù)器的IP地址。
頂級域名服務(wù)器
Tld nameserver。頂級域名服務(wù)器負(fù)責(zé)管理在該服務(wù)器注冊的所有二級域名。本地域名服務(wù)器根據(jù)根域名服務(wù)器給出的IP地址,對頂級域名服務(wù)器發(fā)起請求,并獲取域名所在權(quán)威服務(wù)器地址。
權(quán)威域名服務(wù)器
authoritative nameserver。在特定區(qū)域內(nèi)具有唯一性,負(fù)責(zé)維護(hù)該區(qū)域內(nèi)的域名與IP地址之間的對應(yīng)關(guān)系,例如中科三方云解析DNS。
本地域名服務(wù)器
DNS resolver或Local DNS。本地域名服務(wù)器并不屬樹狀結(jié)構(gòu)的DNS域名服務(wù)器,但是它對域名系統(tǒng)非常重要。當(dāng)客戶端發(fā)起DNS請求時(shí),首先會(huì)將請求發(fā)給本地域名服務(wù)器。用戶本機(jī)自動(dòng)分配的DNS、運(yùn)營商ISP分配的DNS、谷歌/114公共DNS等,都屬于本地域名服務(wù)器范疇。
每一層的域名都有自己的域名服務(wù)器,上一級的域名服務(wù)器都知道下一級域名服務(wù)器的IP地址,以便于一級一級向下查詢。
DNS解析過程
DNS解析通常會(huì)先查詢本地域名服務(wù)器中的緩存,如果緩存中有結(jié)果直接返回,解析到此結(jié)束。如果本地服務(wù)器沒有緩存,就會(huì)進(jìn)行全球遞歸查詢,步驟如下:
1.用戶在瀏覽器輸入一個(gè)域名,首先會(huì)請求本地域名服務(wù)器,本地服務(wù)器沒有結(jié)果,開始進(jìn)行遞歸查詢;
2.本地域名服務(wù)器首先向根域名服務(wù)器進(jìn)行查詢;
3.根域名服務(wù)器告訴本地域名服務(wù)器下一級頂級域名服務(wù)器的地址;
4.本地域名服務(wù)器向頂級域名服務(wù)器發(fā)起解析請求;
5.頂級域名服務(wù)器告知下一級權(quán)威域名服務(wù)器的IP地址;
6.本地域名服務(wù)器向權(quán)威域名服務(wù)器發(fā)起查詢請求;
7.權(quán)威域名服務(wù)器告知域名對應(yīng)的IP地址;
8.本地域名服務(wù)器將查詢到的結(jié)果響應(yīng)給瀏覽器并在自身緩存一段時(shí)間。
9.瀏覽器向得到的IP地址發(fā)起訪問請求;
10.該IP處的web服務(wù)器返回要在瀏覽器中呈現(xiàn)的網(wǎng)頁。