从dig命令理解DNS
DNS(Domain Name System,域名系統),是一種用于將域名解析為IP的服務器系統,當你上網時輸入一個網址,它之所以能夠找到該網址指向的服務器地址,都是靠域名系統來進行解析的。
先來講講域名。以華工官網為例 www.scut.edu.cn,一個域名,其實是從最右端開始逐層向下的,也就是說.cn是最高級的域名,往下才是.edu,然后到.scut,最后www是華工網站服務器的主機名,通過這樣一層一層就能找到你需要訪問的服務器地址。
當我們輸入一個網址時,DNS幫我們找到這個網址對應的服務器的過程是怎樣的呢?
1、首先要知道,我們每一部連上Internet的電腦都需要配置當前網絡的DNS服務器地址,例如你開通校園網時,學校會給你分配IP,以及告訴你幾個DNS(默認、備用)的地址讓你填好,這個就是直接為你服務的DNS。但是,單靠這個DNS是無法直接解析域名的,在它之上還有更高級的DNS,這些DNS協同運作最終為你找到你需要的域名所在的服務器,下面來講講具體過程。
2、你輸入一個網址www.scnu.edu.cn(華南師范大學官網),這時直接為你服務的華工DNS首先會將請求報告給DNS系統的最高等級服務器“. ”,沒錯,就是一個小數點,這個最高等級DNS服務器稱為root。
華工DNS: 欸~我想找www.scnu.edu.cn這個網站啊,怎么去啊? root
DNS:你去找cn.的DNS吧,它的IP是XXX.XXX.XXX.XXX,他負責管這部分的域名。
3、得到這個響應之后,華工DNS會將請求報告給.cn的DNS。
華工DNS: 欸~我想找www.scnu.edu.cn這個網站啊,root讓我來找你,你知不知道怎么去啊? .cn
DNS:你去找edu.cn.的DNS吧,它的IP是XXX.XXX.XXX.XXX,他負責管這部分的域名。
4、然后,華工DNS會再次給.edu.cn的DNS提交請求。
華工DNS: 欸~我想找www.scnu.edu.cn這個網站啊,.cn讓我來找你,你知不知道怎么去啊? .cn
DNS:哦~我知道,這是華師的域名,你去找他們家的DNS
scnu.edu.cn.吧,它的IP是XXX.XXX.XXX.XXX,你去他家問就知道了。
5、最后,華工DNS向華師的DNS 提供請求,終于能夠找到這個網址對應的IP了。
華工DNS: 欸~我想找www.scnu.edu.cn這個網站啊,聽說是你家的吧,你知不知道怎么去啊? .cn
DNS:哦~這是我們家www服務器的域名啊,我知道,IP就是XXX.XXX.XXX.XXX,你去吧。
整個域名解析過程就是如此,可能你會覺得,這樣不是很繁瑣嗎,為什么不直接找到華師的DNS呢?
這是不可能的,因為單一的DNS不可能記住所有域名對應的IP,這樣會使整個服務器變得很臃腫,也就變得不可靠。采用這種分層的方法,就可以實現分層管理,從而達到效率提高的目的。
這個過程其實我們是可以很直觀的看到的,就是通過dig命令。
dig +trace www.scnu.edu.com
從dig +trace我們可以很清晰的看到一個域名解析的過程:
第一部分的左邊的“.”就是之前提到的root DNS服務器,后面的received。。。。192.168.40.2就是直接為本機服務的DNS(由于我是在虛擬機上運行的所以這是一個本地IP),說明這些root服務器的信息是由直接為本機服務的DNS提供的。
第二部分是由192.112.36.4(即root DNS的IP地址)回饋的消息,cn.就是cn.服務器,后面的e.dns.cn就是這些cn DNS的域名,也就是root告訴我們要到cn去找。
到了最后一部分,由202.116.32.8(華師DNS的IP地址)告訴我們,這個www.scnu.edu.cn網站的IP地址是121.8.171.13,到此一次域名解析就結束了。
其實dig命令更簡單的用法是
dig www.baidu.cn
開頭是一些統計信息,可以不用管,我們看一看后面的SECTION
QUESTION SECTION 這部分是提問,顯示你要查詢的域名
ANSWER SECTION 即答案,顯示查詢到的域名對應的IP
AUTHORITY SECTION 這部分顯示的是直接提供這個域名解析的DNS服務器,不包括更高級DNS服務器
ADDITIONAL SECTION 這部分顯示的是這些直接提供解析的服務器的IP地址
最后面的是一些統計信息,其中SERVER指的是直接為你服務的本地DNS服務器的IP。
除了這些內容之外,還有:
1、中間的5指的是ttl(time to live ,暫存時間),表示這次請求會在服務器上保存多久時間(單位:秒)。
2、IN是固定關鍵詞
3、CNAME是別名,意思是這個域名還有另外一個名字,兩者指向同一個IP。 A指的是Address,即IP地址。 NS指的是服務器主機名,在AUTHORITY SECTION里面的服務器主機名,都會在ADDITIONAL SECTION里給出該主機的IP地址。
在上面的dig命令我們可以看到,在解析一個域名的時候,往往會發現有多個DNS服務器提供解析服務,這是因為DNS服務器要求一般至少有兩個,以防發生服務器宕機無法提供域名解析的情況。那么多個服務器,誰來響應這個DNS請求呢?這就要看服務器管理者怎么設置各個服務器的主從關系(Master-Slave)了,通過dig命令也可以查看DNS服務器的主從關系。
dig -t soa www.baidu.com
SOA是start of authority的簡稱,提供了DNS主服務器的相關信息,在soa之后我們可以看到7個參數,依次是:
1、DNS主服務器名
2、管理員的E-mail,這里是baidu.dns.master@baidu.com,由于@在數據庫文件里有特殊作用,所以這里是用.代替的。
3、更新序號。表示數據庫文件的新舊,一般是用時間來表示,這里1703230011表示的是2017年3月23日進行了一次更新,當天更新編號0011.
4、更新頻率。 表示每5秒,slave服務器就要向master服務器索取更新信息。
5、失敗重試時間,當某些原因導致Slave服務器無法向master服務器索取信息時,會隔5秒就重試一次。
6、失效時間。如果一直重試失敗,當重試時間累積達到86400秒時,不再向主服務器索取信息。
7、緩存時間。默認的TTL緩存時間。
總結
以上是生活随笔為你收集整理的从dig命令理解DNS的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何正确使用Excel中颜色以及代码含义
- 下一篇: 侧信道分析