<div dir="ltr">Hi,<br><br>I have an odd problem; that I can't figure out how to get around.<br><br>Short version: If unbound decides it needs to look up a name that it got as an NS record, it ignores stub-zones when figuring out where to talk to.<br>
<br><br>Long version:<br>I have, in my unbound configuration on my core office resolver:<br>  stub-zone:<br>    name: "<a href="http://z1.example.com">z1.example.com</a>"<br>    stub-addr: 192.0.2.1<br>  stub-zone:<br>
    name: "<a href="http://z2.example.com">z2.example.com</a>"<br clear="all">    stub-addr: 192.0.2.2<br><br><br>If I do a lookup of "<a href="http://foo.z1.example.com">foo.z1.example.com</a>" against 192.0.2.1; I get an NS record of "<a href="http://dns.z2.example.com">dns.z2.example.com</a>". If I do an NS lookup against unbound, I get the same thing.<br>
<br>If I lookup <a href="http://dns.z2.example.com">dns.z2.example.com</a> against 192.0.2.2, I get an A record of 192.0.2.3. If I do this lookup against unbound, I get the same thing.<br><br>If I lookup <a href="http://host1.z1.example.com">host1.z1.example.com</a> against 192.0.2.3; I get the correct A record.<br>
<br>However, if I try to do all this in one go - lookup <a href="http://host.z1.example.com">host.z1.example.com</a> against unbound - it doesn't work. What appears to happen is that unbound correctly determines that it should use <a href="http://dns.z2.example.com">dns.z2.example.com</a> as the nameserver; but when looking up that name itself, it ignores the "stub-zone" for <a href="http://z2.example.com">z2.example.com</a>, and follows the normal DNS chain - which means it goes out to the Internet, finds the nameservers for <a href="http://example.com">example.com</a>, and asks them. They, however, are _external_ nameservers, and know nothing about <a href="http://z2.example.com">z2.example.com</a> - so they say "no", and unbound then caches that no.<br>
<br>This doesn't always happen - as best I can figure, if the name <a href="http://dns.z2.example.com">dns.z2.example.com</a> gets looked up by something outside the unbound box first (i.e. manually) while there is no cached entry, then the stub-zone will be taken into account, and the response cached. Then, when unbound wants to look up <a href="http://dns.z2.example.com">dns.z2.example.com</a> itself (because it just got that NS record from 192.0.2.1) it uses the cached entry and all is fine - until, of course, the record expires.<br>
<br><br><br>Does anyone have an idea of how I can convince unbound to use the stub-zone even for its own lookups?<br><br>Unbound 1.4.19 on CentOS 6.4.<br><br><br>Thanks,<br>-- <br>Jarrod Lowe

</div>