[comp.protocols.tcp-ip.domains] Changing SOA serial numbers

barrett@Daisy.EE.UND.AC.ZA (Alan P Barrett) (06/21/91)

Neil Rickert suggests the following as a method of changing the SOA
serial number from yyyymmddnn format to yymmddn format:

>  Start by using:
>       4199106150
> (i.e. with a superfluous leading 4).
> 
>  Use this format for a week, or so, till you are sure all outdate copies
> of your SOA record have timed out everywhere.  Then drop the leading '4'.

In 32-bit sequence space arithmetic, 4199106150 compares as *less* than
1991061500 (since the difference between them is larger than 2^31), so
the details of Neil's suggestion aren't quite right.

If you want to make the change in two steps, the serial number at the
middle step would have to be reasonable carefully chosen to avoid
exceeding the maximum permitted rate of change[*] (for example,
1991mmddnn --> 32000mmddn --> 1991mmddn would be OK).  I would wait for
the full length of the zone expire period between changes, because that
is the only way I know of being absolutely certain that the secondary
nameservers have expired the old copy of the zone.

On the other hand, if you don't mind breaking the rules, and if you are
on good terms with the folk who run all your secondary nameservers, you
could probably just change from yymmddnn to yymmddn in one step, and ask
all the secondaries to force a manual reload at some prearranged time.

--apb
Alan Barrett, Dept. of Electronic Eng., Univ. of Natal, Durban, South Africa
RFC822: barrett@ee.und.ac.za             Bang: m2xenix!quagga!undeed!barrett

[*] Although the RFCs don't say this in so many words, my reading of
RFC1034 and RFC1035 implies that the serial number must never be
incremented through half or more than half of the available 32-bit space
during any time period whose duration is less than or equal to the zone
expire period which was in effect at the start of the time period.  For
example, if right now you have serial number 1991061501 and an expire
period of 3 months, then three months from now the serial number must
still be less than 41388545149 (which is 2^31 more than the current
serial number).