DNS原理及解析過程詳解
相信大家在平時工作中都離不開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解析記錄裡面型別的修改都是在權威解析伺服器裡面做修改。
&n