我的主要 BIND 服务器没有权威地应答,而辅助服务器按预期工作。哪里出了问题?

我的主要 BIND 服务器没有权威地应答,而辅助服务器按预期工作。哪里出了问题?

我的 BIND9 设置似乎有问题。

我的第一个服务器答案(ns1.m2osw.com)响应不具有权威性(没有“aa”标志)。这是我目前得到的输出:

$ dig @ns1.m2osw.com m2osw.com

; <<>> DiG 9.11.3-1ubuntu1.18-Ubuntu <<>> @ns1.m2osw.com m2osw.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50582
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;m2osw.com.         IN  A

;; ANSWER SECTION:
m2osw.com.      3600    IN  A   165.232.146.181

;; Query time: 24 msec
;; SERVER: 165.232.146.181#53(165.232.146.181)
;; WHEN: Wed Mar 22 17:30:34 PDT 2023
;; MSG SIZE  rcvd: 54

另一方面,我的辅助服务器(从属服务器)返回一个答案,并按预期设置“aa”标志:

$ dig @ns2.m2osw.com m2osw.com

; <<>> DiG 9.11.3-1ubuntu1.18-Ubuntu <<>> @ns2.m2osw.com m2osw.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48685
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 192861169293b4a6ced2041c641b9daf4141e9f698003f54 (good)
;; QUESTION SECTION:
;m2osw.com.         IN  A

;; ANSWER SECTION:
m2osw.com.      3600    IN  A   165.232.146.181

;; AUTHORITY SECTION:
m2osw.com.      3600    IN  NS  ns1.m2osw.com.
m2osw.com.      3600    IN  NS  ns2.m2osw.com.

;; ADDITIONAL SECTION:
ns1.m2osw.com.      3600    IN  A   165.232.146.181
ns2.m2osw.com.      3600    IN  A   96.67.192.225

;; Query time: 0 msec
;; SERVER: 96.67.192.225#53(96.67.192.225)
;; WHEN: Wed Mar 22 17:30:39 PDT 2023
;; MSG SIZE  rcvd: 150

除了区域之外,设置非常相似,其中一个服务器显示“主服务器”(ns1),另一个显示“从服务器”(ns2)。如果有的话,我希望从服务器在没有“aa”标志的情况下回答。

以下是主区域定义:

zone "m2osw.com" {
  type master;
  file "/var/lib/bind/m2osw.com.zone";
  allow-transfer { trusted-servers; };
  check-names warn;
  max-journal-size 2M;
};

以及相应的从属:

zone "m2osw.com" {
  type slave;
  masters { list-of-masters; };
  allow-transfer { none; };
  file "/var/cache/bind/m2osw.com.zone";
};

此外,两台服务器都对另一台服务器启用了递归:

allow-recursion { trusted-servers; };

我已经多次更改我的域名列表,我可以说,除了缺少“aa”标志外,它通常运行良好......


更新

以下是区域文件的顶部:

$ORIGIN .
$TTL 3600
m2osw.com IN SOA ns1.m2osw.com. hostmaster.m2osw.com. (242 10800 180 1209600 300)
    NS ns1.m2osw.com.
    NS ns2.m2osw.com.
    MX 10   mail.m2osw.com.
    A   165.232.146.181
$ORIGIN m2osw.com.
mail    A   165.232.146.181
ns1     A   165.232.146.181
ns2     A   96.67.192.225
www     A   165.232.146.181
...other TXT & A fields...

如果有帮助的话。

答案1

区域文件中存在错误。

请注意,第一行中 $ORIGIN 设置为 root,但您针对它声明了 2 个 NS、一个 MX 和一个 A 记录。必须$ORIGIN m2osw.com.位于这些记录之上。

我原本以为你的日志会在这里显示错误。

它应该变成:

$ORIGIN .
$TTL 3600
m2osw.com IN SOA ns1.m2osw.com. hostmaster.m2osw.com. (242 10800 180 1209600 300)
$ORIGIN m2osw.com.
    NS ns1.m2osw.com.
    NS ns2.m2osw.com.
    MX 10   mail.m2osw.com.
    A   165.232.146.181
www A   165.232.146.181
...other TXT & A fields...

或者,为了减少此类错误,请尝试:

$ORIGIN m2osw.com.
$TTL 3600
@ IN SOA ns1.m2osw.com. hostmaster.m2osw.com. (242 10800 180 1209600 300)
  NS ns1.m2osw.com.
  NS ns2.m2osw.com.
  MX 10   mail.m2osw.com.
A   165.232.146.181
www A   165.232.146.181
...other TXT & A fields...

甚至...

$ORIGIN @
$TTL 3600
@ IN SOA ns1.m2osw.com. hostmaster.m2osw.com. (242 10800 180 1209600 300)
  NS ns1.m2osw.com.
  NS ns2.m2osw.com.
  MX 10   mail.m2osw.com.
A   165.232.146.181
www A   165.232.146.181
...other TXT & A fields...

您可能需要更新序列号。

相关内容