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