国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 操作系統 > 正文

dig挖出DNS的秘密

2024-06-28 16:03:27
字體:
來源:轉載
供稿:網友

【初次見面】

我相信使用nslookup的同學一定比使用dig的同學多,所以還是有必要花些時間給大家介紹一下dig的。

dig,和nslookup作用有些類似,都是DNS查詢工具。

dig,其實是一個縮寫,即Domain Information Groper。

一些專業的DNS管理員在追查DNS問題時,都樂于使用dig命令,是看中了dig設置靈活、輸出清晰、功能強大的特點。

【最簡單的dig用法】

最簡單的dig用法,當然就是直接輸入dig按回車。

123456dig; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.2 <<>> //Dig命令的版本信息;; global options: +cmd;; Got answer:;; ->>HEADER<

從上面的輸出,你一定觀察到了,當直接使用dig命令,不加任何參數和選項時,dig會向默認的上連DNS服務器查詢“.”(根域)的NS記錄。

【dig加個點】

剛才直接輸入dig,這次我們在后面加上一個“.”,看看結果和剛才有何區別:

123456dig .; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.2 <<>> .;; global options: +cmd;; Got answer:;; ->>HEADER<

【我想用google-DNS來查baidu.com的A記錄】

1234567dig @8.8.8.8 www.baidu.com A //命令格式為dig @dnsserver name querytype; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.2 <<>> @8.8.8.8 www.baidu.com A; (1 server found);; global options: +cmd;; Got answer:;; ->>HEADER<

從這個例子,大家學習到了dig的基本的命令格式是:

1dig @dnsserver name querytype

如果你設置的dnsserver是一個域名,那么dig會首先通過默認的上連DNS服務器去查詢對應的ip地址,然后再以設置的dnsserver為上連DNS服務器。如果你沒有設置@dnsserver,那么dig就會依次使用/etc/resolv.conf里的地址作為上連DNS服務器。而對于querytype,如果你看過我上一篇有關nslookup命令的講解,那么你應該對querytype有所了解,你可以設置A/AAAA/PTR/MX/ANY等值,默認是查詢A記錄。

【一些常用的選項】

1 -c選項,可以設置協議類型(class),包括IN(默認)、CH和HS。

2 -f選項,dig支持從一個文件里讀取內容進行批量查詢,這個非常體貼和方便。文件的內容要求一行為一個查詢請求。來個實際例子吧:

1234567891011cat querylist //文件內容,共有兩個域名需要查詢www.baidu.comwww.sohu.comdig -f querylist -c IN -t A//設置-f參數開始批量查詢; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.2 <<>> www.baidu.com;; global options: +cmd;; Got answer:;; ->>HEADER<> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.2 <<>> www.sohu.com;; Got answer:;; ->>HEADER<

3 -4和-6兩個選項,用于設置僅適用哪一種作為查詢包傳輸協議,分別對應著IPv4和IPv6。

4 -t選項,用來設置查詢類型,默認情況下是A,也可以設置MX等類型,來一個例子:

123456dig roclinux.cn -t MX; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.2 <<>> roclinux.cn -t MX;; global options: +cmd;; Got answer:;; ->>HEADER<

5 -q選項,其實它本身是一個多余的選項,但是它在復雜的dig命令中又是那么的有用。-q選項可以顯式設置你要查詢的域名,這樣可以避免和其他眾多的參數、選項相混淆,提高了命令的可讀性,來個例子:

123456dig -q www.roclinux.cn; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.2 <<>> -q www.roclinux.cn;; global options: +cmd;; Got answer:;; ->>HEADER<

6 -x選項,是逆向查詢選項。可以查詢IP地址到域名的映射關系。舉一個例子:

123456dig -x 193.0.14.129; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.2 <<>> -x 193.0.14.129;; global options: +cmd;; Got answer:;; ->>HEADER<

【dig特有的查詢選項(query option)】

和剛才的選項不同,dig還有一批所謂的“查詢選項”,這批選項的使用與否,會影響到dig的查詢方式或輸出的結果信息,因此對于這批選項,dig要求顯式的在其前面統一的加上一個“+”(加號),這樣dig識別起來會更方便,同時命令的可讀性也會更強。dig總共有42個查詢選項,涉及到DNS信息的方方面面,如此多的查詢選項,本文不會一一贅述,只會挑出最最常用的幾個重點講解。

【TCP代替UDP】

眾所周知,DNS查詢過程中的交互是采用UDP的。如果你希望采用TCP方式,需要這樣:

123456dig +tcp www.baidu.com; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.2 <<>> +tcp www.baidu.com;; global options: +cmd;; Got answer:;; ->>HEADER<

【默認追加域】

大家直接看例子,應該就能理解“默認域”的概念了,也就能理解+domain=somedomain的作用了:

123456dig +domain=baidu.com image; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.2 <<>> +domain=baidu.com image;; global options: +cmd;; Got answer:;; ->>HEADER<

【跟蹤dig全過程】

dig非常著名的一個查詢選項就是+trace,當使用這個查詢選項后,dig會從根域查詢一直跟蹤直到查詢到最終結果,并將整個過程信息輸出出來。

1234567891011121314151617181920212223242526272829303132333435dig +trace roclinux.cn; <<>> DiG 9.2.4 <<>> +trace roclinux.cn;; global options: PRintcmd. 335937 IN NS l.root-servers.net.. 335937 IN NS b.root-servers.net.. 335937 IN NS d.root-servers.net.. 335937 IN NS k.root-servers.net.. 335937 IN NS h.root-servers.net.. 335937 IN NS j.root-servers.net.. 335937 IN NS a.root-servers.net.. 335937 IN NS e.root-servers.net.. 335937 IN NS c.root-servers.net.. 335937 IN NS m.root-servers.net.. 335937 IN NS g.root-servers.net.. 335937 IN NS i.root-servers.net.. 335937 IN NS f.root-servers.net.;; Received 400 bytes from 10.23.0.231#53(10.23.0.231) in 0 ms //從本地DNS查找到根域DNS列表cn. 172800 IN NS c.dns.cn.cn. 172800 IN NS a.dns.cn.cn. 172800 IN NS b.dns.cn.cn. 172800 IN NS e.dns.cn.cn. 172800 IN NS ns.cernet.net.cn. 172800 IN NS d.dns.cn.;; Received 292 bytes from 192.228.79.201#53(b.root-servers.net) in 460 ms //選擇了b.root-servers.net這臺根域DNS來查找cn.域DNS列表roclinux.cn. 21600 IN NS ns11.edong.com.roclinux.cn. 21600 IN NS ns12.edong.com.;; Received 76 bytes from 203.119.27.1#53(c.dns.cn) in 0 ms //選擇了c.dns.cn這臺cn.域DNS服務器來查找roclinux.cn的DNS列表roclinux.cn. 3600 IN A 116.255.245.206roclinux.cn. 3600 IN NS ns12.edong.com.roclinux.cn. 3600 IN NS ns11.edong.com.;; Received 124 bytes from 61.147.124.145#53(ns11.edong.com) in 104 ms //最終查找到A記錄

【精簡dig輸出】

1 使用+nocmd的話,可以節省輸出dig版本信息。

2 使用+short的話,僅會輸出最精簡的CNAME信息和A記錄,其他都不會輸出。就像這樣:

1234dig +short www.baidu.comwww.a.shifen.com.119.75.218.77119.75.217.56

3 使用+nocomment的話,可以節省輸出dig的詳情注釋信息。

4 使用+nostat的話,最后的統計信息也不會輸出。當+nocmd、+nocomment和+nostat都是用上,是這樣:

12345dig +nocmd +nocomment +nostat www.baidu.com;www.baidu.com. IN Awww.baidu.com. 260 IN CNAME www.a.shifen.com.www.a.shifen.com. 244 IN A 119.75.217.56www.a.shifen.com. 244 IN A 119.75.218.77

【我們還需要學習什么】

堅持看我的博客的同學,已經掌握了nslookup和dig兩個DNS工具,我想,下一步你可以自己搭建一套內部的DNS服務器了,自己設置master/slave服務器,自己添加Zone,自己添加正解、反解,自己設置緩存超時等等,相信通過這一番折騰,你對DNS會有不一樣的理解和認識。

謝謝!

原文地址:http://roclinux.cn/?p=2449


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 普陀区| 邢台市| 枣庄市| 临夏市| 呼图壁县| 郴州市| 天门市| 公安县| 志丹县| 双城市| 紫云| 宁明县| 祁阳县| 新田县| 榆树市| 克东县| 无锡市| 柘荣县| 新源县| 鹤山市| 巴马| 肥城市| 施甸县| 丰顺县| 马公市| 博罗县| 高碑店市| 四平市| 玛纳斯县| 澎湖县| 山阴县| 黔南| 迭部县| 黄梅县| 太和县| 徐水县| 长乐市| 湘阴县| 云林县| 岳西县| 德庆县|