回文章列表
作者chen@cc.nctu.edu.tw (C.S.Chen), 信區: unix
標題[DNS/bind] Lame Server ? (理論篇 )
時間National Chiao-Tung University, Taiwan (Sun Mar 30 20:12:53 1997)
轉信站: GIBBS!news.iie.ncku!ccnews.NCTU!alab03.ee.nctu!news-peer.nctu!news.nctu
Origin: netnews.nctu.edu.tw


DNS/bind-4.9.x Lame Server 訊息所代表的意義 ( 理論篇 )
===========================================

What is lame server (DNS) ?

有許多管理 DNS 系統的管理者, 常會遇到, 或看到這類的名詞.
究竟, 
  1) 什麼是 Lame Server ? ( "跛腳的" server !)
  2) 為什麼會產生 Lame server ?
  3) Lame Server 有什麼不良影響 ?

Lame server, 主要的不良影響, 就是造成不必要的 DNS traffic, 浪費 client
program 和居中的 DNS servers 的 CPU cycles, 浪費使用者的時間...

簡單地說, 會形成 Lame server 的條件是,
   a) NS delegation ( 被授權 )
   b) not authoritative. ( 沒有該 domain zone 全部的資料 )
      * 也就是, 
        a) 該 host 沒有跑 named 程式 (or equivalent DNS server)
	b) 該 host 有跑 DNS server 程式, 但是起始設定檔
  	   /etc/named.boot (or equivalent)
	   沒有對應的 primary or secondary 設定行.

====================================================================
所謂的 lame server, 就是, 理論上, 一個 domain zone, 由某個 DNS host
參與負責(可能還有其它的負責 host), 但是如果你問它一個理論上, 屬於該
domain zone 的問題, 這個 host 卻回答不出. 
 ==> 此時, 這個 host 就形成 lame server.

因此, 如果是一個 authoritative server, 底下兩類情況, 都要能回答:
 (以 NCTU.edu.tw 這個 domain zone 為例 )

  a) postive example: (事實存在, authoritative answer )
     - netnews.NCTU.edu.tw
       cf. non-authoritative, caching answer

     通常這一部份, 很容易讓人混淆.
      - authoritative answer 的 TTL 值, 不會變.
      - caching answer 的 TTL 值, 會遞減, 一直到零. ( zero) 如再被問到,
        會再到 authoritative DNS host 去問一次, 整個 caching cycle 再
        重來...

  b) negative example (不存在的 domain zone)
     - tst.NCTU.edu.tw

     只有 authoritative server 才有全部的 domain zone 的 data, 因此才能
     判定一個錯誤, 不存在的 domain name. ( semantic error )

     而 caching server 通常只有, 某個 domain zone 的部份 data, 對於
     某個看來, 語法正確的的 data, 但卻不在 caching 中的資料, 只能假定
     它是對的, 只是剛好不在, 必須再到該 authoritative DNS host 去問.
     -- 因此, 通常無法判定, 除非對該 entry, 剛好有 negative caching.

====================================================================

如果, 真得要更清楚了解, 為什麼會形成 Lame server 意義. 首先, 必須從 DNS
系統的授權運作了解起.

DNS 是一個分散式的階層式管理系統, 這個系統運作, 奠基在兩個重要觀念.
  a) domain zone 的授權. ( NS delegation )
  b) domain zone 的負責單位 DNS servers, 準備原始資料 ( authoritative data )


  舉例而言,

 -- 最頂層的 root domain name server ( a.root-servers.net 等十來個), 將
    tw domain zone 授權給 moevax.edu.tw 等 6 個 DNS server 管理.
    ==> 因此, Internet 上其它的 DNS servers 要找做 domain name 中最右邊,
	是 tw 者, 必先 contact 這六者之一.

 -- tw domain zone 的管理者, 將 com.tw 授權交由 {aladdin.iii.org.tw} 和
    {moevax.edu.tw} 兩者管理.
    ==> 因此, Internet 上其它的 DNS servers 要找做 domain name 中最右邊,
	是 com.tw 者, 上列的六個 {tw} DNS servers 會告訴它們去問這兩個
	其中之一.

.....

===============================================================
至於 DNS 系統上 domain zone 的授權 ( NS delegation), 更有兩處.

  1) parent zone 授權給 child zone 的 DNS servers.
     --e.g. EDU.tw 的 NS (moevax.edu.tw) 將  NCTU.EDU.tw 授權給
	  {ns.NCTU.edu.tw,ns2.NCTU.edu.tw,NCTU.edu.tw} 三個 DNS host 負責.

     -- 這裏所謂的授權, 就是管理權, 由此轉出去, 不再干預.
	例如, 目前如果在 moevax.edu.tw 定義 tst.NCTU.edu.tw 是無效的,
	(除非將 NCTU.edu.tw 的三組 NS records 取消)

	因為 domain zone "NCTU.edu.tw " 的管理權已經, 授權給 ns.NCTU.edu.tw
	等三個 DNS hosts.

  2) 某個 domain zone 的 primary DNS host, 將該 domain zone 授權給
     其它 secondary host.
     -- a) EDU.tw :
	      primary - moevax.edu.tw
	      secondary - moesun.edu.tw

     -- b) NCTU.EDU.tw:
	     primary - ns.NCTU.edu.tw
	     secondary - ns2.NCTU.edu.tw, NCTU.edu.tw

=====================================================================
就功能上而言, 某個 domain zone 的 primary/secondary, 從其它站的 DNS 
server/client 來看, 完全一樣. 都是該 domain zone 的 authoritative server.

那麼一個 domain zone 的 primary/secondary 究竟有何不同 ? 可以分辨的出 ?
  a) 一個 domain zone 一定有一個唯一的 primary host. (one and only one)
  b) 一個 domain zone 得有一個以上的 secondary host (maybe none)
      * 根據 Internet 慣例, 一個 domain zone 應該有一個以上的 secondary
        DNS host. 國內, 過去在這一方面, 似乎沒有要求. 因此, 許多單位
	一個 secondary host 都沒有. 這樣子, reliability and performance
	實在堪慮.

  c) 一個 domain zone 的 primary host 負責準備原始資料. 而 secondary
     則從 primary, 將該 domain zone 的資料, 全部 mirror 過來.

     Note: 關於 primary/secondary host 的說明
     ========================================================
     server A - primary host for domain zone-1, domain zone-2
                secondary host for domain zone-3
     server B - secondary host for domain zone-1
     		primary host for domain-3
     server C - secondary host for domain zone-2, zone-3

      1) A 到 B 取 domain zone-3 的資料,
      2) B 到 A 取 domain zone-1
      3) C 到 A 取 domain zone-2 的資料, C 到 B 取 domain zone-3 的資料

�
  d) 唯一可能分辨的, 理論上只有 該 domain zone 的 SOA 記錄.
     origin 這一欄, 應該要填該 domain zone 的 primary host.
     -- 但是, 如果填錯了, 就看不出來了.

Script started on Sun Mar 30 19:17:21 1997
netnews% 21:>nslookup
Default Server:  ns.NCTU.edu.tw
Address:  140.113.250.135

> set type=soa
> nctu.edu.tw.
Server:  ns.NCTU.edu.tw
Address:  140.113.250.135

nctu.edu.tw
	origin = ns.nctu.edu.tw
	mail addr = hostmaster.nctu.edu.tw
	serial = 1997032700
	refresh = 86400 (1 day)
	retry   = 1800 (30 mins)
	expire  = 1728000 (20 days)
	minimum ttl = 259200 (3 days)
nctu.edu.tw	nameserver = ns.nctu.edu.tw
nctu.edu.tw	nameserver = ns2.nctu.edu.tw
nctu.edu.tw	nameserver = nctu.edu.tw
ns.nctu.edu.tw	internet address = 140.113.250.135
ns2.nctu.edu.tw	internet address = 140.113.6.2
nctu.edu.tw	internet address = 140.113.1.1
> netnews% 22:>exit
exit

script done on Sun Mar 30 19:17:42 1997

-- 
Joe. C.S.Chen,  chen@cc.nctu.edu.tw

*******  Knowledge is of two kinds.  We know a subject ourselves,  ********
 	 or we know where we can find information upon it.
文章選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻