DNS的問題,通常都是因?yàn)楣芾淼臅r候,沒有細(xì)心的去設(shè)定,而產(chǎn)生的.下面,就來提幾個常見的DNS錯誤.
1.沒有增加SOA (start of authority)RR的serial值
這是最主要的DNS出錯的原因.因?yàn)?serial 值沒有增加,secondary server 就不會在 primary server的資料改變後隨著更心.包括改變SOA里面其他的值,seconrary server自己并不會發(fā)覺.即使是修改SOA RR里面的資料,也都要記得去改 SOA RR的serial值.改了serial後,secondary到時後查出有增加,就會從primary作一次zone transfer.改了SOA RR後,最好去測試一下secondary server是不是有更新.目前有些工具程式可以幫忙檢查.
2.在BIND中的資料後面,少打了一個點(diǎn)(.)
少打了一個點(diǎn),看起來差不多.但是卻造成了很大的問題.BIND的設(shè)定檔案一定要小心的設(shè)定.要不然很可能產(chǎn)生以下的效果:
在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這層,的確發(fā)生過這樣的事情.
3.忘記設(shè)定reverseDNS(或稱pointer,PTR)RR
很多系統(tǒng),在有connection建立時,會花一段不短的時間.去查查client端的 Domain Name是否能夠轉(zhuǎn)成IP Address.(例:Telnet)另外一個例子是traceroute.當(dāng)在traceroute時,所經(jīng)過的router都會去查reverse,在臺灣常常因?yàn)闆]有設(shè),顯示時就會delay.就是因?yàn)閠raceroute 會去查每個 hop 的 domain name.另外一個例子就是當(dāng)連線到其它的h該host上就會紀(jì)錄來源地.這時也要用PTR.== 參閱 RFC 1537,RFC 1713
4.DNS管理者的協(xié)調(diào)工作
要是parent跟chile zone的管理者(這層有可以有好幾個)沒有聯(lián)絡(luò)好,很可能,就會產(chǎn)生兩種錯誤: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,但是又沒有與上面一層通知.當(dāng)然,也有一些程式可以幫忙找出lame and missiong delegations.
--事實(shí)上,從syslog中就可以找到一堆“Lame server on...“的訊息.當(dāng)然,在make BIND時也可以關(guān)掉這些.
5.壞的resolv.conf設(shè)定
resolv.conf里面包含了local domain,當(dāng)你沒有把全部的domain name打出來時,就會自動加上去這個東西.然後機(jī)器就不會去查DNS而直接用這個domain name連出去了.要是resolv.conf 有不正確的 domain name entry,那就有可能連到一堆不存在的地方.(然後得到error.)
6.舊的 root cache 檔案
root cache 檔案里面會寫 root domain 的DNS的 domain name 還有 IP,root cache并不是自己會去改變,更新的.而是要人工去設(shè)定.系統(tǒng)管理員要去注意是否有新增家 root server.要是一臺 DNS 用了一個太舊的 root cache 檔案,就有可能有些 domain 會查不到.最新的 root cache 檔案可以從 ftp://rs.internic.net/domain/named.root 抓到.