configuration绑定 – 启动命名服务时关于SOAlogging的错误

从设置绑定服务器到现在已经太长了。 我最近创build了很多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"; 

然后我创build了一个新的区域文件/var/named/domain.com.zone,这样configuration。 我无法弄清楚我在顶部的SOAlogging做了什么错误,或者我的区域文件还有其他问题:

 $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 

我使用了下面的资源,我发现自己变得越来越迷失在区域文件中。 这是多宿主不同服务环境中唯一的服务器:

绑定configuration文件: http : //centos.org/docs/2/rhl-rg-en-7.2/s1-bind-configuration.html

DNS示例区域: http : //www.zytrax.com/books/dns/ch6/mydomain.html

日志条目SOA record not at top of zone (domain.com.domain.com)暗示有什么不对劲; 文件顶部的SOAlogging不被视为应该由该区域文件处理的域的条目。

这可能是由$ORIGIN domain.com行与named.conf文件中的zone "domain.com" IN { line中的行不匹配导致的,或者是由于实际不匹配或类似于UTF-8string处理问题。

在这种情况下,一个简单的解决方法是简单地从区域文件中删除$ORIGIN行; 它将根据named.conf的区域定义自动生成,确保这些string匹配。