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 是不是有更新. 目前有些工具程式可以帮忙检查.
要是 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.)