Обнаружил, что заметка Настройка кэширующего DNS-сервера BIND в связке с resolvconf в новых релизах Debian больше не работает. Вспомнил об аналоге resolvconf под названием openresolv, который я когда-то нашёл, но воспользоваться которым пока не доводилось. Решил попробовать и openresolv заработал как надо. Спешу поделиться рецептом.
Первым делом установим openresolv:
# apt-get install openresolv
Приведём его файл конфигурации /etc/resolvconf.conf к следующему виду:
resolv_conf=/etc/resolv.conf name_servers=127.0.0.1 named_options=/var/run/named/named.options
Обновим файлы с DNS-серверами при помощи следующей команды:
# resolvconf -u
В файле /var/run/named/named.options можно увидеть фрагмент конфигруации BIND, которую можно подключить к основной конфигурации. В моём случае он выглядит следующим образом:
# Generated by resolvconf forward first; forwarders { 109.195.144.4; 5.3.3.3; 81.30.199.5; 81.30.199.94; };
Чтобы включить этот фрагмент в конфигурацию BIND, впишем в файл /etc/bind9/named.conf.options одну строчку:
include "/var/run/named/named.options";
Ещё раз обновим файлы с DNS-серверами при помощи команды:
# resolvconf -u
В процессе обновления BIND будет автоматически перезапущен, так что в его файл конфигурации будет вписан актуальный список вышестоящих рекурсивных DNS-серверов.
Список интерфейсов, с которых взяты DNS-серверы, можно узнать при помощи следующей команды:
# resolvconf -i
В моём случае она вывела такой список:
ppp0 vlan3
Список DNS-серверов, полученных через эти интерфейсы, можно узнать при помощи такой команды:
# resolvconf -l
В моём случае вывод был таким:
# resolv.conf from ppp0 # Generated by ppp.ip-up for ppp0 nameserver 109.195.144.4 nameserver 5.3.3.3 # resolv.conf from vlan3 # resolv.conf for vlan3 domain ipoe3.ufanet.ru nameserver 81.30.199.5 nameserver 81.30.199.94