Bind9 dns server

在bsd中如果要架設dns server是非常方便的事情,因為內建就有bind9,因此險只要經過一些動作就可以輕鬆架設dns,不過這裡不解釋dns的架構與學理的討論

通常dns最少都會有兩台為了防止查不到的情況,因此這裡以master/slave架構來介紹這兩台機器如何共同運作,假設機器有140.114.3.83與140.114.6.93兩台來說

* 140.114.3.83 master 設定bind9

# cd /etc/namedb/
# cp named.conf named.conf.back (先備份起來,免得改壞了)
# vim named.conf

// listen-on {127.0.0.1;}; (要註解掉,因為預設只允許本機查詢)
include "named.conf.my_config" (將自己做出來的設定檔用include方法加入)

# cd /etc/namedb/working/
# vim named.conf.my_config (因為在named.conf裡面有指定directory的關系所以要放在working目錄下才讀的到)

zone "arkbsd.org" {
type master;
file "master.arkbsd.org";
allow-transfer {
140.114.6.93; (允許的slave機器)
};
};

# cd /etc/namedb/working/
# vim master.arkbsd.org (開始要寫zone檔了)

$TTL 86400
@ IN SOA dns1.arkbsd.org. femc7488.gmail.com. (
2011052001 ; serial
8H ; refresh (8 hours)
2H ; retry (2 hours)
1W ; expire (1 week)
1D ; negative cache (1 day)
)
IN A 140.114.3.83 ; arkbsd.org 正解ip
IN NS dns1.arkbsd.org. ; master dns1
IN NS dns2.arkbsd.org. ; slave dns2
dns1 IN A 140.114.3.83 ; dns1.arkbsd.org 正解ip
dns2 IN A 140.114.6.93
www IN CNAME arkbsd.org. ; www.arkbsd.org為arkbsd.org的alias
ftp IN CNAME arkbsd.org.
aria IN A 220.134.30.214
tifa IN A 140.114.6.93
movie IN A 114.34.131.23
locker IN A 140.114.6.114


# echo 'named_enable="YES"' >> /etc/rc.conf
# /etc/rc.d/named start (之後可以看一下在/var/log/message中有沒有錯誤)

* 140.114.6.93 slave 設定bind9

# cd /etc/named/
# cp named.conf named.conf.back (一樣先備份)
# vim named.conf

// listen-on {127.0.0.1;}; (要註解掉,因為預設只允許本機查詢)
include "named.conf.my_config" (將自己做出來的設定檔用include方法加入)

# cd /etc/namedb/working/
# vim named.conf.my_config (因為在named.conf裡面有指定directory的關系所以要放在working目錄下才讀的到)

zone "arkbsd.org" {
type slave;
file "slave.arkbsd.org";
masters {
140.114.3.83;
};
};

在slave機器中不需要編輯slave.arkbsd.org的zone檔,因為它會由master來提供

# echo 'named_enable="YES"' >> /etc/rc.conf
# /etc/rc.d/named start (之後可以看一下在/var/log/message中有沒有錯誤)

* 設定完後的工作

當設定完當然要看看有沒有正常運作,我們可以透過dig這個命令來查看看是不是可以查的到
# dig arkbsd.org @127.0.0.1
# dig www.arkbsd.org @127.0.0.1
# dig -t ns arkbsd.org @127.0.0.1
# dig dns1.arkbsd.org @127.0.0.1
# dig dns2.arkbsd.org @127.0.0.1

另外如果正常運作的話 slave中的zone檔會自動透過同步路產生,也可以檢查一下是否存在
# cd /etc/named/working/ (看看在6.93那台上有沒有存在slave.arkbsd.org)

如果一切都正常的話,就可以將dns代管那邊改為自管,並將dns指向dns1, dns2
之後過一段時間我們可以使用
# dig arkbsd.org @168.95.1.1
查詢結果如果有正確指向我們要的機器的ip的話就代表成功了,如果簡單的dns只需要正解的功能,而反解的話需要上層的設定,除非自己有一個網段下的ip否則可以不用設