Назад | Перейти на главную страницу

BIND 9: перезагрузка rndc не действует

Я использую порт BIND 9.10.2 на FreeBSD 10 в закрытой конфигурации, и у меня проблема rndc reload не принимает никаких изменений файла зоны (основного главного), даже если серийный номер SOA правильно увеличен.

Сама команда кажется успешной:

#rndc reload
server reload successful

В логах вижу:

May  9 16:03:47 y named[81516]: all zones loaded
May  9 16:03:47 y named[81516]: running

И пока только перезапуск named подхватывает обновления зоны.

rndc zonestatus my_zone.com печатает старый серийник. Итак, BIND каким-то образом не может перечитать файл зоны.

Как я могу это отладить?

Если это действительно динамически обновляемая зона (allow-update / update-policy указано), напрямую редактировать файл зоны небезопасно!

В такой настройке файл зоны поддерживает BIND; буферизация изменений в файле журнала (.jnl) и периодически перезаписывать сам файл зоны.

Ожидается, что все изменения в данных зоны будут происходить через протокол динамического обновления и управляться BIND, а не путем прямого изменения файла зоны. В любом случае изменение файла зоны вызовет несогласованное поведение, поскольку содержимое файла зоны не будет синхронизироваться с содержимым журнала и состоянием named.

Короче говоря, обычно вы вносите все изменения в такую ​​зону, используя динамические обновления (например, используя nsupdate или любой другой клиент), но если вам по какой-то причине абсолютно необходим прямой контроль над файлом зоны, вы можете временно приостановить динамические обновления, используя rndc freeze а затем возобновите использование rndc thaw). Приостановка обновлений - довольно назойливая операция (любые обновления не будут выполнены, а история изменений может быть стерта в зависимости от ixfr-from-differences), поэтому вам, вероятно, не следует этого делать во время нормальной работы.