How to enable DNSSEC and Secure SNI on stubby?

etc/config/stubby

config stubby 'global'
	option manual '0'
	option trigger 'wan'
	list dns_transport 'GETDNS_TRANSPORT_TLS'
	option tls_authentication '1'
	option tls_query_padding_blocksize '128'
	option edns_client_subnet_private '1'
	option idle_timeout '10000'
	option round_robin_upstreams '1'
	list listen_address '127.0.0.1@5453'
	list listen_address '0::1@5453'
	option appdata_dir '/tmp/stubby'
	dnssec_return_status 'GETDNS_EXTENSION_TRUE'

Should I add dnssec_return_status '0'

etc/config/dhcp

config dnsmasq
	option domainneeded '1'
	option localise_queries '1'
	option rebind_protection '1'
	option rebind_localhost '1'
	option local '/lan/'
	option domain 'lan'
	option expandhosts '1'
	option cachesize '1000'
	option authoritative '1'
	option readethers '1'
	option leasefile '/tmp/dhcp.leases'
	option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'
	option localservice '1'
	option ednspacket_max '1232'
	list server '127.0.0.1#5453'
	list server '0::1#5453'
	list rebind_domain 'time.android.com'
	option stripmac '1'
	option proxydnssec '1'

That is wrong there.

You should add option dnssec_return_status '1'
Then when you check your dynamically created configuration file (/var/etc/stubby/stubby.yml) you should see there
dnssec_return_status: GETDNS_EXTENSION_TRUE
See https://dnsprivacy.org/dns_privacy_daemon_-_stubby/configuring_stubby/#dnssec

1 Like

Same cloudflare page sends you to help page to set up your browser to use ECH. That has very little to do with the router. Default is trust DoH, not DNS, so you have to make your dnsmasq a trusted resolver...

Does generated stubby.yml reference valid dnssec trust root?

1 Like

Or use quad9 and let them handle it:

1 Like

or you could just configure dnsmasq to require DNSSEC validation.

More info here.

2 Likes