DNS原理及解析過程詳解

  • 2019 年 10 月 23 日
  • 筆記

  相信大家在平時工作中都離不開DNS解析,DNS解析是互聯網訪問的第一步,無論是使用筆記型電腦瀏覽器訪問網路還是打開手機APP的時候,訪問網路資源的第一步必然要經過DNS解析流程。下面我們將詳細的給大家講解DNS的相關知識。

什麼是DNS

  DNS就是域名系統,是網際網路中的一項核心服務,是用於實現域名和IP地址相互映射的一個分散式資料庫,能夠使用戶更方便的訪問互聯網,而不用去記住能夠被機器直接讀取的IP數串。通過主機名,得到該主機名對應的IP地址的過程叫做域名解析(或主機名解析)。

 

域名結構解析

 

  如上圖所示,域名結構是樹狀結構,樹的最頂端代表根伺服器,根的下一層就是由我們所熟知的.com、.net、.cn等通用域和.cn、.uk等國家域組成,稱為頂級域。網上註冊的域名基本都是二級域名,比如baidu.com、taobao.com等等二級域名,它們基本上是歸企業和運維人員管理。接下來是三級或者四級域名,這裡不多贅述。總體概括來說域名是由整體到局部的機制結構。

DNS解析流程

 

如上圖所示,我們將詳細闡述DNS解析流程。

1、首先客戶端位置是一台電腦或手機,在打開瀏覽器以後,比如輸入www.zdns.cn的域名,它首先是由瀏覽器發起一個DNS解析請求,如果本地快取伺服器中找不到結果,則首先會向根伺服器查詢,根伺服器裡面記錄的都是各個頂級域所在的伺服器的位置,當向根請求www.zdns.cn的時候,根伺服器就會返回.cn伺服器的位置資訊。

2、遞歸伺服器拿到.cn的權威伺服器地址以後,就會尋問cn的權威伺服器,知不知道www.zdns.cn的位置。這個時候cn權威伺服器查找並返回zdns.cn伺服器的地址。

3、繼續向zdns.cn的權威伺服器去查詢這個地址,由zdns.cn的伺服器給出了地址:202.173.11.10

4、最終才能進行http的鏈接,順利訪問網站。

5、這裡補充說明,一旦遞歸伺服器拿到解析記錄以後,就會在本地進行快取,如果下次客戶端再請求本地的遞歸域名伺服器相同域名的時候,就不會再這樣一層一層查了,因為本地伺服器裡面已經有快取了,這個時候就直接把www.zdns.cn的A記錄返回給客戶端就可以了。

DNS資源記錄

 

 記錄一條域名資訊映射關係,稱之為資源記錄(RR)。

當我們查詢域名www.zdns.cn的時候,查詢結果得到的資源記錄結構體中有如下數據:

1、TTL,就是生存周期,是遞歸伺服器會在快取中保存該資源記錄的時長。

2、網路/協議類型,它的代表的標識是IN,IN就是internet,目前DNS系統主要支援的協議是IN。

3、type,就是資源記錄類型,一般的網站都是都是A記錄(IPv4的主機地址)。

4、rdata是資源記錄數據,就是域名關聯的資訊數據。

小知識:

下面我們列出幾條常用的資源記錄類型:

A :Address地址, IPv4

AAAA:Address地址 IPv6

NS :Name Server域名伺服器

SOA:Start of Authority起始授權機構

MX:Mail Exchanger郵件交換

CNAME:Canonical Name規範名

PTR:Pointer指針

TXT:Text

SRV:Service

 

DNS伺服器的分類

常見的DNS伺服器就是兩種:權威解析伺服器和遞歸解析伺服器。遞歸解析伺服器也可以叫做localDNS。

權威解析伺服器

DNS權威伺服器保存著域名空間中部分區域的數據。如果DNS伺服器負責管轄一個或多個區域時,稱此DNS伺服器為這些區域的權威伺服器。

根權威DNS或者二級權威伺服器中的資源記錄標記被指定為區域權威伺服器的DNS伺服器。通過資源記錄中列出伺服器,其他伺服器就認為它是該區域的權威伺服器。這意味著在 NS 資源記錄中指定的任何伺服器都被其他伺服器當作權威的來源,並且能肯定應答區域內所含名稱的查詢。

遞歸伺服器

遞歸伺服器在正常情況下,初始的時候裡面沒有任何域名解析數據,裡面所有的域名解析數據都來自於它到權威解析伺服器的查詢結果,一旦查詢完畢,遞歸伺服器就會根據TTL時間在本地形成一條快取記錄,並為用戶提供DNS解析的查詢服務,這是遞歸伺服器的功能。

 

小知識:

問:當我們修改DNS解析服務記錄的時候,我們應該在權威裡面修改還是在遞歸裡面修改?

答:所有的DNS解析記錄裡面類型的修改都是在權威解析伺服器裡面做修改。