Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux 架設 DNS 伺服器完整實戰:BIND 9 設定步驟與區域檔案詳解

編輯:Linux 教學

DNS 解析流程速覽

用戶輸入 www.redhat.com → 本機 /etc/hosts → 本機快取 → 遞迴查詢本地 DNS 伺服器 → 若無授權記錄 → 向根域名伺服器 (.) 遞迴查詢 → 逐層解析至授權伺服器 → 回應 IP → 本地 DNS 快取並回應用戶。

DNS 遞迴查詢流程圖

實作環境

  • OS:CentOS 7/8 (最小安裝)
  • DNS 伺服器 IP:192.168.100.10
  • 網域:example.com
  • 關閉 SELinux、Firewalld (或開放 53/tcp,udp)

步驟 1:安裝 BIND

yum install -y bind bind-utils
systemctl enable named --now

BIND 安裝過程

步驟 2:設定主機名為 FQDN

hostnamectl set-hostname ns1.example.com
# /etc/hosts 同步新增
192.168.100.10 ns1.example.com ns1

主機名設定 hosts 檔案

步驟 3:理解並修改主設定檔 /etc/named.conf

named.conf 詳細註解 options 區塊說明 zone 區塊說明

關鍵修改點

options {
    listen-on port 53 { 127.0.0.1; 192.168.100.10; };
    listen-on-v6 port 53 { ::1; };
    directory "/var/named";
    allow-query { localhost; 192.168.100.0/24; };  # 允許查詢的客戶端網段
    recursion yes;                                 # 提供遞迴查詢
    dnssec-enable yes;
    dnssec-validation yes;
};

zone "example.com" IN {
    type master;
    file "example.com.zone";
    allow-update { none; };
};

修改後的 named.conf zone 檔案範例

步驟 4:建立正向區域檔 /var/named/example.com.zone

$TTL 86400
@   IN  SOA ns1.example.com. admin.example.com. (
        2023100101 ; Serial
        3600       ; Refresh
        1800       ; Retry
        604800     ; Expire
        86400 )    ; Minimum
@   IN  NS  ns1.example.com.
ns1 IN  A   192.168.100.10
www IN  A   192.168.100.20
mail IN  A   192.168.100.30
@   IN  MX 10 mail.example.com.

步驟 5:建立反向區域檔 (選做)

# /etc/named.conf 新增
zone "100.168.192.in-addr.arpa" IN {
    type master;
    file "192.168.100.zone";
};

# /var/named/192.168.100.zone
$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. ( ... )
@ IN NS ns1.example.com.
10 IN PTR ns1.example.com.
20 IN PTR www.example.com.
30 IN PTR mail.example.com.

步驟 6:語法檢查與啟動

named-checkconf
named-checkzone example.com /var/named/example.com.zone
systemctl restart named
ss -lntup | grep :53  # 確認監聽

客戶端驗證

dig @192.168.100.10 www.example.com
nslookup mail.example.com 192.168.100.10
安全提醒:生產環境務必啟用 DNSSEC、限制遞迴查詢來源 (allow-recursion)、設定 RNDC 金鑰管理、定期更新根區域 named.ca。
Copyright © Windows教程網 All Rights Reserved