查看單個文章
舊 2003-06-29, 10:23 PM   #4 (permalink)
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

這個指令直接從頂級域名伺服器查詢oray.net的NS記錄。所有的二級域名的NS記錄都存放在頂級域名伺服器中,這是最權威的解釋。注意這次沒有非授權結果的提示。對於二級域名的NS記錄查詢來說這肯定是授權結果。頂級域名伺服器的名稱是a到j.gtld-servers.net共十台伺服器。(gtld是Global Top Level Domain的縮寫)。當我們修改域名的NS記錄的時候可以通過上述查詢知道修改的結果是不是已經在頂級域名伺服器上生效。不過即使已經生效也可能不能正常解釋,注意我在上一篇文章中提到的緩衝時間的問題。
那麼到底緩衝多久呢?

檢查域名的緩衝時間
檢查域名的緩衝時間需要我們使用一個新的參數:-d
格式如下:
nslookup –d [其他的參數] 目標域名 [指定的伺服器位址]
請看範例

http://www.shanghainese.net/lb5000/usr/21/21_589_6.gif

我們忽略其他的看看Got answer後面幾行,包括了一個ttl數值。這個數值就是域名記錄的生存時間。
這種查詢將整個DNS資料包的所有部分都揭示出來,大家可以看到DNS實際上並不是想像中那麼簡單的東西。具體的各部分解釋大家可以去看看相關的標準我的文件。需要提醒大家的是一定要找到ANSWER:的內容,其他的東西都不是描述最終的結果。上面就不止一個地方又TTL數值。



域名解釋程序的模擬
我們現在來模擬一下一台DNS伺服器接到一個不是自己管理的域的域名解釋程序。回憶一下第一篇文章的程序:
首先我們會詢問根伺服器,然後根伺服器會讓我們去找對應的頂級伺服器。如果查詢的是oray.net,就會要求我們去找net的伺服器。
看看下面的範例:

這裡我們讓21cn.com的伺服器解釋[url]www.oicp.net的域名,很顯然這台伺服器不用有這個域,需要詢問根伺服器。一般情況下DNS伺服器愴/url]|幫我們完成全部的程序。這種解釋方式我們稱之為遞回解析,為了讓大家看到這個程序我家了一個參數讓21cn.com的伺服器不要這樣做。這個參數是-norecurse。這樣理論上21cn.com會讓我們去問根伺服器,不過由於它已經緩衝了頂級伺服器的記錄,所以直接返回了管理net的頂級伺服器記錄。實際上大部分的查詢都不需要從根伺服器開始。大家看到了所有的頂級域名伺服器的位址都被返回。
我們隨便選項一個在進行查詢。


http://www.shanghainese.net/lb5000/usr/21/21_589_8.gif


這次頂級伺服器就返回了oicp.net的伺服器位址記錄的。然後我們就向這些記錄之一進行查詢,一定能夠得到答案。可能是一個位址、一個CNAME記錄或者告訴你不存在。

nslookup 的指令就介紹到這裡,其實nslookup還有許多其他參數。不過常用的就俄這麼幾個,另外如果大家不喜歡指令行方式的話。還有幾個圖形界面的nslookup功能的工具。不過大家還是需要瞭解域名解釋都有些什麼才能夠正確使用這些工具。

還有nslookup中的子指令的使用方法,一併介紹了。
比如,進入nslookup指令後,通常有很多的子指令,在這裡就介紹一個set指令,這個指令通常又是可以省略不寫的。如,本來輸入 set server=A.B.C.D的,現在就只要輸入:server= A.B.C.D就可以指定伺服器的IP位址,就是說我們需要使用那個伺服器的時候就使用哪個伺服器。再如:輸入 type=mx就可以設定nslookup返回的資料類型了。
還有set type=all的話,通常返回資料就是所有所有類型。如果是type=CN呢,就是CNAME。等等,這些也是可以在使用nslookup中靈活使用的。
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次