Как я могу сбросить или опустить серийный номер, используемый в записи SOA DNS-сервера BIND?

9

Я использую BIND в качестве DNS-сервера дома. Для моего начала полномочий (запись SOA) я всегда использую сериал в рекомендуемом формате

YYYYMMDD ##

где ##счетчик изменений в этот день.

К сожалению, я изменил сериал и добавил еще 1 цифру по ошибке. После обновления name-daemon я больше не мог это возвращать.

Есть ли возможный способ сброса серийного номера / счетчика во внутренних библиотеках BIND?

Мастер Празднования
источник
Я нашел решение на serverfault.com/questions/158021/…
Мастер празднования

Ответы:

8

«Внутренние библиотеки BIND» не заботятся о серийном номере. Только соглашение между главным сервером и подчиненными серверами имеет значение. Другими словами, BIND с радостью позволит вам уменьшить серийный номер в файле зоны без каких-либо жалоб. Просто рабы больше не будут получать обновления.

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

  • Увеличьте серийный номер с большим шагом, но не более 2147483647
  • Подождите, пока все подчиненные серверы не догонят и не будут в курсе текущей SOA.
  • Повторение

Вы всегда можете выбрать приращение так, что вам не нужно повторять более двух раз.

Следуйте этому HOWTO .

Celada
источник
13

Если у вас есть доступ оболочки ко всем подчиненным серверам, есть более простое решение:

Чтобы иметь возможность уменьшить серийный номер на подчиненных серверах, вы можете войти на подчиненный сервер и запустить rndc retransfer my.zone.name. Это приведет к тому, что ведомое устройство получит зону от мастера и полностью проигнорирует серийный номер.

Патрик
источник
2
Да, хорошо, это предполагает, что у вас есть доступ к каждому из подчиненных серверов, или вы хотите попросить администратора каждого из них выполнить эту команду для вас.
Селада
1
Очень полезно, есть upvote! Тем не менее, поскольку другой ответ не является ни ненужным, ни старым, вы можете изменить свою первую строку на что-то вроде «Существует более простое решение, если у вас есть доступ оболочки ко всем подчиненным серверам:».
Хайнци