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

BIND 實現父子域授權與轉發完整實戰:區域委派、Glue Record 與條件轉發配置

編輯:DNS 伺服器

實驗架構與目標

模擬企業總部 (北京) 與分公司 (上海) DNS 架構:總部為父域權威,授權子域給分公司獨立管理;分公司透過轉發器解析父域/其他外部域名。

節點角色IP權威區域
DNS1 (北京)父域 Master192.168.100.60abc.com
DNS2 (北京子域)子域 Master192.168.100.70bj.abc.com
DNS3 (上海子域)子域 Master192.168.100.80sh.abc.com
實驗拓撲圖

DNS1 (父域) 配置

1. 定義北京子域區域 (本地管理)


# /var/named/chroot/etc/named.rfc1912.zones
zone "bj.abc.com" IN {
    type master;
    file "bj.abc.com.db";
    allow-update { none; };
};

2. 建立北京子域區域檔


# cp -p abc.com.db bj.abc.com.db
# vim bj.abc.com.db
$TTL 86400
@ IN SOA ns.bj.abc.com. master.sina.com. (
    43 ; Serial
    1M ; Refresh
    1M ; Retry
    1W ; Expire
    1D ) ; Minimum
  IN NS ns.bj.abc.com.
ns IN A 192.168.100.60   ; 注意:此處指向 DNS1 自身
www IN A 2.2.2.2

3. 授權上海子域 (委派 + Glue Record)

編輯父域區域檔 abc.com.db,新增:


sh.abc.com. IN NS ns.sh.abc.com.
ns.sh.abc.com. IN A 192.168.100.80

關鍵:父域必須同時包含子域 NS 記錄與該 NS 的 A 記錄,否則會產生循環依賴 (查詢 NS 需先解析 NS)。

DNS2 (北京子域) 配置

同樣為 Master,獨立管理 bj.abc.com,配置同 DNS1 步驟 2。

DNS3 (上海子域) 配置

1. 主配置啟用外部查詢


# /var/named/chroot/etc/named.conf
options {
    listen-on port 53 { 192.168.100.80; 127.0.0.1; };
    allow-query { any; };
    recursion yes;
    dnssec-enable no;
    dnssec-validation no;
};

2. 定義子域區域


# /var/named/chroot/etc/named.rfc1912.zones
zone "sh.abc.com" IN {
    type master;
    file "sh.abc.com.db";
    allow-update { none; };
};

3. 建立子域區域檔


# cp -p abc.com.db sh.abc.com.db
# vim sh.abc.com.db
$TTL 86400
@ IN SOA ns.sh.abc.com. master.sina.com. (
    43 ; Serial
    1M ; Refresh
    1M ; Retry
    1W ; Expire
    1D ) ; Minimum
  IN NS ns.sh.abc.com.
ns IN A 192.168.100.80
www IN A 3.3.3.3

驗證測試與問題發現

  • 北京客戶端 (DNS → 192.168.100.60):**可解析 abc.com、bj.abc.com、sh.abc.com 三地 www**
  • 上海客戶端 (DNS → 192.168.100.80):**僅能解析 sh.abc.com 本地 www,無法解析父域與北京子域**

原因:上海 DNS3 無父域/北京子域權威記錄,且未配置轉發,遞迴查詢根域無法找到內部私有域名。

解決方案:在 DNS3 配置轉發器

方案一:無條件轉發器 (所有非本地查詢轉發)


# /var/named/chroot/etc/named.conf
options {
    ...
    forwarders { 192.168.100.60; };  # 轉發至父域 DNS1
    forward only;                    # 僅轉發,不嘗試迭代查詢
};

方案二:條件轉發器 (推薦,精準控制)


# /var/named/chroot/etc/named.rfc1912.zones
zone "abc.com" IN {
    type forward;
    forwarders { 192.168.100.60; };
};
zone "bj.abc.com" IN {
    type forward;
    forwarders { 192.168.100.60; };
};

優勢:僅指定內部域名轉發,外部公開域名 (如 google.com) 仍走正常根域迭代查詢,不經由 WAN 鏈路轉發,節省頻寬、降低延遲、避免單點故障。

二次驗證結果

上海客戶端現在可成功解析:

  • www.sh.abc.com → 本地權威返回 3.3.3.3
  • www.bj.abc.com → 轉發至 DNS1 → 返回 2.2.2.2
  • www.abc.com → 轉發至 DNS1 → 返回父域 www 記錄
  • www.google.com → 正常根域迭代查詢 → 返回公網 IP

父子域 DNS 架構設計總結表

層級配置要點關鍵記錄轉發策略
父域 (Master)定義所有子域委派子域 NS + Glue A 記錄無需轉發 (根域迭代)
子域 (Master)獨立管理區域資料SOA、NS、A、CNAME 等條件轉發至父域 (解析兄弟域/父域)
子域 (Slave)從父/主同步區域同 Master,唯讀同 Master

最佳實踐建議

  1. 序列號規範:全域採用 YYYYMMDDNN,每次修改遞增
  2. 時間同步:所有 DNS 節點強制 NTP 同步,確保區域傳送/驗證時間基準一致
  3. BIND 版本一致:主從節點 BIND 版本保持一致,避免區域傳送格式不兼容
  4. 權限最小化:allow-transfer 僅限指定從節點 IP,allow-query 限制內網網段
  5. 監控告警:監控 rndc status、區域傳送延遲、序列號一致性、關鍵 SRV/NS 記錄存活
  6. 文件化:區域檔納入版本控制 (Git),變更走 PR 流程
Copyright © Windows教程網 All Rights Reserved