<div dir="ltr"><font face="arial, helvetica, sans-serif"><br></font><div><font face="arial, helvetica, sans-serif">We recently upgraded our main DNS server to Bind 9.9 from 9.8.</font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif">There were occasional reports of a new host not being known to<br>other DNS servers, which receive zone transfers via "also-notify".</font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif">This failure on downstream NS servers seemed to go along with warnings in the log...</font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif"><span style="color:rgb(0,0,0);background-color:rgb(255,255,255)">zone serial (XXXXXXXXXX) unchanged. zone may fail to transfer to sla</span>ves.<br>
<br>Our configuration isn't built around master and slave, but that is the error nonetheless.</font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif">Our serial was set to increment, but it was based around YYYYMMDDHH<br>so for some reason in the newer Bind 9.9 we were not going to get<br>more than one zone transfer per hour.  I decided we needed a new<br>scheme, and given the serial number limits I would need to lose 2 digits<br>from the year and add two for the minute: YYMMDDHHMM.</font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif">So that would mean a serial going from something like 2018050911</font></div><div><font face="arial, helvetica, sans-serif">to 1805091130.  Bind doesn't like that change as the number would<br>be going backwards.  Research reveals there are some rules<br>about the serial number incrementing.  Essentially we need to</font></div><div><font face="arial, helvetica, sans-serif">get the odometer to roll over so we can introduce the smaller</font></div><div><font face="arial, helvetica, sans-serif">numerical serial number.</font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif">Here are the rules of the Bind serial number game:</font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif">- The equivalent of 99999999 on the odometer is 2^32 - 1 , or 4294967295</font></div><div><font face="arial, helvetica, sans-serif">- Serial number must go forward, never backward</font></div><div><font face="arial, helvetica, sans-serif">- Serial number can never advance more than 2147483647 at a time</font></div><div><font face="arial, helvetica, sans-serif">- Wait for all secondary DNS to get the transferred zone before incrementing again</font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif">In our case we have <a href="http://d-zone.ca">d-zone.ca</a> as an additional DNS service,<br>and they have an unknown number of round robin DNS servers<br>behind one hosted NS like <span style="color:rgb(0,0,0);background-color:rgb(255,255,255)"><a href="http://ns1.d-zone.ca">ns1.d-zone.ca</a>.</span><br></font></div><div><font color="#000000" face="arial, helvetica, sans-serif"><br></font></div><div><font color="#000000" face="arial, helvetica, sans-serif">That required help from their support to get zone updates forced<br>through with a target serial number.  Checking repeatly with<br>"host -t soa <a href="http://example.com">example.com</a> ns1.d-zone" allowed confirmation</font></div><div><font color="#000000" face="arial, helvetica, sans-serif">al</font><span style="color:rgb(0,0,0);font-family:arial,helvetica,sans-serif">l the ghost NS behind </span><span style="color:rgb(0,0,0);font-family:arial,helvetica,sans-serif">that name were giving the same answer.</span></div><div><font color="#000000" face="arial, helvetica, sans-serif"><br></font></div><div><font color="#000000" face="arial, helvetica, sans-serif">To get from our serial starting with 2018 to one starting with 1805<br>I used this sequence of serial number updates with waiting and checking<br>between each update:</font></div><div><font color="#000000" face="arial, helvetica, sans-serif"><br clear="none">
    2018050912<br clear="none">
    4165534560<br clear="none">
    4294967295<br clear="none">
    1805091405<br></font></div><div><font color="#000000" face="arial, helvetica, sans-serif"><br></font></div><div><font color="#000000" face="arial, helvetica, sans-serif">Hopefully that might be useful to someone.  I found a lot of<br>the information on stack exchange and so on, but it was fragmented</font></div><div><font color="#000000" face="arial, helvetica, sans-serif">and some answers used broken links.</font></div><div><br></div><div><br></div></div>