這是一篇實踐性的文章,如果你還不知道DNS是個什麼東西和bind的一些簡單知識建議還是了解一下先
首先,确認系統是否裝有bind
# rpm -qa|grep bind
我用的就是redhatas4u3自帶的bind:bind-9.2.4-2這個版本(如果沒有bind的話 就去下載下傳一個源碼包吧,具體怎麼安裝就不在說了 這樣的文檔google一下,一大把)
如果是系統自帶的bind是安裝在/var/named/chroot下的(chroot如果不知道的話 也去google一下吧)
下面是具體操作:
# cd /var/named/chroot/etc/ //進入chroot環境下的etc目錄
(建議在編輯配置檔案之前先備份一下已有的配置檔案!!!)
# vi named.conf //編輯bind的主配置檔案
//
// named.conf for Red Hat caching-nameserver
options {
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
/*
* If there is a firewall between you and nameservers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
};
// a caching only nameserver config
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
acl "telecom" {
衆多電信的DNS,我就不cp過來了,實在是太多了!我在寫這個的時候已經是1K多條記錄了
....
view "telecom" {
match-clients { TELECOM; };
zone "." {
type hint;
file "named.ca";
zone "0.0.127.IN-ADDR.ARPA" {
type master;
file "localhost.rev";
zone "test.com" {
file "master/telecom/test.com";
view "any" {
match-clients { any; };
zone "." {
file "master/cnc/test.com";
include "/etc/rndc.key";
//編輯完成後儲存退出
# mkdir /var/named/chroot/var/named/master/
# mkdir /var/named/chroot/var/named/master/telecom
# mkdir /var/named/chroot/var/named/master/cnc
# vi /var/named/chroot/var/named/master/telecom/test.com
$TTL 86400
@ IN SOA ns.test.com. root.ns.test.com. (
2005062301 ; serial
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS ns.test.com.
IN MX 10 mail.test.com.
www IN A 電信IP
//儲存退出
# vi /var/named/chroot/var/named/master/cnc/test.com
www IN A 網通IP
# service named start
别忘記修改/etc/resolv.conf這個檔案!
如果在測試dns的過程中有問題的話,我們可以根據解析的報錯 來分析一下:
1)如果是服務都起不來的話 檢查一下配置檔案named.conf (這個檔案中的{}很煩!!)
2)服務啟動了,但是不能正常解析的話,一般有2種情況(我隻是見到過2種)
還有一種就是 3 的(具體的語句我不記得了)這種情況 就是解析檔案有問題,言外之意就是named.conf的配置與解析檔案已經對應上了!但是解析時沒有正确解析!