作者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.