Linux命令(網(wǎng)絡(luò)和系統(tǒng)篇)_第1頁(yè)
Linux命令(網(wǎng)絡(luò)和系統(tǒng)篇)_第2頁(yè)
Linux命令(網(wǎng)絡(luò)和系統(tǒng)篇)_第3頁(yè)
Linux命令(網(wǎng)絡(luò)和系統(tǒng)篇)_第4頁(yè)
Linux命令(網(wǎng)絡(luò)和系統(tǒng)篇)_第5頁(yè)
已閱讀5頁(yè),還剩267頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論