Saturday, August 7, 2010

喔喔喔! dig的recurse和trace!!!

給未來的裕翔

雖然之前解釋過recursive和iterative查詢

不過有些觀念還不是很清楚

當我想看查詢的過程, 要加+trace

可是我man dig時, 它說recurse這bit是預設set的

不過當使用+trace的話, recurse的bit就會被disable

嗯嗯! 怎會這樣? 當我想看它遞迴查詢的過程, 居然會disable那個recurse的bit!!!

難道, +trace顯示出來的不是recurse?

想了又想, 以下是我的設想:

我是client, 我有架一台dns server, 然後有設定forwarders

當我平常dig時, 我跟dns server說"幫我查"

於是dns server去跟它的forwarders說"幫我client作recursive查詢"

然後forwarders回傳dns server一個結果, dns server也回傳我一個結果

ok, 很合理

而當我使用+trace時, 它給我查詢的過程

我一樣對dns server說"親愛的 幫我查"

而這時dns server心花怒放^^

對forwarders說"幫我一個小忙, 請問哪邊可以查到這答案"

forwarders回我的dns server一個地址

於是dns server再去那個地址問"幫我一個小忙, 請問哪邊可以查到這答案"

這樣一路問下去, dns server終於幫我搞定我要問的了

對dns server而言, 它的行為是iterative

所以我在想, 當我使用+trace時, recurse的bit被disable

就是因為對我的dns server而言, 他是一個個iterative去查的

所以平常講的recursive和iterative, 都是指dns server和forwarders之間的查詢方式!?

簡單說來, recursive查詢就是我請對方幫我搞定

iterative查詢就是我請對方告訴我一個方向

以上, 個人猜測^^"

ref: http://dns-learning.twnic.net.tw/dns/03opDNS.html

No comments:

Post a Comment