Рейтинг:-1

bind9: переадресация на локальный сервер имен не работает, когда интернет-соединение не работает

флаг cz

У меня есть следующая установка:

Экземпляр bind9 (обозначенный ниже как L) на очень ограниченном оборудовании для разрешения имен в моих локальных сетях. Является авторитетным мастером для зоны home.mydomain.com. Запросы к этому серверу работают и возвращают homedns.home.mydomian.com как NS и его IP 192.168.1.77 как дополнительную запись.

Экземпляр bind9 (обозначенный ниже как M) для разрешения сетевых и локальных имен. Здесь не используется опция глобальной переадресации. Настроена форвард зона:

зона "home.mydomain.com" в {
        введите вперед;
        только вперед;
        экспедиторы { 192.168.1.77; };
};

Примечание 1: mydomain.com — это существующий зарегистрированный домен, но для home.mydomain.com нет записи.

Примечание 2: версия M для bind9 очень старая: 9.8.1-P1.

Эта настройка работает до тех пор, пока есть подключение к Интернету, но запросы с локальными именами не отвечают, когда соединение не работает. Лог — это системный журнал

30 августа, 09:05:42 M named[1611]: ошибка (нет действительного DS) при разрешении «xxx.home.mydomain.com/A/IN»: 192.168.1.77#53

Захват сети для успешного разрешения, когда соединение установлено, показывает, что M запрашивает mydomain.com в Интернете после получения ответа от L. В ответе от М клиенту изменен РАЗДЕЛ AUTHORITY:

копать до L:

;; РАЗДЕЛ ОТВЕТОВ:
syslog.home.mydomain.com. 3600 В А 192.168.1.99

;; ОТДЕЛ ПОЛНОМОЧИЙ:
home.mydomain.com. 3600 В NS homedns.home.mydomain.com.

;; ДОПОЛНИТЕЛЬНЫЙ РАЗДЕЛ:
homedns.home.mydomain.com. 3600 В А 192.168.1.77

копать в М:

;; РАЗДЕЛ ОТВЕТОВ:
syslog.home.mydomain.com. 2134 В А 192.168.1.99

;; ОТДЕЛ ПОЛНОМОЧИЙ:
сеть. 171334 В NS j.gtld-servers.net.
сеть. 171334 В NS m.gtld-servers.net.
сеть. 171334 В NS i.gtld-servers.net.
сеть. 171334 В NS k.gtld-servers.net.
сеть. 171334 В NS g.gtld-servers.net.
сеть. 171334 В NS, например, gtld-servers.net.
сеть. 171334 В NS h.gtld-servers.net.
сеть. 171334 В NS a.gtld-servers.net.
сеть. 171334 В NS d.gtld-servers.net.
сеть. 171334 В NS f.gtld-servers.net.
сеть. 171334 В NS b.gtld-servers.net.
сеть. 171334 В NS c.gtld-servers.net.
сеть. 171334 В NS l.gtld-servers.net.

Я не понимаю, почему M не просто возвращает ответ от L клиенту, и у меня не осталось никаких идей, что я мог бы попытаться избежать запроса в Интернет для переадресованной зоны.

Рейтинг:0
флаг cn

Запись журнала, указанная в вопросе, предполагает, что ошибка связана с ошибкой проверки DNSSEC при отсутствии подключения к Интернету.

Обратите внимание на часть сообщения об ошибке «нет действительного DS»:

30 августа, 09:05:42 M named[1611]: ошибка (нет действительного DS) при разрешении «xxx.home.example.com/A/IN»: 192.168.1.77#53

Предположительно, ответы на запросы, попадающие в эту зону переадресации, обычно принимаются только потому, что пример.com зона существует как неподписанная зона (т. е. существует доказательство отсутствия ДС в составе делегации надлежащего пример.com зона), но когда это доказательство больше не может быть получено из-за отсутствия подключения к Интернету, ответы больше не могут быть приняты, поскольку больше невозможно проверить, должны ли они быть подписаны и как.

Одним из вариантов было бы подписать home.example.com зону и добавить статический якорь доверия специально для этой зоны.

Другим было бы выборочное отключение проверки; текущий BIND имеет подтвердить-за исключением параметр, который позволяет вам указать список доменных имен, для которых не следует выполнять проверку, согласно:

подтвердить-за исключением

Это указывает список доменных имен, на которых и ниже которых проверка DNSSEC не должна выполняться, независимо от наличия якоря доверия на этих именах или выше. Это можно использовать, например, при настройке домена верхнего уровня, предназначенного только для локального использования, чтобы отсутствие безопасного делегирования для этого домена в корневой зоне не приводило к ошибкам проверки. (Это похоже на настройку отрицательного якоря доверия, за исключением того, что это постоянная конфигурация, тогда как отрицательные якоря доверия истекают и удаляются по истечении заданного периода времени.)

Существует также возможность полностью отключить проверку с помощью dnssec-валидация вариант, который я бы не рекомендовал, если этот экземпляр BIND используется шире, чем этот конкретный форвард.

(Обратите внимание, я заменил доменное имя, использованное в вопросе, на пример.com поскольку кажется маловероятным, что вопрос имеет какое-либо отношение к доменному имени, на которое он ссылается, или к компании, которой он принадлежит.)

флаг cz
Это звучит как отличное объяснение проблемы. К сожалению, очень старая версия bind 9.8.1 не поддерживает validate-except, и документ на bind9.readthedocs.io больше не распространяется на эту версию. На данный момент я не могу проверить решение. Обновление до последней версии Ubuntu LTS запланировано на конец этого года. Наверное, мне придется подождать до тех пор.
флаг cz
Последняя версия bind9 вместе с validate-except отлично решает проблему.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.