当前位置:Linux教程 - Linux - 常见的 DNS 错误

常见的 DNS 错误



        
    DNS 的问题, 通常都是因为管理的时候, 没有细心的去设定, 而产生的. 下面,就来提几个常见的 DNS 错误.
    1. 没有增加 SOA (start of authority) RR 的 serial 值

    这是最主要的 DNS 出错的原因. 因为, serial 值没有增加, secondary server 就不会在 primary server 的资料改变後随著更心. 包括改变 SOA 里面其他的值, seconrary server 自己并不会发觉. 即使是修改 SOA RR 里面的资料, 也都要记得去改 SOA RR 的 serial 值. 改了 serial 後,secondary 到时後查出有增加, 就会从 primary 作一次 zone transfer. 改了 SOA RR 後, 最好去测试一下 secondary server 是不是有更新. 目前有些工具程式可以帮忙检查.

    2. 在 BIND 中的资料, 後面, 少打了一个点 (.)

    少打了一个点, 看起来差不多. 但是却造成了很大的问题. BIND 的设定档案一定要小心的设定. 要不然很可能产生以下的效果:

    在 sample.com.tw. 这层: sample.com.tw IN NS ns.sample.com.tw 却是代表: sample.com.tw.sample.com.tw. IN NS ns.sample.com.sample.com.tw.

    -- 在 com.tw 这层, 的确发生过这样的事情.

    3. 忘记设定 reverse DNS (或称 pointer, PTR) RR

    很多系统, 在有 connection 建立时, 会花一段不短的时间. 去查查client 端的 Domain Name 是否能够转成 IP Address. (例: Telnet)另外一个例子是 traceroute. 当在 traceroute 时, 所经过的 router都会去查 reverse, 在台湾常常因为没有设, 显示时就会 delay. 就是因为 traceroute 会去查每个 hop 的 domain name. 另外一个例子就是当连线到其它的 host, 该 host 上就会纪录来源地. 这时也要用 PTR. ==> 参阅 RFC 1537, RFC 1713

    4. DNS 管理者的协调工作

    要是 parent 跟 chile zone 的管理者 (这层有可以有好几个 )没有联络好,很可能, 就会产生两种错误: lame delegations (不完整的授与) 还有missing delegations (遗失的授与). lame delegations 的情况是, parent列出下面某个 domain 的 name server, 但是其中可能有几台, 没有这个zone 的全部资料 (authority 的意义). 要是parent 列出的这些 name server 通通都没有 SOA (primary, secondary server 都会有 SOA), 这就成了 missing delegations. 最常遇到 missing delegations 的状况是这个单位改 IP, 但是又没有与上面一层通知. 当然, 也有一些程式可以帮忙找出 lame and missiong delegations.

    -- 事实上, 从 syslog 中就可以找到一堆 “Lame server on ...“ 的讯息. 当然, 在 make BIND 时也可以关掉这些.

    5. 坏的 resolv.conf 设定

    resolv.conf 里面包含了 local domain, 当你没有把全部的 domain name 打出来时, 就会自动加上去这个东西. 然後机器就不会去查 DNS 而直接用这个 domain name 连出去了. 要是 resolv.conf 有不正确的 domain name entry, 那就有可能连到一堆不存在的地方. (然後得到 error.)

    6. 旧的 root cache 档案

    root cache 档案里面会写 root domain 的 DNS 的 domain name 还有 IP,root cache 并不是自己会去改变, 更新的. 而是要人工去设定. 系统管理员要去注意是否有新增家 root server. 要是一台 DNS 用了一个太旧的 root cache 档案, 就有可能有些 domain 会查不到. 最新的 root cache 档案可以从 ftp://rs.internic.net/domain/named.root 抓到.


    发布人:netbull 来自:中国超级Unix联盟