DNS入門

1、概念

DNS:根據域名查詢IP地址,就像一個巨大的電話本ios

2、查詢過程

dig 能夠查看整個查詢過程,會展現四段信息web

dig www.jianshu.com
; <<>> DiG 9.10.6 <<>> www.jianshu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51370
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.jianshu.com.        IN    A

;; ANSWER SECTION:
www.jianshu.com.    30    IN    CNAME    www.jianshu.com.wswebpic.com.
www.jianshu.com.wswebpic.com. 30 IN    A    114.236.90.115
www.jianshu.com.wswebpic.com. 30 IN    A    61.147.227.44

;; Query time: 15 msec
;; SERVER: 223.5.5.5#53(223.5.5.5)
;; WHEN: Wed Jan 23 14:47:02 CST 2019
;; MSG SIZE  rcvd: 104

第一段是查詢參數與統計
第二段是查詢內容,A是address的縮寫
第三段DNS服務器的答覆,A記錄是用來指定域名對應的ip地址,CNAME記錄是別名記錄,容許多個名字映射到同一個域名。30指緩存時間,30秒內不用從新查詢緩存

  • A記錄把一個域名解析到一個IP地址,CNAME把域名解析到另外一個域名,這個別名也要作A記錄的。可是使用CNAME記錄能夠更方便的變動IP,好比一臺服務器有100個網站,他們都作了別名,服務器變動IP時,只須要變動別名的A記錄就行了。

第四段是DNS服務器的一些傳輸信息,本機DNS服務器是223.5.5.5服務器

若是不想看到太多信息,能夠用如下命令app

dig +short www.jianshu.com

3、DNS服務器

比較有名的DNS服務器是網站

  • Google的8.8.8.8
  • 阿里雲的114.114.114.114
  • 阿里雲的223.5.5.5

dig命令有個@參數,指定某個DNS服務器阿里雲

dig @114.114.114.114 www.jianshu.com

4、域名分級查詢

上面能夠看出每一個域名後面都多了個 .
域名www.jianshu.com 顯示爲www.jianshu.com.。這是由於每一個域名尾部都有一個根域名.root,通常忽略不寫。如下是域名層級結構
evernotecid://2CF3738D-BAB2-47DD-9C0D-169A9D334A90/appyinxiangcom/13231804/ENResource/p288
clipboard.pngspa

分級查詢就是從根域名開始,依次查詢每一級域名的NS記錄(域名服務器記錄),直到查到最終IP。code

  1. 從根域名服務器查到頂級域名服務器的NS、A記錄
  2. 從頂級域名服務器查到次級域名服務器的NS、A記錄
  3. 從次級域名服務器查到主機名IP地址

目前世界上有13組根域名服務器blog

如下命令能夠查看DNS整個分級查詢的過程

dig +trace www.jianshu.com

clipboard.png
第一段展現根域名的全部NS記錄,也就是全部根域名服務器

clipboard.png
第二段展現com域名的NS記錄

clipboard.png
第三段展現jianshu.com的NS記錄

clipboard.png
第四段展現www.jianshu.com主機名

如下命令能夠單獨查看每一級域名的NS記錄

dig ns com

圖片描述

參考文獻
  1. 超清晰的DNS原理入門指南
  2. A記錄和CNAME記錄的區別
相關文章
相關標籤/搜索