LINUX.ORG.RU
ФорумAdmin

PowerDNS-recursor не отдаёт ответ dig

 


0

3

Джентльмены, всем приятного дня, гор денег и лучших тяночек. Прошу помощи в решении оконфузившей меня проблемы. В общем есть связки и pdns, pdns-recursor и всё это пряется за dnsdist.

Интересный феномен заключается в том, что nslookup и host норм резолвят мою зону, а вот dig не желает.

dig gitlab.prod.test @10.50.8.54 -t A

; <<>> DiG 9.18.12-0ubuntu0.22.04.3-Ubuntu <<>> gitlab.prod.test @10.50.8.54 -t A
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 13405
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

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

;; Query time: 15 msec
;; SERVER: 10.50.8.54#53(10.50.8.54) (UDP)
;; WHEN: Wed Nov 22 08:21:43 UTC 2023
;; MSG SIZE  rcvd: 45

nslookup gitlab.prod.test. 10.50.8.54
Server:         10.50.8.54
Address:        10.50.8.54#53

Non-authoritative answer:
Name:   gitlab.prod.test
Address: 10.50.8.24

Кофиг днс авторитативный:

local-address=127.0.0.1
local-port=25301
guardian=yes

Конфиг рекурсора

local-address=127.0.0.1
local-port=25302
allow-from=127.0.0.1/8,10.50.8.0/24
hint-file=/usr/share/dns/root.hints
forward-zones=prod.test=127.0.0.1:25301;

И конфиг днсдиста

setLocal('127.0.0.1')
addLocal('10.50.8.54')
newServer({address='127.0.0.1:25301', pool='auth'})
newServer({address='127.0.0.1:25302', pool='recursor'})
recursive_ips = newNMG()
recursive_ips:addMask('127.0.0.1/32')
recursive_ips:addMask('10.50.8.0/24')
addAction(NetmaskGroupRule(recursive_ips), PoolAction('recursor'))
addAction(AllRule(), PoolAction('auth'))

Причём видится мне, что проблема именно в рекурсоре, потому как если я на самом хосте с днс делаю, то всё ок отдаётся.

dig gitlab.prod.test @127.0.0.1 -p25301 -t A

; <<>> DiG 9.18.12-0ubuntu0.22.04.3-Ubuntu <<>> gitlab.prod.test @127.0.0.1 -p25301 -t A
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36849
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;gitlab.prod.test.              IN      A

;; ANSWER SECTION:
gitlab.prod.test.       3600    IN      A       10.50.8.24

;; Query time: 4 msec
;; SERVER: 127.0.0.1#25301(127.0.0.1) (UDP)
;; WHEN: Wed Nov 22 08:26:19 UTC 2023
;; MSG SIZE  rcvd: 61

Призываю в тред мудрого анона, чтобы подсказку дал, где искать. Заранее всех целую.

P.S. dig любого другого сайта вне моей зоны выглядит вполне законым

dig ya.ru

; <<>> DiG 9.18.12-0ubuntu0.22.04.3-Ubuntu <<>> ya.ru
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43924
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

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

;; ANSWER SECTION:
ya.ru.                  600     IN      A       77.88.55.242
ya.ru.                  600     IN      A       5.255.255.242

;; Query time: 103 msec
;; SERVER: 10.50.8.54#53(10.50.8.54) (UDP)
;; WHEN: Wed Nov 22 08:31:44 UTC 2023
;; MSG SIZE  rcvd: 66

Проверь сниффером разницу в запросах dig & nslookup. Для dig был какой-то хитрый udp флаг, без которого pdns может вот так не раьотать.

Bers666 ★★★★★
()