DNS(Domain Name System)是網路基礎設施的核心組件,負責將易記的域名轉換為 IP 位址。本文以 CentOS/RHEL 5 環境為例,詳細記錄使用 BIND(named)搭建主從 DNS 服務器的完整步驟,包含套件安裝、配置文件修改、區域檔案建立、服務啟動與功能驗證,適合初學者快速上手。
實驗環境:CentOS 5.x / RHEL 5.x,預計部署主 DNS(192.168.100.60)與從 DNS 兩台伺服器。
透過 RPM 安裝以下套件(版本號可能因系統而異):
bind-9.3.4-10.P1.el5
bind-chroot-9.3.4-10.P1.el5
bind-libs-9.3.4-10.P1.el5
bind-utils-9.3.4-10.P1.el5
ypbind-1.19-11.el5
安裝指令範例:
rpm -ivh bind-9.3.4-10.P1.el5.rpm
rpm -ivh bind-chroot-9.3.4-10.P1.el5.rpm
# 其餘套件同理安裝
安裝 caching-nameserver 可自動產生預設配置模板,大幅簡化初始設定:
rpm -ivh caching-nameserver-9.3.4-10.P1.el5.i386.rpm
cd /var/named/chroot/etc
cp -p named.caching-nameserver.conf named.conf
編輯 named.conf,將第 15、27、36、37 行的 localhost 改為 any:
listen-on port 53 { any; };
allow-query { any; };
allow-recursion { any; };
存檔離開(:wq)。
編輯 named.rfc1912.zones,複製預設 localdomain 區塊並修改為自有域名 abc.com:
zone "abc.com" IN {
type master;
file "abc.com.db";
allow-update { none; };
};
cd /var/named/chroot/var/named
cp -p localhost.zone abc.com.db
vim abc.com.db
檔案內容範例:
$TTL 86400
@ IN SOA ns.abc.com. root.sina.com. (
42 ; serial
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS ns.abc.com.
ns IN A 192.168.100.60
www IN A 1.1.1.1
ftp IN A 2.2.2.2
mail IN A 3.3.3.3
@ IN MX 10 mail
pop3 IN CNAME mail
smtp IN CNAME mail
說明:SOA 記錄中的 root.sina.com. 為管理員信箱(@ 改為 .),序列號 42 之後每次修改需遞增。
service named restart
使用 nslookup 測試各記錄:
nslookup www.abc.com
nslookup mail.abc.com
nslookup ftp.abc.com
nslookup ns.abc.com
若回應顯示正確 IP,即代表主 DNS 架設成功。
從 DNS 透過區域傳送(Zone Transfer)自動同步主 DNS 資料,提供冗餘與負載分擔。
套件安裝步驟同主 DNS,完成後啟動服務:
service named start
同樣將 localhost 改為 any 允許查詢。
編輯 named.rfc1912.zones,新增 slave 類型區域:
zone "abc.com" IN {
type slave;
masters { 192.168.100.60; }; # 主 DNS IP,前後需有空格
file "slaves/abc.com.db";
};
rndc reload
此時從 DNS 會自動從主 DNS 拉取區域資料,存放於 /var/named/chroot/var/named/slaves/ 目錄。
slaves/ 目錄需可被 named 進程寫入(通常屬於 named:named)。dig @從DNS_IP abc.com AXFR 可驗證區域傳送是否正常。本文示範了在 CentOS 5 環境下,利用 BIND chroot 環境快速建立主從 DNS 架構的完整流程。掌握此流程後,可輕鬆擴展至多域名、多子網、IPv6(AAAA 記錄)等進階場景,為企業網路提供穩健的名稱解析服務。