<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Apr 25, 2019 at 3:14 PM Frank Altpeter <<a href="mailto:frank.altpeter@gmail.com">frank.altpeter@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div></div><div>I've come up with a very strange behaviour and after some quite intensive search, I wasn't able to find any information about that topic.</div><div><br></div><div>I'm running a powerdns-4.1.8 with mysql-backend on my master, and a 4.1.8 with mysql-backend on the slave. Master zones are configured as MASTER, so notifies are sent.</div><div><br></div><div>In case it's relevant, the master has the setting</div><div><div>default-soa-edit=INCEPTION-INCREMENT<br></div></div><div>for convenience. I like the retro-style of the serials. The zones are not signed, though.</div><div><br></div><div>Now, when updating a zone via "pdnsutil edit-zone", I'm currently required to update the serial afterwards. But after doing that, the serial values between master and slave are different. As you see in the below example, it's even different between the database entry and the data that gets output on a dns query:</div><div><br></div><div>- step 1 - manually increase serial<br></div><div><div>root@master:~ # pdnsutil increase-serial einhorn.bar</div><div>SOA serial for zone einhorn.bar set to 2019042505<br></div><div><br></div><div>- step 2 - verify database entry</div><div>root@master:~ # echo "select content from records where name = 'einhorn.bar' and type='SOA'" | mysql pdns</div><div>content</div><div><a href="http://ns1.foxalpha.de" target="_blank">ns1.foxalpha.de</a>. <a href="http://frank.altpeter.de" target="_blank">frank.altpeter.de</a>. 2019042505 10800 3600 604800 3600</div><div><br></div><div>root@slave:~ # echo "select content from records where name = 'einhorn.bar' and type='SOA'" | mysql pdns</div><div>content</div><div><a href="http://ns1.foxalpha.de" target="_blank">ns1.foxalpha.de</a> <a href="http://frank.altpeter.de" target="_blank">frank.altpeter.de</a> 2019042507 10800 3600 604800 3600</div><div><br></div><div>- step 3 - verify dns output</div><div>user@workstation ~ % dig +short +noshort @<a href="http://ns1.foxalpha.de" target="_blank">ns1.foxalpha.de</a> einhorn.bar soa</div><div>einhorn.bar.<span style="white-space:pre-wrap">            </span>3600<span style="white-space:pre-wrap">    </span>IN<span style="white-space:pre-wrap">      </span>SOA<span style="white-space:pre-wrap">     </span><a href="http://ns1.foxalpha.de" target="_blank">ns1.foxalpha.de</a>. <a href="http://frank.altpeter.de" target="_blank">frank.altpeter.de</a>. 2019042507 10800 3600 604800 3600</div><div><br></div><div>user@workstation ~ % dig +short +noshort @<a href="http://s-dns.irz42.net" target="_blank">s-dns.irz42.net</a> einhorn.bar soa</div><div>einhorn.bar.<span style="white-space:pre-wrap">              </span>3600<span style="white-space:pre-wrap">    </span>IN<span style="white-space:pre-wrap">      </span>SOA<span style="white-space:pre-wrap">     </span><a href="http://ns1.foxalpha.de" target="_blank">ns1.foxalpha.de</a>. <a href="http://frank.altpeter.de" target="_blank">frank.altpeter.de</a>. 2019042509 10800 3600 604800 3600</div><div><br></div><div>You see, serial in master's db is 5, output on dns query is 7, so this is what slave's AXFR gets, therefore slave's database entry is 7, and slave's output on dns query is 9.</div><div>So, it seems that powerdns is adding 2 to any database serial value. But why? Problem is, that it makes incredible problems when it comes to serial update and freshness monitoring. Also, some of my customers that use the same slave server are using bind, which seems to make lots of problems for them when slave's serial doesn't match master's serial.<br></div></div><div><br></div><div>Does anyone have an idea what's wrong here?</div></div></div></div></div></blockquote><div><br></div><div>I believe the INCEPTION-INCREMENT behaves as documented [1] in your case, because it's within two days of inception [2] (as it's a Thursday), which will trigger the condition to add 2 and then increment by INCEPTION-age in YYYYMMDDSS format. (The actual why for that it does that is not very clear to me, though.)<br></div><div>Are you sure you've unset the default-soa-edit setting on the slaves? It seems that your '<a href="http://s-dns.irz42.net">s-dns.irz42.net</a>' host is performing another soa-edit. All other ouput seems to work as intended. Having secondary nameservers serve different SOA serials is indeed not okay<br></div><div><br></div><div>The broader question I have is why you're using this setting in the first place if you are serving only unsigned zones. Your backend already has the 'retro-style' serials, so I'm not sure what's in it for you by setting it (what 'convenience'?). But I may not fully understand your issue perhaps.<br></div><div><br></div><div>[1]: <a href="https://doc.powerdns.com/authoritative/dnssec/operational.html#inception-increment">https://doc.powerdns.com/authoritative/dnssec/operational.html#inception-increment</a></div><div>[2]: <a href="https://doc.powerdns.com/authoritative/dnssec/operational.html#possible-soa-edit-values">https://doc.powerdns.com/authoritative/dnssec/operational.html#possible-soa-edit-values</a></div><div><br></div><div>HTH<br></div></div></div></div></div></div>