Bind 无法加载区域,checkzone 说 OK,checkconf 不同意,从已知工作区域复制

Bind 无法加载区域,checkzone 说 OK,checkconf 不同意,从已知工作区域复制

我有一台在 Windows Server 2012 R2 上运行的 BIND9 (9.9.10-P2) 服务器。我有 2 个视图 - 内部和外部 - 为我拥有的域提供两个区域。

由于某种原因,尽管服务器启动时没有任何问题,但其中一个区域拒绝提供答案。在创建区域 2(问题区域)时,由于它的设置与区域 1 完全相同,我只需从区域 1 复制文件并用新名称替换相关位即可。Checkzone 说一切正常,没有显示任何错误。运行 checkconf -z 会为区域 2 抛出错误,但不会为区域 1 抛出错误:

C:\Program Files\ISC BIND 9\bin>named-checkconf.exe -z ..\etc\named.conf
C:\Program Files\ISC BIND 9\etc\zones\domain2.net.int:4: ignoring out-of-zone data
 (domain2.net)
C:\Program Files\ISC BIND 9\etc\zones\domain2.net.int:16: ignoring out-of-zone dat
a (dns.domain2.net)
zone domain2.net/IN: has 0 SOA records
zone domain2.net/IN: has no NS records
zone domain2.net/IN: not loaded due to errors.
internal/domain2.net/IN: bad zone
zone domain1.net/IN: loaded serial 2
C:\Program Files\ISC BIND 9\etc\zones\domain2.net.ext:4: ignoring out-of-zone data
 (domain2.net)
C:\Program Files\ISC BIND 9\etc\zones\domain2.net.ext:16: ignoring out-of-zone dat
a (dns.domain2.net)
zone domain2.net/IN: has 0 SOA records
zone domain2.net/IN: has no NS records
zone domain2.net/IN: not loaded due to errors.
external/domain2.net/IN: bad zone
zone domain1.net/IN: loaded serial 2

这是我的named.conf:

key "rndc-key" {
    algorithm hmac-md5;
    secret "nah";
};

controls {
    inet 127.0.0.1 port 953
    allow { 127.0.0.1; } keys { "rndc-key"; };
};

acl internals {
    127.0.0.0/8;
    10.16.0.0/22;
};

view "internal" {
    match-clients { internals; };
    recursion yes;
    zone "domain2.net" {
        type master;
        file "C:\Program Files\ISC BIND 9\etc\zones\domain2.net.int";
    };
    zone "domain1.net" {
        type master;
        file "C:\Program Files\ISC BIND 9\etc\zones\domain1.net.int";
    };
};
view "external" {
    match-clients { any; };
    recursion no;
    zone "domain2.net" {
        type master;
        file "C:\Program Files\ISC BIND 9\etc\zones\domain2.net.ext";
    };
    zone "domain1.net" {
        type master;
        file "C:\Program Files\ISC BIND 9\etc\zones\domain1.net.ext";
    };
};

这是区域 1/域 1,正在运行的区域:

; domain1.net
$TTL 86400
$ORIGIN domain1.net.
domain1.net.        IN  SOA dns.domain1.net. hostmaster (
                2           ; Serial number
                10800           ; Refresh
                3600            ; Retry
                604800          ; Expire
                86400)          ; Minimum TTL

            ; Nameservers
            IN  NS  dns.domain1.net.
            IN  NS  dns.domain2.net.

; Records
dns.domain1.net.    IN  A   127.0.0.2

这是损坏的区域 2/域 2:

; domain2.net
$TTL 86400
$ORIGIN domain2.net.
domain2.net.        IN  SOA dns.domain2.net. hostmaster (
                2           ; Serial number
                10800           ; Refresh
                3600            ; Retry
                604800          ; Expire
                86400)          ; Minimum TTL

            ; Nameservers
            IN  NS  dns.domain2.net.
            IN  NS  dns.domain1.net.

; Records
dns.domain2.net.    IN  A   127.0.0.6

据我所知,区域 1/域 1 运行良好。我多次删除、重新创建和复制这些文件,但均未成功。

答案1

它忽略了域 2 区域文件中的记录,认为它们是“区域外”,这似乎表明zone "domain2.net" {conf 的行与domain2.net.区域文件中的名称不匹配,这可能在域混淆中丢失了。

这两个字符串匹配吗确切地这两个文件之间(区域文件中的尾随点除外),是否存在特殊字符或编码差异?

相关内容