iT邦幫忙

0

DNS運作原理的小疑問(DNS Recursive & Iterative)

各位先進,小弟最近在準備DNS的報告,對於DNS運作方式有點小疑惑,就是為什麼
在PC Client查詢Local DNS的時候,是會選擇用Recursive的方式,為什麼不用Iterative的方式,接著DNS Server之間互相查詢的時候,卻又選擇Iterative,難道DNS Server互相查詢的時候,用Recursive不好嗎?

12
ganymede
iT邦好手 1 級 ‧ 2012-03-21 10:00:52
最佳解答

感謝給我釣竿,不是給魚,不過我主要的困惑是由後來另外一位以比較口語化方式稍微知道答案~anyway,感謝您提供的參考

21
slime
iT邦大師 1 級 ‧ 2012-03-21 10:05:49

我記得的原因是: 1. 效率 2. 管理.

  1. 效率的部份是:
    a. Server 通常有 Cache 功能, 查詢後會暫存查過的記錄, 而且可以透過設定合適的 Forwarder , 提高查詢效率.
    b. Client 百百種, 既然 Server 已經有的功能, Client 只要向指定的主機查詢.
    例如: 如果在網路很慢的環境, 在網路比較快的 Internet 上有一台 DNS Server (假如叫 168.95.x.x :p ) ; Client 使用 Recursive 方式向 DNS Server 發出查詢要求, 就只需要一次查詢的連線, 等 DNS Server 回應即可, 而 DNS Server 再去查到真正的資料並快取下來.

  2. 管理:
    因為 Domain Name 是授權的架構, 所以各主機只能處理自己有授權的部份, 所以要在美國查 xxx.com.tw , 由於 .tw 屬於 TWNIC 管理, 所以美國的 DNS Server , 就需要先問 ROOT Servers (幾台在授權最高層的主機), ROOT Servers 才回應是 TWNIC Servers , 美國的 DNS Server 再問 TWNIC Servers , 這樣分層授權管理, 才能在 DNS 更新頻繁的特性下, 能正確查到記錄.

如果 DNS Server 間, 用 Recursive 方式, 只適合 Forwarder , 常規的 DNS Server , 必須是依授權順序來查詢, 所以不適合用 Recursive .

7
welong
iT邦新手 3 級 ‧ 2012-03-23 03:53:30

用搞笑一點的講法:
在PC Client查詢Local DNS的時候...用戶端是很懶的,丟出問題後就只想得到結果,所以選用Recursive的方式

在DNS Server之間互相查詢的時候...伺服器是認命的,受人之託只好拚命找答案,所以選用Iterative的方式

用戶端為什麼不能勤勞點,使用Iterative的方式呢?如果真的這樣做,那就像民眾看病通通都先跑到醫學中心,再轉到地區醫院,才到診所...會造成(頻寬)浪費

DNS Server幹嘛那麼認命,就找個替死鬼幫忙跑腿(Recursive)就好...那被找上的DNS Server就該死呀,就沒人要架DNS Server了

舉例有點不倫不類,輕鬆一下咩 XD

我要發表回答

立即登入回答