Я пытаюсь настроить djbdns ( tinydns
, dnscache
и axfrdns
) в частной сети. Существует вторичный сервер с BIND, который должен иметь возможность передавать зону, управляемую tinydns
(через axfrdns
).
Я получаю это сообщение об ошибке в журналах axfrdns
, когда я запрашиваю перенос зоны:
axfrdns: fatal: unable to read data.cdb: format error
Но на самом деле файл data.cdb
используется ] tinydns
, и он был сгенерирован tinydns-data
: видимых проблем с ним нет.
Если я выполняю запрос передачи вручную с помощью dig -t AXFR my_zone.com @ 172.16.2.200
, я получаю ответ, но только с первыми ~ 20 записями из данных
(в том же порядке: SOA
, NS
, MX
, A
, ...), заканчивается следующим сообщением :
;; communications error to 172.16.2.200#53: end of file
Очевидно, это не конец файла.
Полный ответ (имена были немного изменены в целях конфиденциальности):
$ dig -t AXFR my_zone.com @172.16.2.200
; <<>> DiG 9.11.5-P4-5.1+deb10u2-Debian <<>> -t AXFR my_zone.com @172.16.2.200
;; global options: +cmd
my_zone.com. 2560 IN SOA srv-10.my_zone.com. hostmaster.my_zone.com. 1603886087 16384 2048 1048576 2560
my_zone.com. 259200 IN NS srv-10.my_zone.com.
srv-10.my_zone.com. 259200 IN A 172.16.2.199
my_zone.com. 259200 IN NS vm01.my_zone.com.
vm01.my_zone.com. 259200 IN A 172.16.2.201
my_zone.com. 259200 IN NS vm02.my_zone.com.
vm02.my_zone.com. 259200 IN A 172.16.2.202
my_zone.com. 86400 IN MX 0 my_zone.mail.protection.outlook.com.
aaa.my_zone.com. 86400 IN A 78.40.125.202
bbb.my_zone.com. 86400 IN A 193.186.8.180
ccc.my_zone.com. 86400 IN A 78.40.125.106
ddd.my_zone.com. 86400 IN A 78.40.125.202
eee.my_zone.com. 86400 IN A 193.186.8.34
fff.my_zone.com. 86400 IN A 35.204.32.245
ggg.my_zone.com. 86400 IN A 192.168.10.81
hhh.my_zone.com. 86400 IN A 13.69.156.71
iii.my_zone.com. 86400 IN A 13.69.156.71
jjj.my_zone.com. 86400 IN A 13.69.156.71
my_zone.com. 86400 IN A 172.16.2.172
lll.my_zone.com. 86400 IN A 172.16.2.186
mmm.my_zone.com. 86400 IN A 172.16.2.187
nnn.my_zone.com. 86400 IN A 172.16.2.170
ooo.my_zone.com. 86400 IN A 172.16.2.171
;; communications error to 172.16.2.200#53: end of file
Я tcpdump
установил связь между клиентом axfrdns ( 172.16.2.170
) и сервером. ( 172.16.2.200
): Я не вижу в этом явной проблемы, за исключением того, что в какой-то момент сервер закрывает соединение (пакет № 22).
Я подумал, что это может быть что-то в файле данных
, но переключение записей, в которых он перестает отвечать (в приведенном выше примере, ooo.my_zone.com
), и запись после (скажем, ppp.my_zone.com
) не помогает. Теперь он останавливается на ppp.my_zone.com
(то есть в той же позиции, а не в той же записи).
Каждый пакет ответа на запрос в tcpdump содержит несколько ответов DNS.
Как я могу передать всю мою зону (~ 340 записей) с помощью axfrdns
? Или как дальше отлаживать?
У меня тоже была эта загадочная проблема после обновления ОС и перекомпиляции. Оказывается, мне просто нужно было увеличить softlimit (с 300 000 до 3 000 000) в /etc/axfrdns/run.