Я вижу такие строки, как
Feb 13 21:45:48 srv named[2355]: address not available resolving 'secure.gravatar.com/A/IN': 2a04:fa87:ffff::c6b5:7405#53
Feb 13 21:42:29 srv named[2355]: address not available resolving 'la1.akamaiedge.net/AAAA/IN': 2001:500:a8::e#53
в /var/log/syslog
несмотря на бег bind
только в режиме IPv4
srv # cat /etc/default/bind9
# run resolvconf?
RESOLVCONF=no
# startup options for the server
OPTIONS="-u bind -4"
Почему это так?
Если система использует systemd, то редактируя /etc/default/bind9
не будет иметь никакого эффекта.
редактировать /lib/systemd/system/bind9.service
файл вместо этого и добавьте -4
возможность ExecStart
переменная. Я использую Ubuntu 16, и мне пришлось это сделать.
ExecStart=/usr/sbin/named -f -4 -u bind
Также дважды проверьте, что после перезапуска named
работает с -4
вариант.
На самом деле есть ошибка, связанная с этой путаницей конфигурации https://bugs.launchpad.net/ubuntu/+source/bind9/+bug/1565060
В -4
Параметр только изменения указывает привязке прослушивать и отвечать на пакеты IPv4. Это не отключает использование AAAA
записи.
Так есть ли способ отказаться от адресов IPv6 в привязке?
Если это то, что вы действительно хотите, вы можете настроить конфигурацию привязки, включив в нее следующее. Вы должны отключить проверку dnssec, так как вы удаляете действительные записи.
options {
...
dnssec-enable no;
filter-aaaa-on-v4 yes;
...
};
В качестве альтернативы добавлению -4
к named
командная строка (которая работает, но может быть неудобной в зависимости от того, как named
запущен), также можно добавить в конфигурацию следующее с аналогичным эффектом, касающимся отсутствия попыток подключения через IPv6:
server ::/0 {
bogus yes;
};
Это помечает серверы с адресами IPv6 как фальшивка, предотвращая запросы к этим адресам.
Это, вероятно, само собой разумеется, но оба эти варианта следует использовать только в средах без глобального подключения IPv6, где named
постоянно регистрирует подобные ошибки для всего.
Если вы сталкиваетесь только с некоторыми случайными проблемами с подключением к определенным серверам, это не повод отключать использование всего протокола с вашей стороны.