Dig 命令讲解
原文地址:https://www.jianshu.com/p/71f61652ec23
DNS 命令輸出格式
輸入 dig rss.newyingyong.cn 命令,通常返回
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49814;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 17;; QUESTION SECTION: ;rss.newyingyong.cn. IN A;; ANSWER SECTION: rss.newyingyong.cn. 600 IN A 139.129.23.162;; AUTHORITY SECTION: newyingyong.cn. 86398 IN NS dns10.hichina.com. newyingyong.cn. 86398 IN NS dns9.hichina.com.;; ADDITIONAL SECTION: dns9.hichina.com. 3490 IN A 140.205.81.15 dns9.hichina.com. 3490 IN A 140.205.81.25;; Query time: 5 msec ;; SERVER: 10.202.72.116#53(10.202.72.116) ;; WHEN: Sat Jul 01 11:00:38 CST 2017 ;; MSG SIZE rcvd: 369各個(gè)返回參數(shù)說明下:
DNS 服務(wù)器記錄類型
默認(rèn) dig rss.newyingyong.cn 返回的是 A 記錄類型,其他類型還包括 MX、NS、SOA 等,我們可以使用 dig -t a/mx/soa/mx rss.newyingyong.cn 進(jìn)行查詢。
其中 +noall +answer 表示返回簡短信息,這里表示查詢 A 記錄。
注意,這里返回 2 個(gè) A 記錄,這相當(dāng)于 DNS 均衡,比如瀏覽器客戶端查詢 www.weibo.com 域名得到兩個(gè) A 記錄,然后連接其中的一個(gè) IP 地址對應(yīng)的 WEB 服務(wù)器,假如發(fā)現(xiàn)連接不上,可以使用另外一個(gè)地址連接。
比如在萬網(wǎng)域名管理后臺,可以給同一個(gè)域名添加兩條 A 記錄,相當(dāng)于實(shí)現(xiàn)了域名負(fù)載均衡。
注意假如用戶輸入 dig -t ns www.weibo.com 是查詢不出 NS 任何記錄的,原因在于只有一級域名(或者頂級域名)才有 NS 記錄,通過 FQDN 是查詢不出 NS 信息的,所以要輸入 dig -t ns weibo.com ,返回:
;; ANSWER SECTION: weibo.com. 9962 IN NS ns3.sina.com.cn. weibo.com. 9962 IN NS ns2.sina.com.cn. weibo.com. 9962 IN NS ns1.sina.com.cn. weibo.com. 9962 IN NS ns4.sina.com. weibo.com. 9962 IN NS ns4.sina.com.cn. weibo.com. 9962 IN NS ns3.sina.com.;; ADDITIONAL SECTION: ns1.sina.com.cn. 14162 IN A 202.106.184.166 ns2.sina.com.cn. 14906 IN A 61.172.201.254 ns3.sina.com. 26496 IN A 61.172.201.254 ns3.sina.com.cn. 9714 IN A 123.125.29.99 ns4.sina.com. 24154 IN A 123.125.29.99 ns4.sina.com.cn. 9733 IN A 121.14.1.22微博的權(quán)威服務(wù)器是微博自己建立的,有 6 個(gè)名稱和 IP 地址:
有這么多地址,主要是防止單點(diǎn)問題,比如某個(gè) NS 服務(wù)器連接不上,可以連接其他 NS 服務(wù)器
上述的 NS IP 地址屬于不同的運(yùn)營商,不同的運(yùn)營商可能會查詢對應(yīng)的 NS 服務(wù)器,原因就是加速查詢。
這里返回的 CNAME 表示查詢 www.baidu.com 的信息其實(shí)是 www.a.shifen.com 返回的 A 記錄。
CNAME 的存在原因:
某個(gè)域名(A)可能會下線,但是這些域名可能還是被訪問到,為了避免不友好的提示,可以將這個(gè)域名 cname 到另外個(gè)域名(B),這樣訪問 B 相當(dāng)于返回 A。
很多公司項(xiàng)目可能有很多個(gè)域名,但是指定的 IP 地址可能每幾個(gè),一旦 IP 地址變化,可能要修改每個(gè)域名的 DNS 信息。假如這些域名 cname 到某個(gè)特定的域名,那么修改域名信息的時(shí)候就會非常方便。
返回 MX 記錄,注意這里不能輸入 dig -t mx rss.newyingyong.cn ,因?yàn)?MX 記錄一般配置在一級域名下。
DNS 迭代查詢的具體流程
對于客戶端(比如瀏覽器)查詢本地域名 DNS 信息的時(shí)候,是遞歸查詢的方式。而本地 DNS 服務(wù)器為了獲取到某個(gè)域名的 DNS 信息,會使用迭代的方式(一步步詢問)。通過 dig +trace blog.newyingyong.cn 來進(jìn)行了解
本地 DNS 服務(wù)器首先查詢根域名服務(wù)器(10.202.72.118),得到 13 組根域名服務(wù)器中的一個(gè),并返回對應(yīng)某個(gè)根域名的 NS 服務(wù)器。
根域名NS 服務(wù)器(192.36.148.17)說并不知道 blog.newyingyong.cn 頂級域名的具體信息,你去問 .cn 頂級域名服務(wù)器去把,并返回 .cn 域名服務(wù)器的 NS 記錄。
.cn 域名服務(wù)器(203.119.29.1)說,我也不知道 blog.newyingyong.cn 的信息,但是我知道是阿里云管理的,并返回阿里云服務(wù)器的 NS 地址。
阿里云 DNS 服務(wù)器(106.11.211.55)說,這個(gè)域名確實(shí)是我管理的,最終返回 blog.rss.newyingyong.cn 的 A 記錄(139.129.23.162)。
DNS 緩存
假如 DNS 服務(wù)器每次都需要迭代或遞歸查詢上一級的 DNS 服務(wù)器,那么 DNS 可能就不堪重負(fù),考慮到域名的 DNS 信息不會頻繁的修改,所以每一級中的 DNS 服務(wù)器都會緩存結(jié)果(包括瀏覽器這樣的客戶端也會緩存 DNS 結(jié)果)。
緩存帶來的弊端可能就是 DNS 信息可能不是最新的,比如某個(gè)域名管理員修改了某個(gè)域名的 A 記錄,由于每一級的 DNS 服務(wù)器都有緩存,所以最后客戶端拿到的結(jié)果不是最新的,為了獲取到最新的結(jié)果,可以直接向權(quán)威域名服務(wù)器進(jìn)行信息查詢。
比如 blog.rss.newyingyong.cn 的域名是由 dns9.hichina.com.(106.11.211.55)管理的,可以直接通過 dig @106.11.211.55 -t a newyingyong.cn 或者 dig @dns9.hichina.com -t a newyingyong.cn 獲取最新 A 記錄。
另外你也可以不查詢本地 DNS 服務(wù)器獲取信息,比如可以使用 8.8.8.8 Google Public DNS 進(jìn)行查詢,dig @8.8.8.8 -t a newyingyong.cn 。
總結(jié)
- 上一篇: plecs matlab 联合仿真,利用
- 下一篇: java 如何执行dig 命令_如何在c