Today a customer told me that they had messed up the serial numbers on their DNS zones such that their primary server now had a lower serial number than my secondary servers. Once that happens the secondary servers will stop doing zone transfers.
TL;DR: I chose the last one, “force a zone transfer”. I knew the BIND one but had to look up the PowerDNS way. Having me look things up for you is (sometimes) part of the BitFolk value proposition.
Increment the serial a bit
They could fix it by simply incrementing their serial again to make it larger than mine, but they wanted to continue to use a YYYYMMDDXX format for it.
Increment the serial a lot
As the serial is an unsigned integer, if you increment it far enough it will wrap around and become actually smaller than your desired new serial, which you can then set. This is a complicated process which is best described elsewhere.
Delete the zones and re-add them
If zones were deleted from all secondary servers then the next update should put them back. This would however cause an outage in between, so it’s not a good idea.
Force a zone transfer
Here’s how to force a zone transfer on BIND and PowerDNS.
$ rndc retransfer example.com
$ pdns_control retrieve example.com