<div dir="ltr">Hi,<div><br></div><div>I have had a DNS server with a dynamic zone that allows updates running for a fair number of years. However, I discovered yesterday that this setup no longer works and I cannot see anything in the documentation that indicates why. Unfortunately, I did not notice when this broke, so it may have been a while ago. Here's my setup:</div><div><br></div><div>Starting with a plain Ubuntu 24.04 server (also tried with 22.04 as well as 24.04 + the ISC PPA) that has static network configuration and systemd-resolved disabled plus bind9 package installed.</div><div><br></div><div>Config:</div><div>/etc/bind/named.conf.options:<br></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><font face="monospace">options {</font></div><div><font face="monospace">   directory "/var/cache/bind";</font></div><div><font face="monospace">   dnssec-validation no;</font></div><div><font face="monospace">   listen-on { any; };</font></div><div><font face="monospace">   listen-on-v6 { none; };</font></div><div><font face="monospace">};</font></div></blockquote><div><br></div><div>/etc/bind/named.conf.local:<br></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><font face="monospace">zone "<a href="http://dyn.example.com/" target="_blank">dyn.example.com</a>" {</font></div><div><font face="monospace">     type primary;</font></div><div><font face="monospace">     masterfile-format text;</font></div><div><font face="monospace">     check-names ignore;</font></div><div><font face="monospace">     file "/var/lib/bind/<a href="http://db.dyn.example.com/" target="_blank">db.dyn.example.com</a>";</font></div><div><font face="monospace">     update-policy {</font></div><div><font face="monospace">        grant local-ddns zonesub any;</font></div><div><font face="monospace">        grant * self . any;</font></div><div><font face="monospace">     };</font></div><div><font face="monospace">};</font></div></blockquote><div><br></div><div>/var/lib/bind/<a href="http://db.dyn.example.com/" target="_blank">db.dyn.example.com</a>:<br></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><font face="monospace">$ORIGIN .</font></div><div><font face="monospace">$TTL 60</font></div><div><font face="monospace"><a href="http://dyn.example.com/" target="_blank">dyn.example.com</a> IN SOA 127.0.0.1. <a href="http://admins.example.com/" target="_blank">admins.example.com</a>. (2024080306 300 300 604800 60)</font></div><div><font face="monospace"> NS 127.0.0.1.</font></div></blockquote><div><br></div><div>Then I run from the command-line (better run this from an empty directory or else the wild-cards may pick up the wrong files):</div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><font face="monospace">dnssec-keygen -a ECDSAP384SHA384 -n host -K . -T KEY <a href="http://test.dyn.example.com/" target="_blank">test.dyn.example.com</a></font></div><div><font face="monospace">nsupdate -4l <<<$'update add '"$(sed -e 's/ IN / 60 /' ./*.key)"$'\nsend\n'</font></div><div><font face="monospace">nsupdate -k *.private <<<$'server 127.0.0.1\nupdate add <a href="http://test.dyn.example.com/" target="_blank">test.dyn.example.com</a>. 60 IN A 10.200.20.28\nsend\n'</font></div></blockquote><div><br></div><div>The first command generates a key-pair, the second uses the local session key to add the public key into the zone and the last one is supposed to use the newly added key to add an address.</div><div>It is the last command that fails with "REFUSED" and I cannot figure out what's wrong. I'm fairly sure nothing has changed on my end and that this simplified example is a fair representation of what used to work. In any case, I believe this example <i>should</i> work according to the docs.</div><div><br></div><div>Any ideas?</div><div><br></div><div>Cheers,</div><div>Seb</div></div>