我无法将子域名重定向到其他 DNS。
我有:
主要现有域名:d 和新子域名:
| 8412 | 42 | test1.d | NS | ns1.test.test1.d
| 8413 | 42 | test1.d | NS | ns2.test.test1.d
| 8414 | 42 | ns1.test.test1.d | A | 10.64.91.100
| 8415 | 42 | ns2.test.test1.d | A | 10.64.91.200
并返回:
dig admin.test1.d
; <<>> DiG 9.10.6 <<>> admin.test1.d
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23733
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 2, ADDITIONAL: 3
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;admin.test1.d. IN A
;; AUTHORITY SECTION:
test1.d. 60 IN NS ns1.test.test1.d.
test1.d. 60 IN NS ns2.test.test1.d.
;; ADDITIONAL SECTION:
ns2.test.test1.d. 60 IN A 10.64.91.200
ns1.test.test1.d. 60 IN A 10.64.91.100
但它不能正确返回记录。例如记录 A 是空的。
如果我要求 10.64.91.100 记录被正确返回。
dig @10.64.91.100 admin.test1.d
; <<>> DiG 9.10.6 <<>> @10.64.91.100 admin.test1.d
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27387
;; flags: qr aa rd; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;admin.test1.d. IN A
;; ANSWER SECTION:
admin.test1.d. 86400 IN A 10.64.91.50
我的配置pdns:
allow-axfr-ips=10.64.91.112
also-notify=10.64.91.112
only-notify=10.64.91.112
api=yes
api-key=XXXXXXXXX
daemon=yes
default-soa-content=ns1.test.eu1.d. admin.domain.pl. 0 10800 3600 604800 3600
default-ttl=3600
disable-axfr=no
guardian=yes
include-dir=/etc/powerdns/pdns.d
launch=
local-address=10.64.91.111
local-port=53
log-dns-details=on
loglevel=4
master=yes
receiver-threads=2
setgid=pdns
setuid=pdns
slave=no
webserver=yes
webserver-address=10.64.91.111
webserver-allow-from=10.64.91.20
webserver-port=8081
query-cache-ttl=60
MySQL的:
# MySQL Configuration
# Launch gmysql backend
launch+=gmysql
# gmysql parameters
gmysql-host=localhost
gmysql-port=3306
gmysql-dbname=XXXX
gmysql-user=XXXXX
gmysql-password=XXXXX
gmysql-dnssec=yes
# gmysql-socket=
有任何想法吗?
我看见
Powerdns 子域名和授权
和https://nsrc.org/workshops/2010/sanog16/raw-attachment/wiki/DNS/dns4-presentation.pdf
它应该可以工作。
在 10.64.91.100 和 10.64.91.100 中我使用 dnsdist。
/etc/dnsdist/dnsdist.conf
-- dnsdist configuration file, an example can be found in /usr/share/doc/dnsdist/examples/
-- disable security status polling via DNS
setLocal("0.0.0.0:53")
setACL({"0.0.0.0/0", "::/0"})
newServer({address="10.64.91.111:54"})
newServer({address="10.64.91.112:54"})
setServerPolicy(wrandom)
在 10.64.91.111 和 10.64.91.112 中我使用 PowerDNS Recursor。
cat /etc/powerdns/recursor.conf
local-address=10.64.91.111
local-port=54
allow-from=10.0.0.0/8, 127.0.0.0/8, 10.12.0.0/16, 10.13.0.0/16, 195.88.50.0/26, 10.66.0.0/16, 10.64.0.0/16
forward-zones=d=10.64.91.111:53
答案1
如果我理解正确的话,这似乎只是一个期望不匹配的情况。
在问题中的第一个dig
命令中,您似乎直接查询权威服务器,当被问及委派子区域中的名称时,它只会响应引荐信息。
这确实是对权威服务器的全部期望,这里没有什么意外发生。
如果要从客户端机器的角度进行全面测试(而不是仅执行获取最终答案所需的一系列查询中的一个步骤),您可以将查询定向到解析器服务器。如果这是基础架构中缺少的部分,那么可以是 PowerDNS Recursor(而不是 PowerDNS Authoritative)、Unbound、启用递归的 BIND、Knot Resolver 等。
这是在客户端计算机上配置的服务器类型(在resolv.conf
客户端操作系统具有的任何配置机制中),它将遵循委托链来实际获取客户端所要求的答案,而不是权威服务器,其角色只是提供其拥有的数据(并且在委托的情况下,仅发送问题中所见的推荐)。
答案2
好的,成功了。
我在 recursor.conf 中添加了 dont-query 并删除了 10.0.0.0/8。
默认值为:
默认值:127.0.0.0/8、10.0.0.0/8、100.64.0.0/10、169.254.0.0/16、192.168.0.0/16、172.16.0.0/12、::1/128、fc00::/7、fe80::/10、0.0.0.0/8、192.0.0.0/24、192.0.2.0/24、198.51.100.0/24、203.0.113.0/24、240.0.0.0/4、::/96、::ffff:0:0/96、100::/64、2001:db8::/32