在linux上最常用的dns服務套件就是bind,目前應該bind9多的版本了,安裝上直接透過 yum 安裝 Bind 與其設定檔範本
#yum install bind system-config-bind bind-chroot
bind

設定檔位置:/var/named/chroot/
由於安全性考量,安裝完 bind-chroot 套件後,bind 的設定檔位置會改到 /var/named/chroot 下
system-config-bind 套件則是安裝bind預設的設定檔,位置在 /usr/share/system-config-bind/profiles/default 下
設定檔放置步驟:

1. named.conf(dns基本設定檔)
先到 /var/named/chroot/etc 將/usr/share/system-config-bind/profiles/default/named.conf 複製過來
# cd /var/named/chroot/etc
# cp /usr/share/system-config-bind/profiles/default/named.conf ./
bind1

2. 正反解設定檔
到 /usr/share/system-config-bind/profiles/default/named 目錄中去複製系統預設的正反解檔案(zone)
# cd /var/named/chroot/var/named/
# cp /usr/share/system-config-bind/profiles/default/named/*.* ./
bind2

3. named.root(dns基本上層主機記錄檔)
到 /usr/share/doc/bind-9.3.6/sample/var/named 複製 named.root 到 /var/named/chroot/var/named/
# cd /var/named/chroot/var/named/
# cp /usr/share/doc/bind-9.3.6/sample/var/named/named.root ./
bind3
#/etc/init.d/named start (啟動dns服務)
利用netstat 檢查 Bind 是否同時監聽 IPv4 與 IPv6 的 53 port
#netstat -antlp | grep ':53'
可以看到已經啟動IPv4 和 IPv6的服務了,但是似乎只有看到v4的服務,沒有看到v6的服務port在listen
port1
請先停止bind的服務
#/etc/init.d/named stop (停止dns服務)
沒有看到上面的v6 port時,請修改/var/named/chroot/etc/named.conf在 options 區段內有些 Bind 版本需加入以下內容:
listen-on-v6 { any; };

但是標準備的設定方法,應該是讓v4和v6都指定要listen的interface,而在named.conf中指定介面的方式就是用ip位置,所以v4和v6的設定如下:
listen-on port 53 { 140.xx.oo.1; };
listen-on-v6 { 2001::1; };

#nano /var/named/chroot/etc/named.conf
port2
再重新啟動bind
#/etc/init.d/named restart
port3

DNS網域主機端設定(下面的網域名稱是測試用,實際運作需要向所在網路單位申請dns網域名稱)
#nano /var/named/chroot/etc/named.conf
其中反解的zone的內容是先設定prefix的ipv6位置解析,而每個是用16進位,所以一般ipv6給的網段是prefix為64時,會是16組16進元之字元組成!!
zone "test.twnic.net." IN {
type master;
file "test.twnic.net.hosts";
allow-update { none; };
};

zone "2.0.0.0.4.0.0.0.8.8.2.0.1.0.0.2.ip6.arpa." IN {
type master;
file "test.twnic.net.rev";
allow-update { none; };
};


再來設定正解檔,正解檔名依照上面紅色字取名
#nano /var/named/chroot/var/named/test.twnic.net.hosts
$TTL 86400
test.twnic.net. IN SOA test.twnic.net. root.test.twnic.net. (
2011070706 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum

test.twnic.net. IN NS test.twnic.net.
hello IN A 211.72.210.41
wkb IN A 211.72.210.41
test1 IN AAAA 2001:288:4:2::3649
[參考範例檔]

再來設定反解檔,反解檔名依照上面紫色字取名
#nano /var/named/chroot/var/named/test.twnic.net.rev
$TTL 86400
2.0.0.0.4.0.0.0.8.8.2.0.1.0.0.2.ip6.arpa. IN SOA test.twnic.net. root.test.twnic.net. (
2011070703 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum

2.0.0.0.4.0.0.0.8.8.2.0.1.0.0.2.ip6.arpa. IN NS test.twnic.net.
9.4.6.3.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR wkb.test.twnic.net.
[參考範例檔]

上面都設定完成後需要重新啟動dns的named服務
#/etc/init.d/named restart (如果沒有出現任何錯誤訊息就ok了!!)

PS:正反解檔如果有修改,在每次更新內容後,務必要更新 serial;通常小弟習慣用西元年、月、日加上2碼的序號如:2011080201

補充:
設定完成後可以透過nslookup來測試,由於目前只是暫時設定之dns資料,並非與上層dns有註冊,所以需要透過本來查作nslookup查詢測試或如果需要的話將dns server設定本機自已要ip為dns server(修改/etc/resolv.conf)
#nslookup
server 127.0.0.1
dnstest
修改dns server設定檔
#nano /etc/resolv.conf
nameserver 127.0.0.1 加上本機為dns預設server


補充:反解查詢dns ip設法之快速方式
#nslookup
2001:288:4:2::3649 (這樣就可以快速查出dns需要之ip格式)
nslookup
Last modified: Tuesday, 6 September 2011, 7:54 PM