dig命令
- nslookup:query Internet name servers interactively;
dig:Domain Information Groper - 【我想用google-DNS來查baidu.com的A記錄】dig @8.8.8.8 www.baidu.com A
可以看出 dig的基本的命令格式是:
dig @dnsserver name querytype
如果你設(shè)置的dnsserver是一個(gè)域名,那么dig會(huì)首先通過默認(rèn)的上連DNS服務(wù)器去查詢對(duì)應(yīng)的IP地址,
然后再以設(shè)置的dnsserver為上連DNS服務(wù)器。
如果你沒有設(shè)置@dnsserver,那么dig就會(huì)依次使用/etc/resolv.conf里的地址作為上連DNS服務(wù)器。
querytype可以設(shè)置A/AAAA/PTR/MX/ANY等值,默認(rèn)是查詢A記錄。 - 常用選項(xiàng)
- -c選項(xiàng),可以設(shè)置協(xié)議類型(class),包括IN(默認(rèn))、CH和HS。
- -f選項(xiàng),dig支持從一個(gè)文件里讀取內(nèi)容進(jìn)行批量查詢,這個(gè)非常體貼和方便。文件的內(nèi)容要求一行為一個(gè)查詢請(qǐng)求。
- -4和-6兩個(gè)選項(xiàng),用于設(shè)置僅適用哪一種作為查詢包傳輸協(xié)議,分別對(duì)應(yīng)著IPv4和IPv6。
- -t選項(xiàng),用來設(shè)置查詢類型,默認(rèn)情況下是A,也可以設(shè)置MX等類型
- -q選項(xiàng),其實(shí)它本身是一個(gè)多余的選項(xiàng),但是它在復(fù)雜的dig命令中又是那么的有用。
- -q選項(xiàng)可以顯式設(shè)置你要查詢的域名,這樣可以避免和其他眾多的參數(shù)、選項(xiàng)相混淆,提高了命令的可讀性
- -x選項(xiàng),是逆向查詢選項(xiàng)??梢圆樵僆P地址到域名的映射關(guān)系。
- 【dig特有的查詢選項(xiàng)(query option)】
和剛才的選項(xiàng)不同,dig還有一批所謂的“查詢選項(xiàng)”,這批選項(xiàng)的使用與否,
會(huì)影響到dig的查詢方式或輸出的結(jié)果信息,因此對(duì)于這批選項(xiàng),
dig要求顯式的在其前面統(tǒng)一的加上一個(gè)“+”(加號(hào)),這樣dig識(shí)別起來會(huì)更方便,
同時(shí)命令的可讀性也會(huì)更強(qiáng)。
- 【TCP代替UDP】
眾所周知,DNS查詢過程中的交互是采用UDP的。如果你希望采用TCP方式 - 【跟蹤dig全過程】
dig非常著名的一個(gè)查詢選項(xiàng)就是+trace,當(dāng)使用這個(gè)查詢選項(xiàng)后,
dig會(huì)從根域查詢一直跟蹤直到查詢到最終結(jié)果,并將整個(gè)過程信息輸出出來。
Q:請(qǐng)教大神 Linux(Unix)的設(shè)計(jì)思想 : 程序應(yīng)該小而專一,程序應(yīng)該盡量的小,
且只專注于一件事上,不要開發(fā)那些看起來有用但是90%的情況都用不到的特性,
所以dig也是一個(gè)程序吧;如果以最小化安裝很多命令都不知道這條命令屬于哪個(gè)
程序只能用google搜索么???
A:不用的,舉例redhat , centos , fedora 下用yum provides 命令名,
就可以查找該命令屬于哪個(gè)軟件包了。非常方便。
Q:dig +trace 這句執(zhí)行的結(jié)果中,看到
roclinux.cn. 21600 IN NS ns11.edong.com.
roclinux.cn. 21600 IN NS ns12.edong.com.
roclinux.cn. 3600 IN NS ns12.edong.com.
roclinux.cn. 3600 IN NS ns11.edong.com.
這里DNS的緩存時(shí)間,一個(gè)是21600,一個(gè)是3600,到底以那個(gè)為準(zhǔn)呢
上述摘自:《dig挖出DNS的秘密》-linux命令五分鐘系列之三十四
關(guān)于百度DNS的解析過程
[root@zichen star]# nslookup www.baidu.com
Server: 211.140.13.188
Address: 211.140.13.188#53
Non-authoritative answer:
www.baidu.com canonical name = www.a.shifen.com.
Name: www.a.shifen.com
Address: 220.181.112.76
Name: www.a.shifen.com
Address: 220.181.111.111
百度有個(gè)cname=www.a.shifen.com.的別名,這所怎么一個(gè)過程呢?用dig工具跟蹤一下。
[root@zichen star]# dig +trace www.baidu.com
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.2.rc1.fc16 <<>> +trace www.baidu.com
;; global options: +cmd
. 167778 IN NS b.root-servers.net.
. 167778 IN NS d.root-servers.net.
. 167778 IN NS f.root-servers.net.
. 167778 IN NS m.root-servers.net.
. 167778 IN NS e.root-servers.net.
. 167778 IN NS h.root-servers.net.
. 167778 IN NS l.root-servers.net.
. 167778 IN NS g.root-servers.net.
. 167778 IN NS i.root-servers.net.
. 167778 IN NS k.root-servers.net.
. 167778 IN NS c.root-servers.net.
. 167778 IN NS a.root-servers.net.
. 167778 IN NS j.root-servers.net.
;; Received 228 bytes from 211.140.13.188#53(211.140.13.188) in 1841 ms--------(1)
com. 172800 IN NS a.gtld-servers.net.
com. 172800 IN NS b.gtld-servers.net.
com. 172800 IN NS c.gtld-servers.net.
com. 172800 IN NS d.gtld-servers.net.
com. 172800 IN NS e.gtld-servers.net.
com. 172800 IN NS f.gtld-servers.net.
com. 172800 IN NS g.gtld-servers.net.
com. 172800 IN NS h.gtld-servers.net.
com. 172800 IN NS i.gtld-servers.net.
com. 172800 IN NS j.gtld-servers.net.
com. 172800 IN NS k.gtld-servers.net.
com. 172800 IN NS l.gtld-servers.net.
com. 172800 IN NS m.gtld-servers.net.
;; Received 503 bytes from 198.41.0.4#53(198.41.0.4) in 1884 ms-------------------------(2)
baidu.com. 172800 IN NS dns.baidu.com.
baidu.com. 172800 IN NS ns2.baidu.com.
baidu.com. 172800 IN NS ns3.baidu.com.
baidu.com. 172800 IN NS ns4.baidu.com.
;; Received 167 bytes from 192.31.80.30#53(192.31.80.30) in 305 ms-------------------(3)
www.baidu.com. 1200 IN CNAME www.a.shifen.com.
a.shifen.com. 86444 IN NS ns4.a.shifen.com.
a.shifen.com. 86444 IN NS ns7.a.shifen.com.
a.shifen.com. 86444 IN NS ns9.a.shifen.com.
a.shifen.com. 86444 IN NS ns5.a.shifen.com.
;; Received 194 bytes from 202.108.22.220#53(202.108.22.220) in 68 ms-------------(4)
DIG工具會(huì)在本地計(jì)算機(jī)做迭代,然后記錄查詢的過程。
第一步是我這臺(tái)PC的ISPDNS獲取到13個(gè)根服務(wù)器的13個(gè)IP和主機(jī)名【b-j】.root-servers.net。
第二步是向其中的一臺(tái)根域服務(wù)器198.41.0.4發(fā)送www.baidu.com的請(qǐng)求,他返回來com.頂級(jí)域的服務(wù)器的IP(未顯示)和名稱。
第三步是向com.域的一臺(tái)服務(wù)器192.31.80.30請(qǐng)求www.baidu.com,他返回來baidu.com域發(fā)服務(wù)器IP(未顯示)和名稱.
第四步,向百度的頂級(jí)域名服務(wù)器dns.baidu.com.請(qǐng)求www.baidu.com,他發(fā)現(xiàn)這個(gè)www有別名叫www.a.shifen.com。
按照一般邏輯,當(dāng)dns請(qǐng)求到別名時(shí),查詢都會(huì)終止,而所重新發(fā)起查詢別名的請(qǐng)求,所以此處應(yīng)該返回的是www.a.shifen.com.但是為什么返回的是a.shifen.com這個(gè)NS呢?
此處我們可以用:
[root@zichen star]# dig +trace shifen.com
shifen.com. 172800 IN NS dns.baidu.com.
shifen.com. 172800 IN NS ns2.baidu.com.
shifen.com. 172800 IN NS ns3.baidu.com.
shifen.com. 172800 IN NS ns4.baidu.com.
;; Received 170 bytes from 192.26.92.30#53(192.26.92.30) in 325 ms
發(fā)現(xiàn)shifen.com的頂級(jí)域名服務(wù)器和baidu.com的域名服務(wù)器是同一臺(tái)!
當(dāng) 我拿到www.baidu.com的別名www.a.shifen.com的時(shí)候,本來要重新到com域查找shifen.com的NS,又因?yàn)?,兩個(gè)域 在同一臺(tái)NS上,所以直接向本機(jī)發(fā)起了shifen.com域發(fā)現(xiàn)請(qǐng)求的www.a.shifen.com是屬于a.shifen.com這個(gè)域的,于是 就把a.shifen.com的這個(gè)NS和IP返回,讓我到a.shifen.com這個(gè)域的域名服務(wù)器上查詢www.a.shifen.com。
于是
shifen.com. 7200 IN A 202.108.250.218
shifen.com. 86400 IN NS ns3.baidu.com.
shifen.com. 86400 IN NS ns1.baidu.com.
shifen.com. 86400 IN NS ns2.baidu.com.
shifen.com. 86400 IN NS ns4.baidu.com.
;; Received 186 bytes from 220.181.37.10#53(220.181.37.10) in 61 ms
拿到一條A記錄,最終也就是www.baidu.com的IP地址了。
域名解析中A記錄、CNAME、MX記錄、NS記錄的區(qū)別和聯(lián)系
1.A記錄
又稱IP指向,用戶可以在此設(shè)置子域名并指向到自己的目標(biāo)主機(jī)地址上,
從而實(shí)現(xiàn)通過域名找到服務(wù)器。
說明:·指向的目標(biāo)主機(jī)地址類型只能使用IP地址;
- CNAME
通常稱別名指向??梢詾橐粋€(gè)主機(jī)設(shè)置別名。比如設(shè)置test.mydomain.com,
用來指向一個(gè)主機(jī)www.rddns.com那么以后就可以用test.mydomain.com來
代替訪問www.rddns.com了。
說明:CNAME的目標(biāo)主機(jī)地址只能使用主機(jī)名,不能使用IP地址;
·主機(jī)名前不能有任何其他前綴,如:http://等是不被允許的;·A記錄優(yōu)先于CNAME記錄。即如果一個(gè)主機(jī)地址同時(shí)存在A記錄和CNAME記錄,則CNAME記錄不生效。
3.MX記錄
郵件交換記錄。用于將以該域名為結(jié)尾的電子郵件指向?qū)?yīng)的郵件服務(wù)器以進(jìn)行處理。如:用戶所用的郵件是以域名mydomain.com為結(jié)尾的,則需要在管理界面中添加該域名的MX記錄來處理所有以@mydomain.com結(jié)尾的郵件。
說明:MX記錄可以使用主機(jī)名或IP地址;·MX記錄可以通過設(shè)置優(yōu)先級(jí)實(shí)現(xiàn)主輔服務(wù)器設(shè)置,“優(yōu)先級(jí)”中的數(shù)字越小表示級(jí)別越高。也可以使用相同優(yōu)先級(jí)達(dá)到負(fù)載均衡的目的;·如果在“主機(jī)名”中填入子域名則此MX記錄只對(duì)該子域名生效。
4.NS記錄
解析服務(wù)器記錄。用來表明由哪臺(tái)服務(wù)器對(duì)該域名進(jìn)行解析。這里的NS記錄只對(duì)子域名生效。
例如用戶希望由12.34.56.78這臺(tái)服務(wù)器解析news.mydomain.com,則需要設(shè)置news.mydomain.com的NS記錄。
說明:·“優(yōu)先級(jí)”中的數(shù)字越小表示級(jí)別越高;·“IP地址/主機(jī)名”中既可以填寫IP地址,也可以填寫像ns.mydomain.com這樣的主機(jī)地址,但必須保證該主機(jī)地址有效。
如,將news.mydomain.com的NS記錄指向到ns.mydomain.com,在設(shè)置NS記錄的同時(shí)還需要設(shè)置ns.mydomain.com的指向,
否則NS記錄將無法正常解析;·NS記錄優(yōu)先于A記錄。即,如果一個(gè)主機(jī)地址同時(shí)存在NS記錄和A記錄,則A記錄不生效。這里的NS記錄只對(duì)子域名生效。
1、什么是負(fù)載均衡服務(wù)器?
負(fù)載均衡(Server Load Balancing,SLB)是指在一系列資源上面智能地分布網(wǎng)絡(luò)負(fù)載。負(fù)載均衡可以減少網(wǎng)絡(luò)擁塞,提高整體網(wǎng)絡(luò)性能,提高自愈性,并確保企業(yè)關(guān)鍵性應(yīng)用的可用性。當(dāng)相同子域有多個(gè)目標(biāo)地址,或域名的MX記錄有多個(gè)目標(biāo)地址且優(yōu)先級(jí)相同時(shí),表示輪循,可以達(dá)到負(fù)載均衡的目的,但需要虛擬主機(jī)和郵箱服務(wù)商支持。:
2、什么是TTL?
TTL值TTL值全稱是“生存時(shí)間(Time To Live)”,簡(jiǎn)單的說它表示DNS記錄在DNS服務(wù)器上緩存時(shí)間。這個(gè)緩存時(shí)間太長(zhǎng)和太短都不好,如果緩存時(shí)間太長(zhǎng),一旦域名被解析到的IP有變化,會(huì)導(dǎo)致被客戶端緩存的域名無法解析到變化后的IP地址,以致該域名不能正常解析,這段時(shí)間內(nèi)有可能會(huì)有一部分用戶無法訪問網(wǎng)站。如果緩存時(shí)間太短,會(huì)導(dǎo)致用戶每次訪問網(wǎng)站都要重新解析一次域名。
另外可以參考:
CNAME
一個(gè)域名有了A 記錄解析就不能cname了?