Linux上的DNS服務器配置一直是一個令我頭疼的問題,我多次嘗試也不得其精髓,這一次終於徹底搞清了其機制,其實這一套配置並不復雜,主要只涉及到兩個文件,只需要按照我下面所說的去做,肯定一次搞定。另外,我還為大家提供了我們etran公司的配置實例,大家只需要稍加修改,就可以輕松完成所有的配置工作(當然,希望你首先對Linux的工作方式和風格要比較了解,最好對vi也同樣清楚,雖然這些條件實並非必須)。
首先,讓我們弄清楚我們需要處理的文件及其所在位置:
/etc/named.conf
/etc/host.conf
/etc/resolv.boot
/etc/hosts
/etc/named.boot
/var/named/named.ca
/var/named/named.hosts
/var/named/named.local
/var/named/named.rev
一共有9個文件,其中關鍵的是兩個:“/etc/named.conf”和“/var/named/named.hosts”。前者是域名解析配置文件,後者為域配置文件。
首先我們看一下"/etc/named.conf"文件的語法和作用。以我們服務器上的配置為例:
――――――――――――――――――――――――――――――――――――
/*
* A simple BIND 8 configuration
*/
options {
Directory "/var/named";
# forwarders {
# 192.168.192.100;
# };
# forward only;
};
#logging {
# category lame-servers { null; };
# category cname { null; };
#};
zone "etran.com" in {
type master;
file "named.hosts";
};
zone "192.168.192.in-addr.arpa" in {
type master;
file "named.rev";
};
zone "." in {
type hint;
file "named.ca";
};
zone "0.0.127.in-addr.arpa" in {
type master;
file "named.local";
};
――――――――――――――――――――――――――――――――――――
options一段中的directory是在指示最後4個文件的位置,而forwarders則是指示是哪一台機器將不能解析的域名轉發到上級DNS服務器上。關鍵的是幾個zone段,格式如上。最重要的是帶有“etran.com”字樣的段。需要注意的是:該段中將etran.com換成您需要的域名,下面的file段表示對應於該域的文件,當然該文件在directory定義的/etc/named目錄中。
另外,我們還要體會一下反向域的概念。DNS其實就是域名對應於IP地址,而反向域則正好相反,即將IP地址對應於域名,也就是說對給定的IP地址解析出其域名,這樣可以解決IP欺騙的問題。反向域的特征就是最後兩個段是以in-addr.arpa結尾,另外,前面段中的IP地址是要反向來讀的,比如說0.0.127.in-addr.arpa對應的其實是127.0.0.X之類的IP地址。
下面是我們的主要任務,對“/var/named/named.hosts”文件要稍微理解一下。這一文件主要負責將DNS域名映射為IP地址。配置實例如下:
―――――――――――――――――――――――――――――――――――――――
@ IN SOA ns.etran.com. root.etran.com. (
800006 ; serial number
86400 ; Refresh interval, every 24 hours
300 ; Retry interval, every 5 minutes
2592000 ; 30 days TTL
86400 ) ; 24 hours eXPiration
IN NS ns.etran.com.
IN MX 1 mail.etran.com.
ns IN A 192.168.192.100
www IN CNAME ns.etran.com.
mail IN CNAME ns.etran.com.
FTP IN CNAME ns.etran.com.
smtp IN CNAME ns.etran.com.
pop3 IN CNAME ns.etran.com.
localhost IN A 127.0.0.1
―――――――――――――――――――――――――――――――――――――
其中IN表示使用的是TCP/IP協議;
上面的"NS"記錄說明了本域("etran.com")的域名服務器地址為“192.168.192.100”;
"MX"記錄說明本域的郵件服務器地址,後面的1就是表示順序,順序小的優先使用。
接下來的"A"記錄簡單地將DNS名映射為IP地址。
最後的"CNAME"記錄的是"別名",這是在說www.etran.com、mail.etran.com、ftp.etran.com等都是指向"192.168.192.100"這一台主機。
最後一句是本地機器名的IP為127.0.0.1。
以上配置完畢後,重啟後台守護進程named
以root身份運行
/etc/rc.d/init.d/named restart。
一切OK!
一切OK!