Skip to content

bind: add DNS-over-TLS forwarding and fix missing NS record in zones#5391

Open
mbedworth wants to merge 1 commit intoopnsense:masterfrom
mbedworth:bind-dot-and-zone-fixes
Open

bind: add DNS-over-TLS forwarding and fix missing NS record in zones#5391
mbedworth wants to merge 1 commit intoopnsense:masterfrom
mbedworth:bind-dot-and-zone-fixes

Conversation

@mbedworth
Copy link
Copy Markdown
Contributor

Summary

  • Add DNS-over-TLS (DoT) forwarding support via a new checkbox in BIND general settings
  • Fix zone template to include mandatory NS record after SOA

Problem

DoT forwarding: BIND 9.18+ supports forwarding queries via DNS-over-TLS (forwarders port 853 tls ephemeral), but the os-bind plugin has no way to enable this. Users who want encrypted upstream forwarding must manually edit named.conf after every restart.

Missing NS record: The domain.db zone template generates a SOA record but no NS record. BIND requires at least one NS record per zone — without it, the zone fails to load with has no NS records and all queries return SERVFAIL.

Changes

File Change
General.xml Add forwardertls BooleanField
forms/general.xml Add "DNS over TLS" checkbox after DNS Forwarders
named.conf template Use forwarders port 853 tls ephemeral when enabled
domain.db template Add NS {{ domaindb.dnsserver }}. after SOA

Test plan

  • Enable BIND with DNS Forwarders configured (e.g. 1.1.1.1, 9.9.9.9)
  • Check "DNS over TLS" checkbox, save and apply
  • Verify named.conf contains forwarders port 853 tls ephemeral
  • Verify dig @localhost google.com resolves (DoT working)
  • Uncheck "DNS over TLS", verify plain forwarders line is generated
  • Create a primary zone, verify zone file contains NS record
  • Verify zone loads without errors (named-checkzone)

Tested on OPNsense 26.1.6 with BIND 9.20.20.

Add a 'DNS over TLS' checkbox to the BIND general settings that enables
forwarding queries to upstream resolvers via DoT (port 853) using BIND
9.18+ tls ephemeral mode. When disabled, plain UDP forwarding is used
as before.

Changes:
- General.xml: add forwardertls BooleanField
- general.xml form: add DNS over TLS checkbox after DNS Forwarders
- named.conf template: use 'forwarders port 853 tls ephemeral' when
  forwardertls is enabled
@mbedworth mbedworth force-pushed the bind-dot-and-zone-fixes branch from 59db951 to c10fca9 Compare April 11, 2026 19:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant