在 PowerDNS 中设置根提示不起作用

在 PowerDNS 中设置根提示不起作用

我想为一个项目自行创建一个完整的 DNS 层次结构。以下是我的设置:

  • BIND9 用于根名称服务器“。” (10.0.2.15)
  • 域“dnslab”的 BIND9 权威名称服务器
  • PowerDNS 作为递归解析器(10.0.2.10)
  • 所有软件都安装在运行 Ubuntu Server 22.04 的单独虚拟机上

我的根提示(=local_root.hints)文件的内容:

.               3600000      NS    nameserver.
nameserver.     3600000      A     10.0.2.15

PowerDNS配置的内容:

# defines address to listen on
local-address=10.0.2.10
allow-from=10.0.2.0/24

#################################
# hint-file     If set, load root hints from this file
#
hint-file=/etc/powerdns/local_root.hints

#################################
# include-dir   Include *.conf files from this directory
#
include-dir=/etc/powerdns/recursor.d

#################################
# lua-config-file       More powerful configuration options
#
lua-config-file=/etc/powerdns/recursor.lua

#################################
# dnssec        DNSSEC mode: off/process-no-validate/process (default)/log-fail/validate
#
dnssec=off

#################################
# dnssec-log-bogus      Log DNSSEC bogus validations
#
# dnssec-log-bogus=no

#################################
# config-dir    Location of configuration directory (recursor.conf)
#
config-dir=/etc/powerdns

#################################

我对 PowerDNS 解析器的查询及其答案:

dig @10.0.2.10 dnslab

; <<>> DiG 9.19.19-1-Debian <<>> @10.0.2.10 dnslab
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 61832
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

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

;; Query time: 3 msec
;; SERVER: 10.0.2.10#53(10.0.2.10) (UDP)
;; WHEN: Fri Feb 02 06:00:23 EST 2024
;; MSG SIZE  rcvd: 35

如果我想直接查询我的根,我会得到相同的答案(=SERVFAIL):

dig @10.0.2.10 . 

; <<>> DiG 9.19.19-1-Debian <<>> @10.0.2.10 .
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 39738
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

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

;; Query time: 7 msec
;; SERVER: 10.0.2.10#53(10.0.2.10) (UDP)
;; WHEN: Fri Feb 02 06:10:43 EST 2024
;; MSG SIZE  rcvd: 28

我还做了以下 2 个观察:

  1. 我在相同的设置中使用了两个不同的递归解析器(基于 BIND9 和基于 Unbound):在两种情况下,我都获得了正确的名称解析 => 委派等。有效(问题出在解析器级别)
  2. 如果我将 local_root.hints 文件的内容设置为合法的 Root 服务器,则解析有效:
.                        3600000      NS    A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.      3600000      A     198.41.0.4 

PowerDNS 是否可以进行一些检查来确定根名称服务器是否合法?

我真的很困惑,有人可以帮忙吗?

相关内容