配置绑定 - 启动命名服务时出现 SOA 记录错误

配置绑定 - 启动命名服务时出现 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

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

答案1

日志条目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,确保这些字符串匹配。

答案2

似乎没人注意到,你只是忘记了原始域名末尾的点……就像我似乎没有注意到,这个帖子已经有 9 年的历史了

相关内容