У меня есть DNS-имя только для AAAA: superdns.cyberfusion.cloud
. С помощью nslookup
без опций в Debian 9 я получаю No answer
. С помощью nslookup
без опций в Ubuntu я получаю правильный ответ (запись AAAA). Однако я не могу воспроизвести такое поведение в Debian 10 ...
Ubuntu 18.04:
$ nslookup superdns.cyberfusion.cloud
Server: 2a0c:eb00:0:f7:185:233:175:142
Address: 2a0c:eb00:0:f7:185:233:175:142#53
Non-authoritative answer:
Name: superdns.cyberfusion.cloud
Address: 2a0c:eb00:0:f7:185:233:175:211
Debian 9 в моей сети:
$ nslookup superdns.cyberfusion.cloud
Server: 2a0c:eb00:0:f7:185:233:175:142
Address: 2a0c:eb00:0:f7:185:233:175:142#53
Non-authoritative answer:
*** Can't find superdns.cyberfusion.cloud: No answer
Debian 10 в моей сети:
$ nslookup superdns.cyberfusion.cloud
Server: 185.233.175.142
Address: 185.233.175.142#53
Non-authoritative answer:
Name: superdns.cyberfusion.cloud
Address: 2a0c:eb00:0:f7:185:233:175:211
Debian 9 вне моя сеть, использующая Cloudflare DNS:
$ nslookup superdns.cyberfusion.cloud
Server: 1.1.1.1
Address: 1.1.1.1#53
Non-authoritative answer:
*** Can't find superdns.cyberfusion.cloud: No answer
Итак, я начал искать различия между этими тремя машинами, но не смог найти никаких существенных ошибок конфигурации, связанных с поиском:
Тем же gai.conf
на всех машинах:
label ::1/128 0
label ::/0 1
label 2002::/16 2
label ::/96 3
label ::ffff:0:0/96 4
label fec0::/10 5
label fc00::/7 6
Нет systemd-resolved
на всех машинах:
$ systemctl status systemd-resolved
● systemd-resolved.service - Network Name Resolution
Loaded: loaded (/lib/systemd/system/systemd-resolved.service; disabled; vendor preset: enabled)
Drop-In: /lib/systemd/system/systemd-resolved.service.d
└─resolvconf.conf
Active: inactive (dead)
И, как упоминалось ранее, я тестировал на двух машинах Debian 9 с разными используемыми резолверами.
Единственная общая характеристика, которую я смог найти, это то, что машины с «неправильным» поведением работают под управлением Debian 9, тогда как машины с «правильным» поведением работают либо под Ubuntu, либо с Debian 10. Я искал в журналах изменений Debian 10 изменения, связанные с IPv6, но не смог. найти много.
Такое поведение не характерно для nslookup
. Я использую какую-то библиотеку Ruby DNS, которая не находит запись AAAA на машинах, где nslookup
не находит мои записи AAAA, но находит запись AAAA на машинах, где nslookup
находит мои записи AAAA, поэтому это должна быть общесистемная настройка.
Вопрос: помимо /etc/gai.conf
, какой механизм определяет, нужно ли вообще искать записи AAAA?
Если вы обратитесь к nslookup, содержащемуся в пакете dnsutils:
Я считаю, что функциональность, отсутствующая в Debian 9 (9.10.3), была добавлена в этот коммит:
4420. [func] nslookup теперь по умолчанию ищет AAAA, а также A.
Затем он был выпущен как бета-версия и версия-кандидат на выпуск, обе из которых позже стали стабильной 9.11.0 bind и ее утилит.
Чтобы получить более позднюю версию для Debian 9, вы можете проверить репозиторий stretch-backports, который позволит вам без проблем установить 9.11.5 на Debian 9.