委托子域名获得授权但没有答案

委托子域名获得授权但没有答案

我在使用 powerdns 委派子域名时遇到了一些麻烦。我的设置非常简单。

示例.com

2 个 powerdns 服务器。1 个主服务器,1 个从服务器。

Zone Config 
example.com     SOA      ns1.example.com
example.com     NS       ns1.example.com
example.com     NS       ns2.example.com

ns1.example.com A        192.168.0.1
ns2.example.com A        192.168.0.2

sub.example.com NS       ns1.sub.example.com
sub.example.com NS       ns2.sub.example.com

ns1.sub.example.com A    192.168.10.1
ns2.sub.example.com A    192.168.10.2

然后我的子域名如下所示:

另外 2 个 powerdns 服务器。1 个主服务器,1 个从服务器。

sub.example.com SOA      ns1.sub.example.com
sub.example.com NS       ns1.sub.example.com
sub.example.com NS       ns2.sub.example.com

ns1.sub.example.com A    192.168.10.1
ns1.sub.example.com A    192.168.10.2

ubuntutest.sub.example.com A 192.168.10.10

当我在子域上的 ubuntutest 主机上的主机上时,我可以很好地解析 NS,并且由于我在子域上设置了递归,因此我可以解析 example.com 上的地址

当我在 example.com 域上的主机上时,我可以很好地解析 example.com 上的内容。但是我无法解析子域上的设备。

当我挖掘子域时,我得到以下输出,显示权限但没有答案。

    olly@master:~$ dig sub.example.com. ns

; <<>> DiG 9.9.5-11ubuntu1.3-Ubuntu <<>> sub.example.com. ns
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60134
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 3, ADDITIONAL: 4

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 2800
;; QUESTION SECTION:
;sub.example.com.       IN  NS

;; AUTHORITY SECTION:
sub.example.com.    86400   IN  NS  ns1.sub.example.com.
sub.example.com.    86400   IN  NS  ns2.sub.example.com.

;; ADDITIONAL SECTION:
ns1.sub.example.com.    86400   IN  A   192.168.10.1
ns2.sub.example.com.    86400   IN  A   192.168.10.2


;; Query time: 3 msec
;; SERVER: 10.3.16.4#53(10.3.16.4)
;; WHEN: Mon Mar 21 16:20:16 GMT 2016
;; MSG SIZE  rcvd: 147

有人见过这个吗?如果有,我错过了什么?

多谢 :)

答案1

您的命令:

$ dig sub.example.com. ns

仅要求提供名称服务器 (NS) 记录,因此这就是您所获得的全部信息。

答案2

您获得的答案是推荐,因此零答案是正常的。

权威服务器提供的引用必须满足以下条件:

  • 未设置aa(权威答案)位
  • 零答案
  • 包含名称服务器权限的权限部分正在委托给
  • 仅当遵循转介需要胶水记录时,附加部分才是强制性的,这里就是这种情况。

NS 记录的权威版本由您委托权限的服务器保存。在这种情况下提供答案部分是不正确的。RFC 2181在这一点上非常清楚:

... 指示区域切割的 NS 记录是所创建子区域的属性,该子区域或其任何子域的来源的任何其他记录也是如此。区域的服务器不应返回与另一个区域的名称相关的查询的权威答案,其中包括区域切割处的 NS 记录,也许还有 A 记录,除非它恰好也是另一个区域的服务器。


至于为什么您获得了引荐,但您没有提供足够的信息来确定这一点。猜测一下,这似乎意味着10.3.16.4包含 的权威副本example.com。引荐对指向 的存根解析器(即 OS 解析器库)没有帮助10.3.16.4;只有递归服务器才会追踪引荐。

我怀疑您已经实现了需要转发器的引荐。如何实现该引荐10.3.16.4(未提供任何操作系统或软件)超出了本问题的范围。

答案3

非常感谢 Andrew B(以访客身份发帖,因此无法发表评论)

我在 example.com 上运行了 2 个 powerdns 授权服务器(主服务器、从服务器),并带有 MySQL 后端复制。在 ubuntu 14.04 上运行。

主服务器的 pdn.conf(192.168.0.1)

allow-recursion=0.0.0.0/0
recursor=8.8.8.8
allow-axfr-ips=192.168.0.2/32
config-dir=/etc/powerdns
daemon=yes
disable-axfr=no
guardian=yes
local-address=0.0.0.0
local-port=53
log-dns-details=on
log-failed-updates=on
loglevel=3
module-dir=/usr/lib/powerdns
master=yes
slave=no
setgid=pdns
setuid=pdns
socket-dir=/var/run
version-string=powerdns
include-dir=/etc/powerdns/pdns.d

对于 sub.example.com,我在私有云上运行此域名。它也有 2 个 powerdns 名称服务器,带有 mysql 后端。在 debian jessie 上运行。

主服务器 (192.168.10.1) 的 pdns.conf

# General Config
allow-recursion=0.0.0.0/0
recursor=192.168.0.1
setgid=pdns
setuid=pdns
config-dir=/etc/powerdns
socket-dir=/var/run
guardian=yes
daemon=yes
disable-axfr=no
local-address=0.0.0.0
local-port=53
master=no
slave=yes
cache-ttl=0
query-cache-ttl=0
negquery-cache-ttl=0
out-of-zone-additional-processing=no
do-ipv6-additional-processing=no

我的想法是,使用递归器的私有云用户可以通过 example.com 域退出。example.com 域上的用户可以使用 sub.example.com 访问在私有云上运行的服务。

相关内容