Domain-Name-System
配置綁定 - 啟動命名服務時有關 SOA 記錄的錯誤
自從我設置綁定伺服器以來已經太久了。我最近創建了很多 Windows DNS 伺服器,所以我想在 CentOS 6 上嘗試一下。不幸的是,我在設置區域文件時遇到了很多麻煩。
主機名:shield.domain.com
當我嘗試啟動服務時,我收到以下錯誤消息:
domain.com.zone:3: SOA record not at top of zone (domain.com.domain.com) zone domain.com/IN: loading from master file domain.com.zone failed: not at top of zone zone domain.com/IN: not loaded due to errors. _default/domain.com/IN: not at top of zone zone localhost.localdomain/IN: loaded serial 0 zone localhost/IN: loaded serial 0 zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0 zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0 zone 0.in-addr.arpa/IN: loaded serial 0
我修改了 /etc/named.conf 文件以包含我的新區域,並且文件設置如下:
options { listen-on port 53 { 127.0.0.1; }; listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { localhost; }; recursion yes; dnssec-enable yes; dnssec-validation yes; dnssec-lookaside auto; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; forwarders { <IP_ADDR_1>;<IP_ADDR_2>;<IP_ADDR_3>;}; }; zone "domain.com" IN { type master; file "domain.com.zone"; allow-update { none; }; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key";
然後我創建了一個新的區域文件 /var/named/domain.com.zone ,它被配置為這樣。我無法弄清楚我在頂部的 SOA 記錄中做錯了什麼,或者我的區域文件是否存在其他問題:
$ORIGIN domain.com $TTL 86400 @ IN SOA shield.domain.com. hostmaster.domain.com. ( 2013008413 ; serial 21600 ; refresh after 6 hours 3600 ; retry after 1 hour 604800 ; expire after 1 week 86400 ) ; minimum TTL of 1 day IN NS shield.domain.com. IN A 10.10.0.175 shield IN A 10.10.0.175
我使用了以下資源,但我發現自己越來越迷失,茫然地盯著區域文件。這是環境中唯一多託管不同服務的伺服器:
綁定配置文件:http ://centos.org/docs/2/rhl-rg-en-7.2/s1-bind-configuration.html
日誌條目
SOA record not at top of zone (domain.com.domain.com)
暗示有問題;SOA
文件頂部的記錄不被視為應該由該區域文件處理的域的條目。這可能是由於文件中的行與
$ORIGIN domain.com
行不匹配引起的,可能是由於實際不匹配或類似 UTF-8 字元串處理問題。zone "domain.com" IN {``named.conf
在這種情況下,一個簡單的解決方法是簡單地
$ORIGIN
從區域文件中刪除該行;然後它將根據 中的區域定義自動建構named.conf
,確保這些字元串匹配。