pdns版本:0.2081g7b9b55d(主分支和4.1版)
pdns递归版本: 0.0.1960g7b9b55d (主分支和版本4.1)
泼尼赛版本: 1.2.0
在两个主题上有3台具有galera后端的服务器,有pdns +pdns-递归+ dnsdist。
图一中的康斯:
setuid=pdns-recursor
setgid=pdns-recursor
local-address=127.0.0.1
local-port=5301
hint-file=/etc/pdns-recursor/root.zone
allow-from=127.0.0.0/8setuid=pdns
setgid=pdns
launch=gmysql
gmysql-host=127.0.0.1
gmysql-user=powerdns_user
gmysql-dbname=powerdns
gmysql-password=
allow-axfr-ips=127.0.0.0/8, 192.0.2.5/32
cache-ttl=60
control-console=no
default-soa-name=ns2.example.ru
default-soa-mail=support@example.ru
default-ttl=3600
disable-axfr=no
local-port=5300
local-address=127.0.0.1
do-ipv6-additional-processing=yes
log-dns-queries=yes
logging-facility=0
loglevel=4
master=yes
max-queue-length=5000
max-tcp-connections=20setLocal('127.0.0.1')
addLocal('192.0.1.5')
setACL({'0.0.0.0/0', '::/0'}) -- Allow all IPs access
newServer({address='127.0.0.1:5300', pool='auth'})
newServer({address='127.0.0.1:5301', pool='recursor'})
recursive_ips = newNMG()
recursive_ips:addMask('127.0.0.0/8')
recursive_ips:addMask('192.0.1.0/24')
recursive_ips:addMask('192.0.2.0/24')
addAction(NetmaskGroupRule(recursive_ips), PoolAction('recursor'))
addAction(AllRule(), PoolAction('auth'))在权威服务器上有一些域。例如google123.com
当我试图从允许的recursive_ips (包括@127.0.0.1 )的i解析这个地址时,获得以下内容:
# dig ANY google123.com @192.0.1.5
; <<>> DiG 9.9.4-RedHat-9.9.4-51.el7_4.1 <<>> ANY google123.com @192.0.1.5
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 54293
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;google123.com. IN ANY
;; AUTHORITY SECTION:
com. 2118 IN SOA a.dns.ripn.net. hostmaster.ripn.net. 4032536 86400 14400 2592000 3600
;; Query time: 64 msec
;; SERVER: 192.0.1.5#53(192.0.1.5)
;; WHEN: Sat Jan 27 01:11:38 MSK 2018
;; MSG SIZE rcvd: 102如果我试图从另一个网络解析此域,请获取以下内容:
#dig ANY google123.com @192.0.1.5
;; Truncated, retrying in TCP mode.
; <<>> DiG 9.9.4-RedHat-9.9.4-51.el7_4.1 <<>> ANY google123.com @192.0.1.5
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34025
;; flags: qr aa rd; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 3
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1680
;; QUESTION SECTION:
;google123.com. IN ANY
;; ANSWER SECTION:
google123.com. 86400 IN A 192.0.1.7
google123.com. 86400 IN NS ns1.example.ru.
google123.com. 86400 IN NS ns2.example.ru.
google123.com. 86400 IN SOA ns1.example.ru. hostmaster.example.ru. 2018012603 28800 7200 604800 86400
;; ADDITIONAL SECTION:
ns1.example.ru. 86400 IN A 192.0.1.5
ns2.example.ru. 86400 IN A 192.0.2.5
;; Query time: 3 msec
;; SERVER: 192.0.1.5#53(192.0.1.5)
;; WHEN: Fri Jan 26 23:16:29 CET 2018
;; MSG SIZE rcvd: 181似乎,这个递归器得到了答案,也没什么问题。
如何从recursive_ips中的IP中设置dnsdist以获得有关权威域记录的答案。我试过不同的方法,但没有人工作。
发布于 2018-01-26 23:39:51
Dnsdist将使用第一个匹配操作。使用您的配置,它将根据源地址的不同,更喜欢“递归”池,或者以其他方式使用"auth“池。Ie,其中一个或另一个将用于回答当前的查询,而不是两者的某种组合。
根据结果,听起来您在pdns-auth上的域没有授权,所以当查询转到pdns-rec时,它无法解析您的本地域。
解决这个问题的方法有多种,具体取决于最终目标是什么。
使pdns-rec与域
选项
forward-zones配置pdns-rec,专门告诉它在哪里找到您的域(例如forward-zones=example.org=192.0.2.1, example.net=192.0.2.1)。这显然只在本地工作,如果启用了dnssec验证,则可能需要配置负信任锚(addNTA in Lua配置)。发送有关区域的查询。
SuffixMatchNode,并将其与规则结合起来。我认为您可以执行类似于addAction(AndRule({ NetmaskGroupRule(recursive_ips), NotRule(SuffixMatchNodeRule(my_zones)) }), PoolAction('recursor'))的操作(甚至只需将后缀内联列出)。https://serverfault.com/questions/894353
复制相似问题