У нас есть ситуация, когда подчиненный сервер BIND не смог записать данные зоны в файловую систему. Когда этот сервер был перезагружен и BIND был перезапущен, он запустился с более старой версией файлов зоны, чем та, которая была в данный момент на главном сервере.
В течение этого времени он мог получать передачи IXFR от мастера, он просто не мог сохранить эти изменения на жестком диске.
Это заставило меня задуматься о том, каково ожидаемое поведение сервера BIND? Это похоже на небольшой недостаток дизайна, что он не проверил бы своего хозяина до ввода в эксплуатацию.
Для справки это версия привязки на ведомой стороне:
$ rpm -q bind
bind-9.8.2-0.47.rc1.el6_8.2.x86_64
Я нашел эту ссылку:
В котором говорится следующее:
Зона уведомляет и обновляет
Помимо перезапуска сервера или использования команд rndc для принудительной передачи зоны, существуют два механизма, которые заставляют подчиненные серверы проверять, является ли их копия зоны текущей. Процесс проверки и обновления называется обновлением зоны:
Я интерпретирую это как BIND, который не делает ничего особенного в начальной фазе.
Хм, не прочитал всю документацию полностью. На той же странице есть параграф, в котором говорится следующее:
Когда сервер перезагружается, он отправляет уведомления для зон, которые он загрузил (в случае, если они были обновлены, пока он не работал). Точно так же при загрузке подчиненных зон вновь перезапущенная именованная зона инициирует обновление для каждой зоны (с использованием измененных временных интервалов, чтобы все обновления не инициировались одновременно).
Таким образом, это звучит так, как будто подчиненные устройства BIND отправят уведомление мастеру, а затем координируют IXFR, чтобы догнать и начать обслуживать обновленную информацию о зоне.