BBS水木清华站∶精华区

发信人: 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) 
转信站: sobee!netnews.ntu!news.mcu!news.cs.nthu!news.cis.nctu!news-peer.nctu!n 
 
 
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. 

BBS水木清华站∶精华区