這篇是工作文,不是做相關工作的人可以直接跳過本篇。
搞了好多天的Bind9終於搞定了,但是說真的,怎麼搞定的我到現在也沒搞懂,其中還出現過許多詭異的錯誤訊息,特別在此記錄一下:
FreeBSD裝好之後可以不用馬上裝Bind,直接設定/etc/namedb/named.conf:
options {
directory "/etc/namedb/working"; //這個檔一定要是BIND可以讀取的檔案,所有的相關設定檔都要放在這個目錄下。
pid-file "/var/run/named/pid";
dump-file "/var/dump/named_dump.db";
statistics-file "/var/stats/named.stats";
forwarders {
168.95.1.1; //hinet的DNS
168.95.192.1; //不一定要用hinet的,主要是要用你上層的DNS
};
};
// RFC 3152 //給IPV6使用的。
zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA"
{
type master;
file "localhost-v6.rev";
};
// RFC 1886 -- deprecated
zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.INT"
{
type master;
file "localhost-v6.rev";
};
zone "." {
type hint;
file "named.root";
};
zone "neroli.com" {
type master;
file "db.neroli.com";
};
zone "0.168.192.in-addr.arpa" {
type master;
file "db.192.168.0";
};
再來是幾個重要的設定檔:db.neroli.com:
$TTL 259200
@ IN SOA ns1.neroli.com. postmaster.neroli.com. (
2011032170 ;Serial
10800 ;Refresh
900 ;Retry
1209600 ;Expire
3600 ) ;Minimum
; Name Server
in ns ns1.neroli.com.
in a 192.168.0.1
in ns ns2.neroli.com.
in a 192.168.0.2
; Mail Exchange
mail in mx 10 mail.neroli.com.
mail in mx 20 ns2.neroli.com.
; Server Address
ns1 in a 192.168.0.1
www in a 192.168.0.2
mail in a 192.168.0.1
ns2 in a 192.168.0.2
//切記不要做Cname,會出現錯誤訊息。這個檔的意思是指明有二台ns,並指出哪一台是mx(mail server)。
db.192.168.0. (反解檔,除了這兒要做反解之外,還要去上層的ISP設定反解,才能做正確的反解。)
$TTL 259200
@ IN SOA ns1.neroli.com. postmaster.neroli.com. (
2011030375 ;Serial
10800 ;Refresh
900 ;Retry
1209600 ;Expire
3600 ) ;Minimum
; Name Server
in ns ns1.neroli.com.
in ns ns2.neroli.com.
; PTR
1 in ptr ns1.neroli.com.
2 in ptr www.neroli.com.
1 in ptr mail.neroli.com.
2 in ptr ns2.neroli.com.
設定好之後全部存在working/目錄下,並將rndc.key也cp到/usr/local/etc和working/下,以便系統抓到。
啟動DNS:
#/etc/rc.d/named start
停止DNS:
#/etc/rc.d/named stop
檢查log:
#tail -n 50 /var/log/messages |grep named
Mar 22 10:31:56 mail named[1405]: starting BIND 9.4.-ESV -c /etc/namedb/named.conf -t /var/named -u bind
Mar 22 10:31:56 mail named[1405]: command channel listening on 127.0.0.1#953
Mar 22 10:31:56 mail named[1405]: command channel listening on ::1#953
Mar 22 10:31:56 mail named[1405]: running
↑這是正常的顯示結果,如果顯示出錯誤訊息,語法錯誤的話比較簡單,記得目錄權限要對,比較困難的是偶而會有udp address被佔用的情況,我的處理方式是先將Bind移除,重新設定好,啟動後nslookup是正常的話,再把Bind裝回來,問題就解決了。
在網路上也看到有其他人有類似的問題,尤其是從Bind8升級到Bind9時很常發生。
檢查一下port 53是否正常:
#netstat -n
udp4 0 0 127.0.0.1.53 *.*
udp4 0 0 192.168.0.1.53 *.*
udp4 0 0 10.0.0.1.53 *.*
↑表示主機本身、對內網卡、對外網卡的53都有起來,查詢與解析DNS正確。
在內部機器上使用nslookup,確認查詢網址或IP解析正確。
完工!!(真想放鞭炮慶祝啊~~)