在我的 2 节点 PowerDNS 集群的主节点上,我在测试环境中找到了部署到生产环境的所有细节,并在日志中收到以下错误:
Request to queue notification for domain 'domain.example' was processed, but no valid nameservers or ALSO-NOTIFYs found. Not notifying!
这与该域上的 NS / A 记录有关,只是我现在找不到我要做什么,看来我的配置是正确的。
主配置:
allow-axfr-ips=10.10.30.32
master=yes
slave=no
从属配置:
allow-axfr-ips=10.10.30.31
master=no
slave=yes
在从属节点上我还在数据库中添加了以下记录:
MariaDB [powerdns]> select * from supermasters;
+-------------+--------------------+---------+
| ip | nameserver | account |
+-------------+--------------------+---------+
| 10.10.30.31 | ns2.domain.example | admin |
+-------------+--------------------+---------+
我个人认为这与数据库有关,正如我在文档中读到的:
• 名称服务器必须正确设置为 NS 域记录,即为每个从属服务器定义一个 NS 和 A 记录。
• 必须在域表中按域配置主/从状态。即,类型列必须分别为 MASTER 或 SLAVE,而从属需要在域表的主列中列出以逗号分隔的主节点 IP 地址列表。
但我不明白它想表达什么。有人知道吗?
编辑:
在我的从属服务器上,域表中有一个错误记录,导致从属服务器将请求发送到错误的服务器,如下所示:
Apr 8 08:56:03 hfr-nl-dns02 pdns_server[2582]: While checking domain freshness: Query to '10.10.30.32' for SOA of 'ns2.domain.example.' did not return a SOA
Apr 8 09:02:12 hfr-nl-dns02 pdns_server[2582]: message repeated 3 times: [ While checking domain freshness: Query to '10.10.30.32' for SOA of 'ns2.domain.example.' did not return a SOA]
将 IP 更改为 .31 后,出现以下错误:
掌握:
Apr 8 10:07:45 hfr-nl-dns01 pdns_server[11803]: AXFR of domain 'ns2.domain.example' initiated by 10.10.30.32
Apr 8 10:07:45 hfr-nl-dns01 pdns_server[11803]: AXFR of domain 'ns2.domain.example' allowed: client IP 10.10.30.32 is in allow-axfr-ips
Apr 8 10:07:45 hfr-nl-dns01 pdns_server[11803]: AXFR of domain 'ns2.domain.example' failed: not authoritative
奴隶:
Apr 8 10:07:45 hfr-nl-dns02 pdns_server[2737]: Initiating transfer of 'ns2.domain.example' from remote '10.10.30.31'
Apr 8 10:07:45 hfr-nl-dns02 pdns_server[2737]: Unable to AXFR zone 'ns2.domain.example' from remote '10.10.30.31' (resolver): AXFR chunk error: Server Not Authoritative for zone / Not Authorized
编辑 2:主数据库记录,在这里用 IP 来查看,也尝试使用 /etc/hosts 文件中定义的名称服务器的主机名。
+----+-----------+--------------------+------+----------------------------------------------------------------------------------+------+------+----------+-----------+------+
| id | domain_id | name | type | content | ttl | prio | disabled | ordername | auth |
+----+-----------+--------------------+------+----------------------------------------------------------------------------------+------+------+----------+-----------+------+
| 14 | 5 | domain.example | NS | 10.10.30.31 | 3600 | 0 | 0 | NULL | 1 |
| 15 | 5 | domain.example | NS | 10.10.30.32 | 3600 | 0 | 0 | NULL | 1 |
答案1
我设法为那些想知道的人弄清楚了这一部分:
• 名称服务器必须正确设置为 NS 域记录,即为每个从属服务器定义一个 NS 和 A 记录。
这意味着域服务器应该托管在其上的域名;ns1.example.com / ns2.example.com。添加一个包含托管服务器的公共 IP 的 A 记录和一个指向该 A 记录的 NS 记录。