<!DOCTYPE html><html><head><title></title></head><body><div>I've been wanting to be able to enable DNSSEC validation for only specific zones in dnsmasq for some time, and the features added in this commit allow me to do it!</div><div><br></div><div>---<br></div><div>57f0489f384193f7c962fb2a20c9e2e867f86039</div><div><br></div><div>Redesign the interaction between DNSSEC vaildation and per-domain servers.</div><div><br></div><div>This should just work in all cases now. If the normal chain-of-trust exists into</div><div>the delegated domain then whether the domain is signed or not, DNSSEC</div><div>validation will function normally. In the case the delgated domain</div><div>is an "overlay" on top of the global DNS and no NS and/or DS records</div><div>exist connecting it to the global dns, then if the domain is</div><div>unsigned the situation will be handled by synthesising a</div><div>proof-of-non-existance-of-DS for the domain and queries will be</div><div>answered unvalidated; this action will be logged. A signed domain</div><div>without chain-of-trust can be validated if a suitable trust-anchor</div><div>is provided using --trust-anchor.</div><div><br></div><div>Thanks to Uwe Kleine-König for prompting this change, and contributing</div><div>valuable insights into what could be improved.</div><div>---</div><div><br></div><div>I tested this version of dnsmasq on my laptop at a hotel; the hotel's resolver returns RRSIG RRs when requested, but does not return DS or DNSKEY RRs when requested, so I cannot enable DNSSEC validation for all zones because any signed zone would result in failure. However, I've got a personal zone that I want validated responses from (so that OpenSSH can trust the AD bit and use SSHFP records), and I've included a trust-anchor for that zone in the dnsmasq configuration.</div><div><br></div><div>---</div><div>no-daemon</div><div>port=9953</div><div>no-resolv</div><div>dnssec</div><div>trust-anchor=.</div><div>server=/./10.1.10.1</div><div>trust-anchor=km6g.us,11487,13,2,693434c00cf3f8cdca0a8960f7b6df9913c61e619b2c46d4b10d612a99496b0d</div><div>server=/<a href="http://km6g.us/fddd:a03f:2620:189::6e">km6g.us/fddd:a03f:2620:189::6e</a></div><div>---</div><div><br></div><div>I've also included a 'server' setting to forward queries for that zone to its hidden primary auth server, for cases where the local resolver from the hotel/etc. won't even return RRSIG RRs when requested.</div><div><br></div><div>This works smoothly; the NTA for the root zone stops validation for any zone except km6g.us, and the TA for that zone allows validation of that zone to work as desired. Queries for names in that zone return the AD bit as they should.</div><div><br></div><div>Now I'll be eagerly anticipating both the release of dnsmasq 2.92 and its inclusion into OpenWrt :-)</div></body></html>