版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
[Linux命令]
[網(wǎng)絡(luò)和系統(tǒng)篇]
目錄
網(wǎng)絡(luò)篇
1Ding遍大江南北
2DNS探秘之一--nslookuK初體驗(yàn)
3DNS探秘之二——DNS知識(shí)溫故知新
4DNS探秘之三--一lookup輸出解析
5DNS探秘之四一一DNS協(xié)議中的五元組
6DNS1采秘之五--nslookuK交口:?!惯?/p>
7DNS探秘之六——dig初體驗(yàn)
8DNS探秘之七一一dig選項(xiàng)走馬觀花
9iprout:e2系歹U之——--和r.etstat說(shuō)再見(jiàn)
10iDroute2系列之二--篡權(quán)的ss
11iproute2系列之。--iproute2后浪推前浪
12iproute2系列之四--ip不只是地址
13iproute2系列之除了四還有六
14神探tcpdump第一招一一神探出場(chǎng)
15神探tcudumD第:招兩個(gè)選項(xiàng)
16神探tcpdump第三招選項(xiàng)進(jìn)階
17神探tcpdumD第四招保存存回放
18書(shū)M冤tcpdump笫五招過(guò):慮流■量
19神探tcpdump第六招過(guò)濾實(shí)戰(zhàn)
20神探tcodumD第七招過(guò)濾高手
21神探tcpdump第八招一一輸出解讀
22神探tcpdiimp終結(jié)招七個(gè)秘籍
23nc,一只可愛(ài)的網(wǎng)貓
24ssh、cocy-id,幫你建立.信任
25rsync同步的的術(shù)
26其實(shí)你不懂wget的心之一--下載文件
27其實(shí)你不懂wget的心之二一一躲避封禁
28其實(shí)你不,懂WRCt的心之三一一下載目錄
29其實(shí)你不,?11wget的心之四體貼的選項(xiàng)
進(jìn)程和性能篇
1uptime給機(jī)器記考勤
2內(nèi)存不決向free
3用好SWAP的空間
4Vmstat性能查看利器
5mpstat,i上你了解CPU的匚'
6top命令庖丁解牛之一一一入門(mén)
7top命令庖丁解牛之二一一列管理
8top命令庖丁解牛之三一一進(jìn)程數(shù)據(jù)
9top命令庖「丁牛牛四——排序人法
10top命令庖丁解牛之五——CPU和內(nèi)存
11iostat讓1/0盡在掌握之中
12讓Didof告訴我們進(jìn)程ID
13sar訪談
14幫你找到幕后黑手一一Iscf應(yīng)用篇
15幫你找到幕后黑手一一Isof懸疑篇
16幫你找到幕后黑手——Iscf進(jìn)階篇
17幫你找到幕后黑手一一(User學(xué)習(xí)篇
18DS命令看著簡(jiǎn)單,其實(shí)很難
19kill,這個(gè)殺手不太冷
20作業(yè)控制命令一覽
21用trap捕捉那神秘的信號(hào)
22nohup,強(qiáng)大的防彈護(hù)甲
系統(tǒng)管理篇
1uname展示系統(tǒng)信息
2用戶ID和用戶組ID的一昵故事
3whoami不只是——部電影
4service服務(wù)最周到
5chkconfig掌控等級(jí)制度
6dmidecode看穿機(jī)器的底底
71smod列出內(nèi)核模塊
8最古老的容器技術(shù)chroot
9玩轉(zhuǎn)關(guān)機(jī)和重啟
網(wǎng)絡(luò)篇
在網(wǎng)絡(luò)篇中,我們將為大家?guī)?lái)29篇文章,所有內(nèi)容都是圍繞著網(wǎng)絡(luò)技術(shù)和工具展開(kāi)的,具體
如下:
?ping遍大江南北
?DNS探秘之一nslookup初體驗(yàn)
?DNS探秘之二——DNS知識(shí)溫故知新
?DNS探秘之三nslookup輸出解析
?DNS探秘之四--DNS協(xié)議中的五元組
?DNS探秘之五nslook叩交互模式
?DNS探秘之六一一dig初體驗(yàn)
?DNS探秘之七dig選項(xiàng)走馬觀花
?iproute2系列之一和netstat說(shuō)再見(jiàn)
?iproute2系列之二篡權(quán)的ss
?iproute2系列之三iproute2后浪推前浪
?iproute2系列之四ip不只是地址
?iproute2系列之五除了四還有/'、
?神探tcpdump第一招神探出場(chǎng)
?神探tcpdump第二招兩個(gè)選項(xiàng)
?神探tcpdump第三招選項(xiàng)進(jìn)階
?神探tcpdump第四招保存與回放
?神探tcpdump第五招一一過(guò)濾流量
?神探tcpdump第六招過(guò)濾實(shí)戰(zhàn)
?神探tcpdump第七招過(guò)濾高手
?神探tcpdump第八招輸出解讀
?神探tcpdump終結(jié)招七個(gè)秘籍
?nc,一只可愛(ài)的網(wǎng)貓
?ssh-copy-id,幫你建立信任
?rsync同步的藝術(shù)
?其實(shí)你不懂wget的心之一一一下載文件
?其實(shí)你不懂wget的心之二一一躲避封禁
?其實(shí)你不懂wget的心之三一一下載目錄
?其實(shí)你不懂wget的心之四體貼的選項(xiàng)
在這里,你不僅可以用nslookup和dig工具玩轉(zhuǎn)DNS,還可以與神探tcpdump一起去網(wǎng)絡(luò)流量
中探險(xiǎn),還可以了解到netstat被ss篡權(quán)的幕后故事,想想都激動(dòng)!
讓我們現(xiàn)在就開(kāi)始網(wǎng)絡(luò)篇的學(xué)習(xí)之旅吧。
1ping遍大江南北
ping不止是ping
接觸過(guò)計(jì)算機(jī)網(wǎng)絡(luò)的同學(xué)一定都知道ping命令吧,當(dāng)計(jì)算機(jī)聯(lián)網(wǎng)出現(xiàn)問(wèn)題時(shí),第一個(gè)進(jìn)入腦海的
解決方法就是“ping-下網(wǎng)絡(luò)唄"。ping是如此的常用,它絕對(duì)是你使用頻率最高的?條網(wǎng)絡(luò)命令
了。
在Windows系統(tǒng)中,我們更多的是簡(jiǎn)單地ping一下網(wǎng)站,來(lái)測(cè)試網(wǎng)絡(luò)詐通性,就像這樣:
ping
但作為更專(zhuān)業(yè)的Linuxer,知道這些還遠(yuǎn)遠(yuǎn)不夠,今天我們就為大家更全面地介紹一下這位最熟
悉的陌生人ping命令。
指定ping的次數(shù)
受Windows使用習(xí)慣的影響’在Linux系統(tǒng)中需要ping的時(shí)候,你也許會(huì)這樣:
[roc@roclinux$pingPING(06)56(84)bytesofdata.64
bytesfrom06:icmp_seq=lttl=49time=16.3ms64bytesfrom06:
icmp_seq=2ttl=49time=16.7ms64bytesfrom06:icmp_seq=3ttl=49time=15.9ms
64bytesfrom06:icmp_seq=4ttl=49time=19.1ms64bytesfrom06:
icmp_seq=5ttl=49time=18.1ms
當(dāng)你滿懷期待的等著命令自己結(jié)束,可等到花兒都謝了,命令還是在執(zhí)行。這是怎么回事呢?原
來(lái),Windows下的ping命令和Linux下的是有所不同的,Linux下的ping必須指定次數(shù),不然
它會(huì)無(wú)限次地執(zhí)行下去。
如何指定執(zhí)行次數(shù)呢?很簡(jiǎn)單,只需使用-c選項(xiàng)來(lái)設(shè)定次數(shù)即可。比如,ping三次
網(wǎng)站的正確執(zhí)行方法是:
[roc@roclinux?]$ping-c3PING(06)56(84)bytesofdata.
64bytesfrom06:icmp_seq=lttl=49time=15.9ms64bytesfrom06:
icmp_seq=2ttl=49time=16.4ms64bytesfrom06:icmp_seq=3ttl=49time=15.7ms-
-pingstatistics-3packetstransmitted,3received,0%packetloss,time15673msrtt
min/avg/max/mdev=15.785/16.084/16.496/0.301ms
只重結(jié)果不重過(guò)程
不想看到ping命令那啰唆的過(guò)程,只相看到結(jié)果統(tǒng)計(jì),因?yàn)橹挥薪Y(jié)果才是最關(guān)鍵的。那有沒(méi)有辦
法滿足大家這個(gè)小小的愿望呢?好消息!強(qiáng)大的ping命令說(shuō)soeasy!只需簡(jiǎn)單地增加-q選項(xiàng)就行
To不信的話,試試下面的命令:
[roc@roclinux?]$ping-q-c3PING(06)56(84)bytesofdata.
-pingstatistics—3packetstransmitted,3received,0%packetloss,time16794msrtt
min/avg/max/mdev=15.869/15.994/16.161/0.160ms
這樣的ping絕對(duì)是模范員工,工作時(shí)埋頭苦干,出報(bào)告時(shí)清晰準(zhǔn)確。
這時(shí),我突然發(fā)現(xiàn)了一個(gè)陌生的指標(biāo)mdev,就在ping命令輸出內(nèi)容的最后一行,這個(gè)指標(biāo)是用
來(lái)干什么的呢?
原來(lái)mdev是MeanDeviation的縮寫(xiě),表示ICMP包的RTT偏離平均值的程度,主要用來(lái)衡量網(wǎng)
速的穩(wěn)定性。mdev的值越大說(shuō)明網(wǎng)速越不穩(wěn)定。
另外,不同的操作系統(tǒng)的mdev的名字也有所不同,在mac下它叫作stddev,而在WindowsF
則根本沒(méi)有這個(gè)統(tǒng)計(jì)指標(biāo)。
指定ping的數(shù)據(jù)包的大小
默認(rèn)情況下,ping命令是以64字節(jié)大小的數(shù)據(jù)包來(lái)測(cè)試M絡(luò)聯(lián)通性的,如需要改變默認(rèn)數(shù)據(jù)包
的大小,則可以使用參數(shù)-s選項(xiàng)。比如你想使用65500字節(jié)的數(shù)據(jù)包來(lái)測(cè)試網(wǎng)絡(luò),命令可以這樣
來(lái)寫(xiě):
[roc@roclinux?]$ping-s65500-c3PING(06)65500(65528)
bytesofdata.…pingstatistics-3packetstransmitted,0received,100%packetloss,
time11999m
在實(shí)際工作中,我們通常使佳-s選項(xiàng)來(lái)發(fā)現(xiàn)網(wǎng)絡(luò)環(huán)境中有關(guān)MTU的問(wèn)題。
指定ping的TTL
TTL,即生存時(shí)間,是指數(shù)據(jù)包被路由器丟棄之前允許通過(guò)的路由器跳數(shù)。
TTL是由發(fā)送主機(jī)來(lái)設(shè)置的,為了防止數(shù)據(jù)包在網(wǎng)絡(luò)中無(wú)限循環(huán),每個(gè)路由器在轉(zhuǎn)發(fā)網(wǎng)絡(luò)數(shù)據(jù)包
時(shí),都要求將TTL的值減少1,直到TTL減為。的那一刻,也就是這個(gè)數(shù)據(jù)包生命終結(jié)的時(shí)刻。
對(duì)于ping命令發(fā)出的數(shù)據(jù)包,我們可以通過(guò)選項(xiàng),來(lái)設(shè)定它在網(wǎng)絡(luò)上的生命時(shí)長(zhǎng):
ping-t255
如果我們不使用選項(xiàng)來(lái)設(shè)置TTL,那么ping命令會(huì)采用TTL默認(rèn)值。而不同的操作系統(tǒng)TTL
默認(rèn)值也是不相同的。
下面給大家列舉一些常用操作系統(tǒng)的默認(rèn)值。
?Linux系統(tǒng)的TTL值為64或255
?WindowsNT/2000/XP系統(tǒng)的TTL值為128
?UNIX系統(tǒng)的TTL值為255
指定ping的時(shí)間間隔
ping命令的核心功能就是查看網(wǎng)絡(luò)的聯(lián)通性和網(wǎng)絡(luò)的延遲。默認(rèn)情況下,發(fā)送兩個(gè)數(shù)據(jù)包之間的
間隔是1秒,如果我們嫌默認(rèn)1秒發(fā)送一個(gè)ping包太慢,則可以使用-i選項(xiàng)來(lái)指定發(fā)送兩個(gè)
ping包之間的時(shí)間間隔。不過(guò)需要注意的是,只有root用戶才能設(shè)置低于0.2秒的時(shí)間間隔。下
面我們就以root用戶實(shí)現(xiàn)0.1秒時(shí)間間隔的ping命令:
[root@roclinux?]#ping-i0.1-c3PING(06)56(84)bytesof
data.64bytesfrom06:icmp_seq=lttl=49time=16.1ms64bytesfrom
06:icmp_seq=2ttl=49time=16.6ms64bytesfrom06:icmp_seq=3
ttl=49time=16.1ms-pingstatistics—3packetstransmitted,3received,0%packet
loss,time2119msrttmin/avg/max/mdev=16.134/16.331/16.699/0.260ms
愛(ài)如潮水般的ping
上文我們看到,ping命令在默認(rèn)情況下使用1秒作為發(fā)送間隔,而使用-i選項(xiàng)可以顯式地指定發(fā)
送間隔。如果我們希望ping命令以盡可能快的速度來(lái)發(fā)送數(shù)據(jù)包,則可以使用-f選項(xiàng)來(lái)實(shí)現(xiàn)愛(ài)如
潮水般的ping:
[root@roclinux?|#ping-f-c100PING(06)56(84)bytesof
data.pingstatistics-100packetstransmitted,100received,0%packetloss,time
1473msrttmin/avg/max/mdev=15.444/16.269/21.434/1.082ms,pipe2,ipg/ewma
14.888/15.739ms
?f選項(xiàng),即floodping,潮水模式的ping,聽(tīng)起來(lái)就無(wú)比威武,大有天降雄師的陣勢(shì)。
這里有一個(gè)知識(shí)點(diǎn)要注意,Hoodping會(huì)采用無(wú)間隔的方式盡全力發(fā)送探測(cè)數(shù)據(jù)包,確保每秒鐘
至少發(fā)送100個(gè)。我們把這種模式形象地稱(chēng)為“瘋狂模式”,注意,這種方式只有root用戶才可以
使用。
下面我們就使用floodping來(lái)測(cè)試一下網(wǎng)卡的丟包率:
[root@roclinux?]#ping-f-c100009PING9(9)56(84)bytes
ofdata.—9pingstatistics--10000packetstransmitted,10000received,0%packet
loss,time144msrttmin/avg/max/mdev=0.003/0.004/0.043/0.003ms,ipg/ewma0.014/0.005
ms
“0%packetloss”表示丟包率為0,說(shuō)明網(wǎng)卡工作非常正常,也沒(méi)有任何網(wǎng)絡(luò)擁塞發(fā)生。如果你想
查看?下你們公司內(nèi)部的網(wǎng)絡(luò)狀況的話,只需將上述IP改成你們公司機(jī)器的IP地址就可以了。
篇尾小福利
最后,我們給出在網(wǎng)絡(luò)實(shí)際使用過(guò)程中的一些RTT參考值,希望對(duì)你排查網(wǎng)絡(luò)問(wèn)題有一定的幫助,
如表1所示。
表1RTT參考值
場(chǎng)景RTT參考值
ping本機(jī)0.01ms
ping同機(jī)房機(jī)器0.1ms
ping同城機(jī)器Ims
ping不同城機(jī)器2Oins
北(南)方ping南(北)方機(jī)器5Oins
從國(guó)內(nèi)ping國(guó)外機(jī)器200ms
提醒大家:網(wǎng)絡(luò)很復(fù)雜,情況很多變,上述數(shù)據(jù)僅供參考。
好了,相信大家乂重新認(rèn)識(shí)了一下老朋友一一ping,也學(xué)習(xí)了一些新玩法,希望能對(duì)大家的網(wǎng)絡(luò)
問(wèn)題排查有所幫助。
2DNS探秘之一nslookup初體驗(yàn)
DNSWnslookup的關(guān)系
DNS,BPDomainNameSystem,中文稱(chēng)之為“域名系統(tǒng)”,是計(jì)算機(jī)網(wǎng)絡(luò)世界中非常重要的一個(gè)角
色,負(fù)責(zé)著整個(gè)互聯(lián)網(wǎng)中“域名一IP地址”的管理和解析工作。
自從有了DNS,互聯(lián)網(wǎng)就變得友好了許多,人們?cè)L問(wèn)網(wǎng)站時(shí)不必再去記憶那些晦澀的【P地址,通
過(guò)一些非常易懂的字串就可以方便地指定目的網(wǎng)站。
我們平時(shí)都是通過(guò)來(lái)訪問(wèn)百度的,很少有人會(huì)記住它的【P地價(jià)吧!如果你對(duì)大
型網(wǎng)站的域名管理有所了解的話,你會(huì)知道IP地址解析還存在著就近解析和經(jīng)常更換的問(wèn)題,所
以,記憶1P地址并不切實(shí)際C
簡(jiǎn)單介紹了DNS之后,我們抓緊時(shí)間來(lái)為大家介紹一下今天的主角一一nslookupo
通過(guò)mannslookup,我們可以看到nslookup的官方解釋是"queryInternetnameservers
interactively*^
而nslookup是nameserverlookup的縮寫(xiě),顧名思義,nslookup就是"用來(lái)查詢(xún)DNS的"。假如
你想知道對(duì)應(yīng)的IP地址的話,那么用nslookup應(yīng)該是最正確的方法了。
系統(tǒng)沒(méi)有nslookup命令怎么辦
如果你的Linux系統(tǒng)中沒(méi)有nslookup命令,那么八成是你的系統(tǒng)中沒(méi)有安裝bind-utils軟件包。
bind-utils軟件包中包括了我們操作和管理DNS的一系列工具,比如host命令、dig命令、
nslookup命令等等。
安裝bind-utils軟件包,并非難事,在RHCE、CentOS或Fedora上,通過(guò)一條命令就可以搞定了:
yuminstallbind-utils
nslookup的兩種模式
前面我們提到nslookup的官方解釋是"queryInternetnameserversinteractively",這里的
interactively說(shuō)明nslookup是具有交互功能的。
的確,nslookup共有兩種工作模式,一種是“交互模式”,另一種則是“非交互模式”。
?在“交互模式”下,用戶只需執(zhí)行一次nslookup,就可以向域名服務(wù)器連續(xù)發(fā)起查詢(xún)請(qǐng)求。
?在“非交互模式”下,用戶發(fā)起的查詢(xún)請(qǐng)求是一次性的,下次再想查詢(xún),就需要再執(zhí)行一次
nslookup。
如何進(jìn)入交互模式
nslookup的交互模式使我們可以連續(xù)發(fā)起DNS查詢(xún)請(qǐng)求,而不必每次都運(yùn)行nslookup命令。
進(jìn)入交互模式的方法也很簡(jiǎn)單,只需輸入nslookup命令,無(wú)須加任何參數(shù),就可以直接進(jìn)入交互
模式啦!
#進(jìn)入至ij了nslookup的交互模式[roc@roclinux~]$nslookup>
看到最后的右尖括號(hào)“〉”了吧,這就是nslookup進(jìn)入交互模式的重要標(biāo)志。
需要注意的是,此時(shí)nslookup會(huì)連接到默認(rèn)的域名服務(wù)器,也就是/etc/resolv.conf中所配置的
第一個(gè)DNS服務(wù)器地址。
如果我們想自己來(lái)指定一個(gè)DNS服務(wù)器地址,也是完全可以的,只需設(shè)置nslookup的第一個(gè)參
數(shù)為而第二個(gè)參數(shù)是要連接的DNS服務(wù)器IP地址即可。
假如我們想連接到谷歌的開(kāi)放DNS,則可以這樣來(lái)做:
#我們要連接到Google的開(kāi)放DNS服務(wù)器[roc@roclinuxnslookup->
下面就在交互模式下實(shí)戰(zhàn)一次,來(lái)查詢(xún)域名的IP信息:
[roc@roclinux?]$nslookup->Server:Address:
#53Non-authoritativeanswer:canonicalname=.Name:
Address:25Name:Address:21>
可以看到,Google的開(kāi)放DNS服務(wù)器給我們返回了兩個(gè)可用的IP地址,即25和
21o而且在這次查詢(xún)請(qǐng)求之后,提示符仍然停留在“>”處,我們可以繼續(xù)輸入網(wǎng)站名
稱(chēng)進(jìn)行下一次查詢(xún),這就是交互模式的特點(diǎn)。
如何進(jìn)入非交互模式
非交百模式,其實(shí)并不需要進(jìn)入,便用“進(jìn)入”這個(gè)詞,或許會(huì)有些誤導(dǎo)之嫌.
如果你直接在nslookup命令后加上所要查詢(xún)的域名,那么這就是非交互模式了。
比如,我們希望在非交互模式下查詢(xún)域名對(duì)應(yīng)的IP地址:
#杳詢(xún)域名對(duì)應(yīng)的IP地址[roc@roclinux?]$nslookupServer:
Address:#53Non-authoritativeanswer:canonicalname=
.Name:Address:25Name:
Address:21[roc@roclinux?]$
可以看到,在非交互模式下,我們進(jìn)行完一次查詢(xún)后,提示符會(huì)回到Shell提示符狀態(tài),下一次
再想查詢(xún)DNS信息的話還需要執(zhí)行nslookup命令,這就是非交互模式的特點(diǎn)。
好了,本文為大家介紹了nslookup的兩種工作模式,并且演示了域名查詢(xún)的方法,以及指定域名
服務(wù)器的方法。要想深入掌握nslookup,那就一定要對(duì)DNS協(xié)議有比較深入的理解,所以,在
接下來(lái)的一篇文章中,我們來(lái)學(xué)習(xí)DNS協(xié)議,對(duì)于大部分同學(xué)來(lái)說(shuō),可能算溫故而知新啦。
3DNS探秘之二——DNS知識(shí)溫故知新
在介紹完nslookup的模式之后,我們就要深入到其命令輸出部分了。這些內(nèi)容是和DNS協(xié)議的
知識(shí)緊密相關(guān)的,所以在講解之前,我們需要把DNS的各類(lèi)知識(shí)捉前講解溫習(xí)一下,確取大家可
以更好更順暢地理解nslookup輸出內(nèi)容。
說(shuō)到DNS協(xié)議,相信大家都知道它是一個(gè)應(yīng)用層的協(xié)議,大部分場(chǎng)景下是用來(lái)管理域名和IP地
址的映射關(guān)系的。
DNS這套系統(tǒng),采用了一種多級(jí)、分層次的組織方案,來(lái)實(shí)現(xiàn)對(duì)域名信息的管理。它的工作過(guò)程,
可以簡(jiǎn)述如下:
1.為了解析一個(gè)域名(如),應(yīng)用程序會(huì)調(diào)用域名解析庫(kù)函數(shù),并將域名作為參
數(shù)傳入其中。
2.然后,此解析庫(kù)函數(shù)會(huì)提取本機(jī)所設(shè)置的上連DNS服務(wù)器地址,并向此地址發(fā)送一個(gè)域名解析
請(qǐng)求。
3.上連DNS服務(wù)器接到域名解析請(qǐng)求后,在本機(jī)杳找此域名,找到后將其對(duì)■應(yīng)的IP地址返回給
解析庫(kù)函數(shù)V
4.解析庫(kù)函數(shù)接收到上連DNS服務(wù)器返回的信息后,將此信息返問(wèn)給應(yīng)用程序。
通過(guò)上面的4個(gè)步驟,應(yīng)用程序就可以拿到一個(gè)域名對(duì)應(yīng)的IP地址信息了。
而理想很豐滿,現(xiàn)實(shí)很骨感,域名的解析過(guò)程并非總是那么順利,有時(shí)候,我們會(huì)遇到“上連DNS
服務(wù)器”在它的本機(jī)并沒(méi)有搜索到你要查詢(xún)的域名信息的情況,這又如何是好呢?
DNS的遞歸行詢(xún)是怎樣的
為了更清楚地為大家介紹DNS查詢(xún)的過(guò)程,也為了解答上一小節(jié)的那個(gè)遺留問(wèn)題,我們來(lái)做一個(gè)
情景假設(shè)。
北郵(北京郵電大學(xué))計(jì)算機(jī)學(xué)院的官方網(wǎng)站是,其中:
?cn:是國(guó)家域名。
?edu:是教育行業(yè)專(zhuān)屬域名。
?bupt:是北京郵電大學(xué)的英文縮寫(xiě),BPBeijingUniversityofPostandTelecommunicationa
?scs:是計(jì)算機(jī)學(xué)院的縮寫(xiě),即SchoolofComputerScience。
假如小吳在家中希望訪問(wèn)北郵計(jì)算機(jī)學(xué)院的官方網(wǎng)站scs.b卬tedu.cn,于是瀏覽器會(huì)首先發(fā)起對(duì)
這個(gè)域名的DNS解析,我們來(lái)一起看看域名解析的過(guò)程,如圖1所示。圖中連線處的數(shù)字,.與下
面的步驟編號(hào)對(duì)應(yīng)。
圖1遞歸查詢(xún)過(guò)程
第1步:為了解析這個(gè)域名(),瀏覽器會(huì)調(diào)用域名解析庫(kù)函數(shù),并將域名作為
參數(shù)傳入其中。
第2步:然后,此解析庫(kù)函數(shù)會(huì)提取本機(jī)所設(shè)置的上連DNS服務(wù)器地址,并向此地址發(fā)送?域名
解析請(qǐng)求。
第3步:上連DNS服務(wù)器接到域名解析請(qǐng)求后,在本機(jī)查找此域名,但是,遺憾的是,它并沒(méi)有
找到對(duì)應(yīng)的信息。
第4步:于是上連DNS服務(wù)器就會(huì)求助于根DNS服務(wù)器()。
第5步:此后,請(qǐng)求會(huì)逐級(jí)轉(zhuǎn)發(fā),順序是cn的DNS服務(wù)器redu.cn的DNS服務(wù)器T
的DNS服務(wù)器。
第6步:由于一定是管理的資源記錄的DNS服務(wù)器,于是,
的DNS服務(wù)器會(huì)將所查詢(xún)域名對(duì)應(yīng)的IP地址返回給上一級(jí)。
第7步:透?jìng)€(gè)IP地價(jià)會(huì)按照逆序依次回傳,順序是的DNS服務(wù)器-cn的DNS服務(wù)器-
根DNS服務(wù)器。
第8步:最后根DNS服務(wù)器洛這個(gè)信息返回給上連DNS服務(wù)器。
第9步:上連DNS服務(wù)器收到結(jié)果后,首先會(huì)將這個(gè)結(jié)果緩存到本機(jī),同時(shí),將其回傳給小吳家
中的瀏覽器。
這是一個(gè)典型的DNS遞歸查詢(xún)(RecursiveQuery)過(guò)程,也確實(shí)比上一段落中描述的順利過(guò)程復(fù)
雜了不少。
這里要注意一個(gè)細(xì)節(jié),那就是上連DNS服務(wù)器在收到結(jié)果后,不僅會(huì)把結(jié)果返回給調(diào)用者,還會(huì)
自己緩存起來(lái)哦。
至于緩存起來(lái)之后的用處和可能帶來(lái)的問(wèn)題,我們先賣(mài)個(gè)關(guān)子,在深入講解nslookup命令時(shí)會(huì)揭
曉答案。
除了遞歸還有什么
聰明的小伙伴們,或許已經(jīng)隱隱感覺(jué)到了,既然我們明確指出了DNS遞歸查詢(xún)過(guò)程,那就一定還
存在另一種查詢(xún)過(guò)程。是的,你沒(méi)猜錯(cuò),DNS還為我們提供另一種可選方案,那就是迭代查詢(xún)。
迭代查詢(xún)的過(guò)程是這樣的,我們?cè)俅位氐叫堑臑g覽器面前,如圖2所示。
圖2迭代查詢(xún)過(guò)程
第1步:為了解析這個(gè)域名(scs.bupt.edu.cn),瀏覽器仍然會(huì)調(diào)用域名解析庫(kù)函數(shù),并將域名
作為參數(shù)傳入其中。
第2步:然后,此解析庫(kù)函數(shù)會(huì)提取本機(jī)所設(shè)置的.上連DNS服務(wù)器地址,并向此地址發(fā)送一個(gè)域
名解析請(qǐng)求。
笫3步:上連DNS服務(wù)器接到域名解析請(qǐng)求后,在本機(jī)查找此域名,但是,遺憾的是,它并沒(méi)有
找到對(duì)應(yīng)的信息。
第4步:于是上連DNS服務(wù)器就會(huì)求助于根DNS服務(wù)器,注意迭代查詢(xún)要開(kāi)始啦。
第5步:根DNS服務(wù)器會(huì)將cn的DNS服務(wù)器的地址返回給上連DNS服務(wù)器,潛臺(tái)詞就是“雖然
我是根DNS服務(wù)器,但我也不是萬(wàn)能的,我其實(shí)也沒(méi)法直接告訴你答案,但是呢,我可以給你引
薦一位高人,它一定可以告訴你進(jìn)一步的線索,它就是cn*JDNS服務(wù)器,你去問(wèn)問(wèn)它吧,回
見(jiàn)!”
第6步:就這樣,上連DNS服務(wù)器又依次去拜訪了cn的DNS服務(wù)器-edu.cn的DNS服務(wù)器
->的DNS服務(wù)器。
第7步:由丁一定是知道的資源記錄的,所以的DNS
服務(wù)器終于把最終答案告訴了上連DNS服務(wù)器。
第8步:上連DNS服務(wù)器收到結(jié)果后,首先會(huì)將這個(gè)結(jié)果緩存到本機(jī),同時(shí),將其回傳給小吳家
中的瀏覽器。
這就是一個(gè)完整的DNS迭代查詢(xún)過(guò)程,它和遞歸查詢(xún)的最大區(qū)別在于:
?遞歸查詢(xún):好事辦到底,每個(gè)環(huán)節(jié)都承擔(dān)起了尋找答案的責(zé)任,都會(huì)負(fù)責(zé)去詢(xún)問(wèn)它的下一級(jí)
DNS服務(wù)器。
?迭代查詢(xún):給你指路,每個(gè)環(huán)節(jié)都是告訴你下一步怎么是,路還是要自己去走。
除了遞歸和迭代還有什么
那么,問(wèn)題來(lái)了,除了遞歸查詢(xún)、迭代查詢(xún),DNS查詢(xún)還有什么新花樣呢?真的還有,那就是“遞
歸與迭代相結(jié)合”的查詢(xún)方法。
這種查詢(xún)方法產(chǎn)生的背景是,根DNS服務(wù)器在全球僅有13臺(tái),每天都承載著全球數(shù)以?xún)|計(jì)的查
詢(xún)請(qǐng)求。為了盡量降低它們的工作負(fù)載,它們?cè)谑盏讲樵?xún)請(qǐng)求后,會(huì)采用迭代查詢(xún)的方法,將下
一級(jí)DNS服務(wù)器地址返回給請(qǐng)求方,而請(qǐng)求方再次去請(qǐng)求下一級(jí)DNS服務(wù)器時(shí),則開(kāi)始采用遞
歸查詢(xún)的方法。這樣,可以有效地降低根DNS服務(wù)器的負(fù)荷,提高全球的DNS查詢(xún)效率,如圖
3所示。相信大家可以自己看懂下圖。
圖3遞歸與迭代結(jié)合的查詢(xún)過(guò)程
域名解析的緩存
還記得剛才我們?cè)谥v解遞歸查詢(xún)時(shí)賣(mài)了?個(gè)關(guān)子么,有關(guān)“緩存”的關(guān)子,現(xiàn)在我們就來(lái)抿曉答案
咯。
如果你仔細(xì)看了nslookup的輸出內(nèi)容的話,就會(huì)發(fā)現(xiàn)里面有“Non-authoritativeanswer”的字樣,
就像這樣:
[roc@roclinux?]$nslookupServer:Address:#53Non-
authoritativeanswer:canonicalname=.Name:
Address:21Name:Address:25
看到了吧,這個(gè)“Non-authoritativeanswer”就是和緩存知識(shí)密切相關(guān)的,大家只有了解了緩存的
原理和知識(shí)后,才能更好地理解"Non-authoritativeanswer'的含義。
現(xiàn)在我們就來(lái)說(shuō)說(shuō)有關(guān)DNS服務(wù)器的緩存的話題,這里面的學(xué)問(wèn)還真的不少呢。
每一個(gè)DNS服務(wù)器都有一個(gè)高速緩存區(qū),這里面存放著這臺(tái)DNS服務(wù)器最近經(jīng)手過(guò)的“域名一1P
地址”映射關(guān)系,以及獲得這些映射關(guān)系的查詢(xún)出處。正如我們上例中所描述的,上連DNS服務(wù)
器在獲得了的IP地址后,就會(huì)把這個(gè)映射關(guān)系緩存在自己機(jī)器上,這樣做的好處
就在于,下次再有人詢(xún)問(wèn)的IP信息的話,這臺(tái)上連DNS服務(wù)器就不需要再發(fā)起
遞歸查詢(xún)或迭代查詢(xún)了,直接就可以從緩存中找到答案,并快速返回給詢(xún)問(wèn)者了。
理想很豐滿,現(xiàn)實(shí)又是很骨感。我又要給大家潑冷水了。你有沒(méi)有想過(guò),事情其實(shí)并沒(méi)有那么順
利,因?yàn)闄C(jī)器經(jīng)常會(huì)發(fā)生故障,網(wǎng)站也會(huì)偶爾遷移,所以域名對(duì)應(yīng)的IP地址是會(huì)變化的。所以呢,
DNS服務(wù)器不能把這個(gè)信息緩存一輩子,需要給它設(shè)定一個(gè)期限,當(dāng)然不可能是一萬(wàn)年,一般會(huì)
是小時(shí)級(jí)別的期限。一旦超過(guò)這個(gè)期限,DNS服務(wù)器就會(huì)不再信任自己緩存中的信息,而是重新
發(fā)起迭代查詢(xún)或遞歸查詢(xún),去尋求最新的答案。
有了這樣的機(jī)制,是不是我們的DNS查詢(xún)就完美了呢,答案是N0!雖然我們將期限設(shè)置為了小
時(shí)級(jí),但是仍然會(huì)存在不走運(yùn)的“時(shí)間差”。假如一臺(tái)DNS服務(wù)器在14:00剛剛緩存了
的解析數(shù)據(jù),很不幸在14:05分,因?yàn)榫W(wǎng)站遷移修改了其對(duì)應(yīng)的
IP地址,假如正好有一個(gè)用戶通過(guò)這臺(tái)DNS服務(wù)器來(lái)查詢(xún)時(shí),就會(huì)拿到過(guò)時(shí)的
IP地址了,是不是很坑人呢?
正是由于存在這種隱患和時(shí)間差,所以,如果DNS服務(wù)器是從自己緩存中提取解析數(shù)據(jù)返回給用
戶的,那么就會(huì)很謹(jǐn)慎的在返回內(nèi)容中給出"Non-authoritativeanswer”的字樣,潛臺(tái)詞就是提示
用戶:“朋友,我把答案告訴你了,但是,我可不保證它是最新的哦,因?yàn)檫@也是我前一陣聽(tīng)說(shuō)的,
不是我現(xiàn)去查的?!?/p>
終于,我們揭開(kāi)了"Non-authoritativeanswer”的神秘面紗。
不過(guò),又會(huì)有好奇的同學(xué)提問(wèn)了:“Non-authoritative在英文中是非權(quán)威的意思,這個(gè)詞用得怪怪
的,有什么講究么?”
授權(quán)和非授權(quán)
還真的是有講究的。還記得剛才的迭代查詢(xún)的例子么,例子中的DNS服務(wù)器會(huì)為你指一條明路,
即“雖然我不知道XXX的信息,但是,我可以給你引薦一位高人,他應(yīng)該可以給你進(jìn)一步的線
索?!笔堑?!這位高人,就是我們下面要講的“被授權(quán)的人”。
在DNS的世界里,沒(méi)有人知道全部答案,但人們總能告訴你離正確答案更近的下一位高人。
我們來(lái)舉個(gè)例子:
雖然的DNS服務(wù)器(我們稱(chēng)為A機(jī))自己并不知道的IP地址,但是,
的DNS服務(wù)器知道負(fù)責(zé)域名解析的DNS服務(wù)器(我們稱(chēng)為B機(jī))的地址,B
機(jī)就是那個(gè)離正確答案更近的高人。
所以,的DNS服務(wù)器(A機(jī))就將的域名解析授權(quán)給了這臺(tái)DNS服務(wù)器(B
機(jī))。只有這臺(tái)DNS服務(wù)器(B)所返回的有關(guān)的域名解析,才是授權(quán)的;否則,
就稱(chēng)為非授權(quán)的。
一般情況下,一臺(tái)DNS服務(wù)器從自身緩存中提取結(jié)果并返回給詢(xún)問(wèn)者,這個(gè)結(jié)果就是非權(quán)威
(Non-authoritative)的。
好了,通過(guò)這樣一篇文章我們把DNS的幾個(gè)重要概念都復(fù)習(xí)了一遍,這為我們閱讀后面的文章奠
定了良好的基礎(chǔ),相信大家閱讀接下來(lái)的文章時(shí)會(huì)更加順暢。接下來(lái),我們就開(kāi)始為大家解讀
nslookap的輸'I'內(nèi)容。
4DNS探秘之三nslookup輸出解析
我們?nèi)匀灰缘挠蛎馕鰜?lái)作為樣例,為大家詳細(xì)解釋nslookup的輸出中都包含
了哪些重要內(nèi)容:
[roc@roclinux?]$nslookupv/Server:Address:#53Non-
authoritativeanswer:canonicalname=.Name:
Address:21Name:Address:25
可以看出,nslookup的輸出包含了上下兩部分。
?上半部分:DNS服務(wù)器信息。
?下半部分:域名解析信息。
DNS服務(wù)器信息中包含了兩行內(nèi)容,就是下面兩行:
Server:Address:#53
第一行的Server,表示我們本次DNS解析所使用的DNS服務(wù)器名稱(chēng),默認(rèn)會(huì)采用系統(tǒng)生
/etc/resolv.conf文件中所配置的第一個(gè)DNS服務(wù)器。
第二行的Address,表示我們連接到的DNS服務(wù)器的具體IP地址和端口。這里#53就表示我們
訪問(wèn)的是DNS服務(wù)器的53號(hào)端口。53號(hào)端口也是DNSServer的默認(rèn)服務(wù)端口。在亞馬遜云
AWS中就有一個(gè)獨(dú)立的產(chǎn)品叫作Route53,它是一個(gè)強(qiáng)調(diào)高可用和靈活伸縮的域名系統(tǒng)(DNS)
服務(wù),名字中就直接使用了53這個(gè)數(shù)字。
介紹完了nslookup輸出中的上半部分,我們?cè)賮?lái)看看重頭戲,nslookup輸出中的下半部分,也
就是"域名解析信息”:
Non-authoritativeanswer:canonicalname=.Name:
Address:21Name:Address:25
首先,映入眼簾的便是“Non-authoritativeanswer”,通過(guò)前面的學(xué)習(xí)我們知道,這表示返回的結(jié)
果是非權(quán)威的,可能會(huì)因?yàn)闀r(shí)間差的原因而不是最新的。
而下一行的信息,是我們之前沒(méi)見(jiàn)過(guò)的,即:
canonicalname=.
canonicalname,就是我們常說(shuō)的CNAME,也就是別名。所以我們可以看到,背
后的別名是。
再下面的內(nèi)容,則表示真正的答案,也就是所對(duì)應(yīng)的兩個(gè)IP地址:
Name:Address:21Name:Address:
25
本文內(nèi)容,相對(duì)來(lái)說(shuō)比較緊湊精煉,和大家一起解讀了nslookup的輸出內(nèi)容,將來(lái)你也可以為別
人講解這些知識(shí),享受別人投來(lái)的羨慕目光。是不是想想就覺(jué)得很美好,哈哈!
5DNS探秘之四——DNS協(xié)議中的五元組
傳說(shuō)中的五元組
一提到DNS,相信大家都會(huì)直觀地認(rèn)為DNS就是用來(lái)做域名和IP地址轉(zhuǎn)換的,但其實(shí)并非如此,
準(zhǔn)確地說(shuō),DNS是用來(lái)做域名和資源轉(zhuǎn)換的,而1P地址只是資源中的一種而已。
當(dāng)我們把一個(gè)域名查詢(xún)的請(qǐng)求傳遞給DNS服務(wù)器后,DNS服務(wù)器所返回的是與該域名相關(guān)的資源
記錄。那么資源是個(gè)什么東西呢?
在DNS的世界里,奧源是一個(gè)五元組,即:
{DomainName、TimeToLive.Class、Type、Value}
翻譯成中文便是:
{域名、生存期限、類(lèi)別、類(lèi)型、值}
它們的含義如下。
?DomainName(域名):指我們要查詢(xún)的那個(gè)域名。
?TimeToLive(生存期限):表示此域名在各DNS服務(wù)器緩存中應(yīng)保存的時(shí)長(zhǎng)。
?Class(類(lèi)別):通常為IN,即Internet。另外還有CH(Chaos)和HS(Hesiod)兩類(lèi),但目
前幾乎已經(jīng)被淘汰了。
?Type(類(lèi)型):指出這條記錄的類(lèi)型,包括8種,即SOA、A、MX、NS、CNAME、PTR、
HINFO和TXT。
?Value(值):針對(duì)不同類(lèi)型,會(huì)有不同的值°
為了讓大家有一個(gè)直觀的認(rèn)識(shí),我們截取了dig命令(后面的文章會(huì)講到)的一小段輸出作為例
子:
.7200INCNAME..7200INA00
因?yàn)槲覀円呀?jīng)介紹了五元組,所以這兩行內(nèi)容,相信大家已經(jīng)大概看懂了:
?第1行:表示是的別名,其超時(shí)時(shí)限是7200秒。
?第2行:表示對(duì)應(yīng)的IP地址是00,其超時(shí)時(shí)限同樣為7200
秒。
DNS的八種類(lèi)型
學(xué)習(xí)DNS五元組中的type知識(shí),對(duì)于理解和使用nslookup命令是很重要的,在上一段落中,我
們知道type包含了8個(gè)可選類(lèi)型,即:
?SOA:StartofAuthority,授權(quán)起始。
?A:IP地址。
?MX:郵件交換。
?NS:域名服務(wù)器。
?CNAME:別名,也叫規(guī)范名。
?PTR:指針,用于反向解析。
?HINFO:主機(jī)描述信息,包括CPU和OS等信息。
?TXT:其他一些文本信息。
為了讓后面的內(nèi)容學(xué)習(xí)起來(lái)更加順暢,有必要為大家提前介紹一下這8種類(lèi)型。
類(lèi)型SOA
SOA,B|JStartOfAuthority,表示授權(quán)起始。在這里,我們可以獲得針對(duì)一個(gè)域名的最基本的設(shè)
置信息,包括但不限于:
?Mail:管理員郵箱地址。
?Serial:版本序號(hào),格式一般為年月日次,如2016031903則表示2016年03月19E的第03
個(gè)版本。
?RefreshSlave:表示Slave的DNS服務(wù)器多久向Master的DNS服務(wù)器要一次更新數(shù)據(jù)。
?Retry:在發(fā)起Refresh時(shí),如果Slave連接不到Master:那么間隔多久進(jìn)行一次連接嘗試。
?Expire:在發(fā)起Refresh時(shí),如果Slave始終無(wú)法連接到Master,那么多久后放棄嘗試。
?Minimum:即TTL,表示外部DNS服務(wù)器如果要緩存本DNS服務(wù)器的授權(quán)數(shù)據(jù),那么保存時(shí)
限是多久。
[roc@roclinux?]$nslookup-type=soaServer:Address:#53Non-
authoritativeanswer:origin=mailaddr=serial=
2016031675refresh=10800retry=900expire=604800minimum=86400Authoritative
answerscanbefoundfrom:[roc@roclinux?]$
類(lèi)型A
A,表示從域名解析到IP地址。此處用來(lái)展示其對(duì)應(yīng)的IP地址信息,俗稱(chēng)“A記錄”。
[roc@roclinux~]$nslookup-:ype=aServer:Address:#53
Non-authoritativeanswer:Name:Address:114,255.40.66
類(lèi)型MX
MX,是Mailexchanger的縮寫(xiě),即郵件交換。此類(lèi)型和郵箱服務(wù)器設(shè)置有關(guān),用來(lái)表示當(dāng)前域名
對(duì)應(yīng)的郵箱服務(wù)器。
[roc@roclinux?]$nslookup-:ype=mxServer:Address:#53Non-
authoritativeanswer:mailexchanger=5.mailexchanger
=5.mailexchanger=5.Authoritativeanswerscanbe
fuundfiuni:[ruc@ioclinux?]$
當(dāng)然,如果你的域名沒(méi)有配置對(duì)應(yīng)的郵箱服務(wù)器,則MX為空。
類(lèi)型NS
NS,即NameServer,表示給定域名下所包含的DNS服務(wù)器信息。
[roc@roclinux?]$nslookup-^pe=nsServer:Address:#53Non-
authoritativeanswer:nameserver=.nameserver=
.Authoritativeanswerscanbefoundfrom:[roc@roclinux?]$
類(lèi)型CNAME
CNAME,BPCanonicalName,也叫別名。比如就是的一個(gè)另ij名。
[roc@roclinux~]$nslookup-^pe=cnameServer:Address:#53
Non-authoritativeanswer:canonicalname=.Authoritative
answerscanbefoundfrom:[roc@roclinux?]$
類(lèi)型PTR
PTR,即指針,用來(lái)表示反解信息,即從IP地址杳詢(xún)其對(duì)應(yīng)域名的映射關(guān)系。
類(lèi)型HINFO
HINFO,會(huì)包含CPU和OS等信息“
類(lèi)型TXT
TXT,即文本信息,表示有關(guān)此域名的一些信息。
好了,DNS五元組的知識(shí)就講到這里了,雖然有些枯燥,但是對(duì)于理解nslookup命令和接下來(lái)
的dig命令都是非常有幫助的。
6DNS探秘之五nslookup交互模式
直接查詢(xún)域名A記錄
在掌握了那么多的DNS知識(shí)之后,我們重新進(jìn)入到nslook叩的交互模式中,一起再溫習(xí)一遍各
種DNS查詢(xún)的用法。
如果你直接輸入域名(以舉例),會(huì)有類(lèi)似如下的輸出:
$nslookup>Server:9〃上連的DNS服務(wù)器Address:9#53
〃上連的DNS服務(wù)器的IP地址與端口號(hào)Non-authoritativeanswer:〃非權(quán)威答案,即從上連
DNS服務(wù)器的本地緩存中讀取的值canonicalname=.//說(shuō)明
有另ij名叫Name://域名
Address:6//對(duì)應(yīng)的IP地址之一Name:Address:7//
對(duì)應(yīng)的IP地加之二
更改上連DNS地址
默認(rèn)情況下,nslookup會(huì)連接到本機(jī)的默認(rèn)上連DNS服務(wù)器去杳詢(xún)域名的IP地址。
其實(shí),我們可以使用server命令來(lái)指定上連DNS服務(wù)器的地址,來(lái)看下面的例子:
$nslookup>〃以默認(rèn)的上連DNS服務(wù)器來(lái)查詢(xún)Server:9Address:
9#53Non-authoritativeanswer:canonicalname=.
Name:Address:7Name:Address:
6>server〃更改了上連的DNS服務(wù)器地址為谷歌開(kāi)放DNSDefaultserver:
Address:#53>〃以更改后的上連DNS服務(wù)器來(lái)查詢(xún)Server:
Address:#53Non-authoritativeanswer:canonicalname=
.Name:Address:47〃看!IP地址變化/>說(shuō)
明百度采用了智能DNS解析策略
從這個(gè)例子可以得到一個(gè)知識(shí),那就是,針對(duì)同一個(gè)域名,兩個(gè)不同的上連DNS服務(wù)器返回的IP
地址有可能是不同的。這可能是由于域名本身采用了智能DNS解析策略所造成的。
查看當(dāng)前DNS的配置
列出nslookup工具的常用選項(xiàng)的當(dāng)前設(shè)置值。
>setallDefaultserver:888.8〃當(dāng)前的上連DNS服務(wù)器Address:#53〃當(dāng)前的上連DNS
服務(wù)器的IP地址和端口Setoptions:novcnodebugnod2searchrecursetimeout=0retry=3port
=53querytype=Aclass=INsrchlist=
在上面所列出的配置項(xiàng)中,大家可以讀懂大部分內(nèi)容,包括timeout、querytype、class、retry、
port等,但有些配置項(xiàng),比較高級(jí),而在本系列文章中,不會(huì)繼續(xù)介紹這些高級(jí)配置項(xiàng),有興趣
的讀者可以通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)的專(zhuān)業(yè)書(shū)籍來(lái)學(xué)習(xí)和研究。
進(jìn)入調(diào)試模式,查看更多交互信息
通過(guò)開(kāi)啟debug開(kāi)關(guān),可以讓我們進(jìn)入調(diào)試模式。在調(diào)試模式下,域名查詢(xún)過(guò)程中完整的響應(yīng)包
及其中的交互包,都會(huì)顯示出來(lái),方便大家追查問(wèn)題和調(diào)試功能。
$nslookup、setdebug〃進(jìn)入調(diào)試模式>Server:9Address:
9#53QUESTIONS:〃發(fā)出的查詢(xún)請(qǐng)求,type=A,class=IN
ANSWERS:〃返【口I的信息、-〉canonicalname=.ttl=1192->
internetaddress=6ttl=262->internetaddress
=7ttl=262AUTHORITYRECORDS:ADDITIONALRECORDS:Non-
authoritativeanswer:canonicalname=.Name:
www.a.shifen.cuinAddress:6Name:www.a.bhifen.coniAddi7
注意:如果你使用setd2命令,則會(huì)開(kāi)啟高級(jí)調(diào)試模式,會(huì)輸出更多nslookup內(nèi)部工作的信息,
甚至包括許多函數(shù)調(diào)用信息。
指定查詢(xún)中默認(rèn)的域后綴
設(shè)置默認(rèn)的域后綴,可以為我們的域名查詢(xún)帶來(lái)便捷。因?yàn)?,?duì)于所有尾部不包含的查詢(xún)請(qǐng)求,
都會(huì)自動(dòng)在尾部追加上我們所設(shè)置的域后綴。
$nslookup>setall〃首先顯示上連DNS服務(wù)器信息以及所有的當(dāng)前選項(xiàng)信息Defaultserver:
9Address:9#53Defaultserver:Address:#53Defaultserver:
8Address:8#53Setoptions:novcnodebugnod2searchrecurse
timeout=0retry=3port=53querytype=Aclass=INsrchlist=〃可以看到srchlist為空>set
domain=〃設(shè)置默認(rèn)域?yàn)?gt;setall〃再次查看選項(xiàng)信息Defaultserver:
9Address:61,139.2.69#53Defaultserver:Address:#53Defaultserver:
8Address:8#53Setoptions:novcnodebugnod2searchrecurse
timeout=0retry=3port=53querytype=Aclass=INsrchlist=〃口f以看至Usrchlist己
經(jīng)被設(shè)置了后綴〉image〃直接查詢(xún)imageServer:61.139269Address:
9#53Non-authoritativeanswer:canonicalname=.
〃可以看到已默認(rèn)追加了.域后綴,變成了Name:
Address:220,181.111.131
在交互模式下設(shè)置type
通過(guò)setquerytype=[value],我們可以更改信息查詢(xún)的類(lèi)型。
默認(rèn)情況下,nslookup是查詢(xún)域名所對(duì)應(yīng)的A記錄,而當(dāng)你想查詢(xún)其對(duì)應(yīng)的MX記錄等旨息時(shí),
就需要更改查詢(xún)的類(lèi)型了。
目前常用的type值如下:
A:查看主機(jī)的IPv4地址AAAA:查看主機(jī)的IPv6地址ANY:查看關(guān)于主機(jī)域的所有信息
CNAME:查找與別名對(duì)應(yīng)的正式名字HINFO:查找主機(jī)的CPU與操作系統(tǒng)類(lèi)型MINF0:查找郵
箱信息MX:查找郵件交換信息NS:查找主機(jī)域的域名服務(wù)器PTR:查找與給定1P地址兀配的主
機(jī)名RP:查找域負(fù)責(zé)人記錄SOA:查找域內(nèi)的SOA地址UINFO:查找用戶信息
例如,針對(duì)MX類(lèi)型的查詢(xún)結(jié)果如下:
>settype=MX>〃查詢(xún)MX信息Server:9Address:9#53Non-
authoritativeanswer:mailexchanger=20.mailexchanger=
20.mailexchanger=10.mail
exchanger=20.Authoritativeanswerscanbefoundfrom:>settype=A>
〃查詢(xún)A記錄Server:9Address:9#53Non-authoritativeanswer:Name:
Address:44Name:Address:220,181.111.85Name:
Address:6
好了,關(guān)于nslookup命令的用關(guān)知識(shí)我們就介紹到這里了。接下來(lái)的兩篇文章,我們會(huì)為大家介
紹另一個(gè)好用的DNS杳詢(xún)工具dig.
7DNS探秘之六——dig初體驗(yàn)
dig為自己代言
在平時(shí)查詢(xún)DNS信息時(shí),相信大家使用nslookup會(huì)更多一些,對(duì)dig深入了解的同學(xué)相對(duì)較少,
所以借這個(gè)機(jī)會(huì),我們有必要花些時(shí)間給大家介紹一下dig命令的功能和用法。很多人不知道,
其實(shí)dig要比nslookup更加強(qiáng)大,dig是個(gè)有顏值的實(shí)力派。
對(duì)了,如果你還沒(méi)有閱讀過(guò)本系列的前幾篇文章,那么我建議你還是先去讀一下,那里面介紹了
不少有關(guān)DNS的基礎(chǔ)知識(shí),對(duì)于大家理解dig有很大幫助。
dig,其實(shí)是一個(gè)縮寫(xiě),即DomainInformationGroper,它是一個(gè)DNS查詢(xún)工具。
一些專(zhuān)業(yè)的DNS管理員在追查DNS問(wèn)題時(shí),都樂(lè)于使用dig命令,看中的便是dig設(shè)置靈活、
輸出清晰、功能強(qiáng)大的特點(diǎn)。
最簡(jiǎn)單的dig用法
最簡(jiǎn)單的dig用法,當(dāng)然就是直接執(zhí)行dig命令啦:
[roc@roclinux~]$dig;??DiG9.8.2rcl-RedHat-9.8.2-0.37.rcl.el6_7.4??;;globaloptions:
+cmd;;Gotanswer:;;-?HEADER?-opcode:QUERY,status:NOERROR,id:33541;;flags:qrrdra;
QUERY:1,ANSWER:13,AUTHORITY:0,ADDITIONAL:0;;QUESTIONSECTION:;.INNS;;ANSWER
SECTION:.197458INNS..197458INNS..197458INNS
..197458INNSI...197458INNS..197458IN
NS..197458INNS..197458INNS..197458
INNS..197458INNS..197458INNS..
197458INNSa.root-servers.r.et..197458INNS.;;Querytime:43msec;;
SERVER:#53();;WHEN:TueMar111:20:312016;;MSGSIZErcvd:228
從上面的輸出可以發(fā)現(xiàn),當(dāng)直接使用dig命令,不加任何參數(shù)和選項(xiàng)時(shí),dig會(huì)向上連DNS服務(wù)
器查詢(xún)(根域)的NS記錄。
dig后加個(gè)點(diǎn)
剛才是直接輸入dig,這次我們?cè)诤竺婕由弦粋€(gè)點(diǎn)號(hào)表示杳詢(xún)根域,看看結(jié)果和剛才相比有什
么區(qū)別:
[roc@roclinux?]$dig.;??DiG9.8.2rcl-RedHat-9.8.2-0.37.rcl.el6_7.4??.;;globaloptions:
+cmd;;Gotanswer:;;-?HEADER?-opcode:QUERY,status:NOERROR,id:20722;;flags:qrrdra;
QUERY:1,ANSWER:0,AUTHORITY:1,ADDITIONAL:0;;QUESTIONSECTION:INA;;AUTHORITY
SECTION:.9820INSOA..20160229011800900604800
86400;;Querytime:56msec;;SERVER;#53();;WHEN;TueMarl11:21:12
2016;;MSGSIZErcvd:92
可以看出,這次輸出的是根域的A記錄,這個(gè)例子中展示了13個(gè)根域之一的.
的五元組信息。
我們?cè)谇懊娴奈恼轮薪榻B過(guò)“DNS的五元組知識(shí)”,大家可以回去溫故知新一下。
我想用谷歌開(kāi)放DNS來(lái)查詢(xún)
在2009年,Google對(duì)外發(fā)布了一項(xiàng)全新的服務(wù),即谷歌公共域名解析服務(wù),英文稱(chēng)之為Google
PublicDNS,旨在為全球用戶提供安全可靠的DNS解析服務(wù)。它的首選DNS服務(wù)器是8.S.8.8,
而備選DNS服務(wù)器則為8.8.4.4,都是非常好記的數(shù)字串。
卜面這個(gè)例子,就是使用谷歌開(kāi)放DNS服務(wù)器來(lái)查詢(xún)百度域名的A記錄:
$dig@A〃命令格式為dig?dnsservernamequerytype;??DiG
9.8.2rcl-RedHat-9.8.2-0.37.rcl.el6_7.4??@A;(1serverfound);;global
options:+cmd;;Gotanswer:;;-?HEADER?-opcode:QUERY,status:NOERROR,id:48548;;flags:
qrrdra;QUERY:1,ANSWER:2,AUTHORITY:0,ADDITIONAL:0;;QUESTION
SECTION:;.INA;;ANSWERSECTION:.1185INCNAME
..192INA9;;Querytime:87msec;;SERVER:
8.8.88什53();;WHEN:TucMar111:26:032016;;MSGSIZErcvd:74
從上面這個(gè)例子,大家學(xué)習(xí)到了dig的基本的命令格式是:
$dig@dnsservernamequerytype
如果你沒(méi)有設(shè)置@<3腌501*¥6=,那么dig會(huì)依次使用/etc/resolv.conf里的地址作為上連DNS服務(wù)
器。
而對(duì)于querytype,如果你閱讀了《DNS探秘之四》和《DNS探秘之五》兩篇文章,那么你應(yīng)該
對(duì)querytype有所了解。如果忘記了,就趕快回去復(fù)習(xí)一下吧。
8DNS探秘之七一一dig選項(xiàng)走馬觀花
用選項(xiàng)實(shí)現(xiàn)批量查詢(xún)
dig命令支持從一個(gè)文件里讀取內(nèi)容進(jìn)行批量查詢(xún),這個(gè)功能非常體貼。我們來(lái)看一個(gè)實(shí)際的例
子:
#文件內(nèi)容,共有兩個(gè)域名需要查詢(xún)[roc@roclinux?]$catquerylist
#設(shè)置-f參數(shù)開(kāi)始批量杳詢(xún),同時(shí)通過(guò)-t來(lái)指定查詢(xún)類(lèi)型[roc@roclinux?|$dig-f
querylist-tA;??DiG9.8.2rcl-RedHat-9.8.2-0.37.rcl.el6_7.4??;;global
options:+cmd;;Gotanswer:;;-?HEADER?-opcode:QUERY,status:NOERROR,id:4725;;flags:
qrrdra;QUERY:1,ANSWER:3,AUTHORITY:0,ADDITIONAL:0;;QUESTION
SECTION:;.INA;;ANSWERSECTION:www.234INCNAME
..234INA112.80.24874.234INA
3;;Querytime:37msec;;SERVER:22355.5#53();;WHEN:TueMarl
15:24:382016;;MSGSIZErcvd:90;??DiG9.8.2rcl-RedHat-9.8.2-0.37.rcl.el6_7.4??
;;Gotanswer:;;-?HEADER?-opcode:QUERY,status:NOERROR,id:54774;;flags:
qrrdra;QUERY:1,ANSWER:4,AUTHORITY:0,ADDITIONAL:0;;QUESTION
SECTION:;.INA;;ANSWERSECTION:.28INCNAME.
.28INCNAME..28INA2
.28INA2;;Querytime:32msec;;SERVER:
#53();;WHEN:TueMar115:24:382016;;MSGSIZErcvd:102
用-t選項(xiàng)設(shè)置查詢(xún)類(lèi)型
我們可以使用-t選項(xiàng)設(shè)置要查詢(xún)的資源類(lèi)型,默認(rèn)情況下是A。如果我們想查看域名的MX信息,
則方法如下:
#我們?cè)O(shè)置查詢(xún)類(lèi)型為M
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年版城市智能交通系統(tǒng)建設(shè)外包合同
- 購(gòu)銷(xiāo)合同爭(zhēng)議解決
- 橋梁施工勞動(dòng)力外包合同書(shū)范本
- 常見(jiàn)合同保修協(xié)議范本
- 方式電子商務(wù)購(gòu)銷(xiāo)合同
- 2024年度鐵路客戶服務(wù)中心旅客票務(wù)代理及增值服務(wù)合同2篇
- 2024-2030年管?chē)娚涫饺旧珯C(jī)搬遷改造項(xiàng)目可行性研究報(bào)告
- 2024-2030年環(huán)錠細(xì)紗機(jī)搬遷改造項(xiàng)目可行性研究報(bào)告
- 2024-2030年版中國(guó)蔬菜產(chǎn)品市場(chǎng)競(jìng)爭(zhēng)趨勢(shì)及發(fā)展規(guī)模分析報(bào)告
- 早教安全過(guò)馬路課程設(shè)計(jì)
- 美容門(mén)診感染管理制度
- 2023年電商高級(jí)經(jīng)理年度總結(jié)及下一年計(jì)劃
- 模具開(kāi)發(fā)FMEA失效模式分析
- 年產(chǎn)40萬(wàn)噸灰底涂布白板紙?jiān)旒堒?chē)間備料及涂布工段初步設(shè)計(jì)
- 1-3-二氯丙烯安全技術(shù)說(shuō)明書(shū)MSDS
- 學(xué)生思想政治工作工作證明材料
- 一方出資一方出力合作協(xié)議
- 污水處理藥劑采購(gòu)?fù)稑?biāo)方案(技術(shù)方案)
- 環(huán)保設(shè)施安全風(fēng)險(xiǎn)評(píng)估報(bào)告
- 數(shù)字邏輯與計(jì)算機(jī)組成 習(xí)題答案 袁春風(fēng) 第3章作業(yè)批改總結(jié)
- 要求降低物業(yè)費(fèi)的申請(qǐng)書(shū)范本
評(píng)論
0/150
提交評(píng)論