Jak mogę zresetować lub obniżyć numer seryjny użyty w rekordzie SOA serwera BIND DNS?

9

Używam BIND jako mojego serwera DNS w domu. Do mojego początku urzędu (rekord SOA) zawsze używam numeru seryjnego w zalecanym formacie

RRRRMMDD ##

gdzie ##jest licznik zmian tego dnia.

Niestety zmieniłem numer seryjny i przez pomyłkę dodałem 1 cyfrę. Po zaktualizowaniu demona nazwy nie mogłem już tego przywrócić.

Czy istnieje możliwy sposób zresetowania numeru seryjnego / licznika w wewnętrznych bibliotekach BIND?

Mistrz świętowania
źródło
Znalazłem rozwiązanie na serverfault.com/questions/158021/…
Master of Celebration

Odpowiedzi:

8

„Biblioteki wewnętrzne BIND” nie dbają o numer seryjny. Liczy się tylko umowa między serwerem głównym a serwerami podrzędnymi. Innymi słowy, BIND z przyjemnością pozwoli ci zmniejszyć numer seryjny w pliku strefy bez reklamacji. Po prostu niewolnicy nie będą już otrzymywać aktualizacji.

Numery seryjne plików strefy są 32-bitowymi liczbami całkowitymi bez znaku i otaczają największą możliwą 32-bitową liczbę całkowitą bez znaku. Jest więc sposób na zmniejszenie numeru seryjnego poprzez jego wielokrotne zwiększanie, aż przewróci się i zbliży do zera. Istnieje maksymalna kwota, o którą możesz ją zwiększać naraz, więc musisz to robić iteracyjnie w kilku krokach:

  • Zwiększ numer seryjny o dużą wartość, ale nie więcej niż 2147483647
  • Poczekaj, aż wszystkie serwery podrzędne nadrobią zaległości i będą na bieżąco z bieżącym SOA.
  • Powtarzać

Zawsze możesz wybrać przyrost tak, aby nie trzeba było powtarzać więcej niż dwa razy.

Postępuj zgodnie z tym HOWTO .

Celada
źródło
13

Jeśli masz dostęp do powłoki wszystkich serwerów podrzędnych, istnieje prostsze rozwiązanie:

Aby móc zmniejszyć numer seryjny na serwerach podrzędnych, możesz zalogować się na serwerze podrzędnym i uruchomić rndc retransfer my.zone.name. Spowoduje to, że urządzenie podrzędne pobierze strefę z urządzenia nadrzędnego i całkowicie zignoruje numer seryjny.

Patrick
źródło
2
Tak, cóż, to zakładając, że masz dostęp do każdego z serwerów podrzędnych lub chcesz poprosić administratora każdego z nich o wykonanie tego polecenia.
Celada,
1
Bardzo przydatne, miej opinię! Ponieważ jednak druga odpowiedź nie jest ani zbędna, ani stara, możesz zmienić pierwszą linię na coś w rodzaju „Istnieje prostsze rozwiązanie, jeśli masz dostęp do powłoki wszystkich serwerów podrzędnych:”.
Heinzi