設定上的眉角真的要特別去注意,順便把自己遇到的問題和解法做個紀錄。
設定的參考,主要來自幾個地方
主要編輯文件:
- /etc/namedb/named.conf
- /etc/namedb/working/正解資訊
安全性附加設定 ”rndc”(remote name daemon control):
- /etc/namedb/rndc.conf
- IP:192.168.1.20
- 本機名稱:dns
- 網域:hy.fall.idv.tw
- 上層DNS:dns.fall.idv.tw
詳細設定:
- /etc/namedb/named.conf
1.設定 listen
找到
listen-on { 127.0.0.1; };這代表啟動DNS服務時,會監聽的對外IP位址,由於預設只有監聽 127.0.0.1,故啟動後並不會對外服務,必須再新增IP才行,將設定值調整為
listen-on { 127.0.0.1; 192.168.1.20; };===題外話===
由於設定時一直忽略這個地方,直到下netstat -an才發現只有監聽本機 (如下)
這時才驚覺一定是有什麼地方沒有調整(debug時卡最久的地方... config檔果然要看仔細阿!!)tcp4 0 0 127.0.0.1.53 *.* LISTEN
=========
2.設定正解zone
在檔案最下方新增
// 20120412上面所代表的是,我們將fall.idv.tw網域所管理的資訊,放在dns.hy.fall.idv.tw.fwd這個檔案內。
zone "hy.fall.idv.tw" {
type master;
file "dns.hy.fall.idv.tw.fwd";
};
檔案位置有2種表示方式,「相對位置」、「絕對位置」
「絕對位置」的部份就是直接指出檔案位置,例如:/etc/namedb/working/dns.hy.fall.idv.tw.fwd
「相對位置」必須要參考named.conf最上方的 options 設定,directory 即代表預設的資料夾位置。
- /etc/namedb/working/dns.fall.idv.tw.fwd
在/etc/namedb/working內新增 dns.hy.fall.idv.tw.fwd ,內容如下:
$TTL 86400===引用官方手冊 ===
@ IN SOA dns.fall.idv.tw. root.dns.hy.fall.idv.tw. (
2012041601 ;Serial
172800 ;Refresh
900 ;Retry
3600000 ;Expire
3600 ) ;Minimum
hy.fall.idv.tw. IN NS dns.
dns.hy.fall.idv.tw. IN A 192.168.1.20
開頭的 @ 代表網域名稱 twbsd.org,IN 表示為 internet 的資料型態。SOA 後面接的是 twbsd.org,表示這台 twbsd.org 機器是 twbsd.org 網域中的主要名稱伺服器。而 root.twbsd.org 表示管理者的Email 是 root@twbsd.org。讓我們先看到第一行 $TTL 的部份,$TTL 代表這設定的資料要存多久,其後所接的值是以秒數計算。我們這裡的設定是 172800,表示二天。============
正解檔中的內容中除了第一行外,每一行的格式為 [name] [ttl] [class] [type] [data]。以下是每個欄位的說明:
- name:可以是網域名稱或是主機名稱,如果不寫的話表示與上一個設定相同。
- ttl:是資料要存活的時間 (time to live),也就是 cache server 將保留在它的 cache 中的時間。如果不寫的話表示和 SOA 中的設定相同。
- class:指定網路的類型,這個欄位應該都是使用 IN 代表 internet。
- type:設定該筆資料的型態,例如:MX, A, CNAME, PTR, NS 等。
- data:就是實際設定資料的部份。
====補充說明====
============
- @ 在我這邊的範例,代表 hy.fall.idv.tw. (注意最後的「 .」),因此也可以寫成 「 hy.fall.idv.tw. IN SOA dns.fall.idv.tw. root.dns.hy.fall.idv.tw.」
- SOA 後面必須接「上層DNS」,再接上dns.hy.fall.idv.tw主機的管理者email「root.dns.hy.fall.idv.tw.」
基本上,這樣的設定就夠了,反解的部份由於上層會幫我們設定好,因此不用特別再去設定。
啟動DNS服務:
/etc/rc.d/named start檢查log訊息:
tail -n 30 /var/log/messages
這邊舉出幾個我碰到的問題:
======
Apr 12 17:45:47 dns named[2563]: dns.hy.fall.idv.tw.fwd:9: ignoring out-of-zone data (hy.fall.idv.tw)
代表 dns.hy.fall.idv.tw.fwd 和named.conf的zone沒設定正確,例如:
named.conf:
zone "dns.zongyan-lab.fall.idv.tw" ( .....略應該為:
zone "zongyan-lab.fall.idv.tw" ( .....略
======
Apr 12 17:45:47 dns named[2563]: zone dns.hy.fall.idv.tw/IN: has 0 SOA records
Apr 12 17:45:47 dns named[2563]: zone dns.hy.fall.idv.tw/IN: has no NS records
代表 SOA 設定錯誤,必須指到上層的DNS。
======
設定 ”rndc”(remote name daemon control):
- 產生key檔
cd /usr/sbin/./rndc-confgen -a
- 確認是否有建立key
more /etc/namedb/rndc.key
- 產生 rndc.conf
./rndc-confgen > /etc/namedb/rndc.conf
- 將 rndc.key的內容,取代rndc.conf最上面的
key "rndc-key" {
algorithm hmac-md5;
secret "XXXXXXXXXXXXX";
};
- 在named.conf 加上
include "/etc/namedb/rndc.key";
controls {
inet 202.3.168.37 port 953 allow { 127.0.0.1; 202.3.168.37; } keys { rnd
c-key; };
};
- 重新啟動 nsmed
沒有留言:
張貼留言