feat: DoT (DNS over TLS) client upstream #89

Merged
razvandimescu merged 1 commits from feat/dot-client into main 2026-04-12 23:39:18 +08:00
razvandimescu commented 2026-04-12 23:35:22 +08:00 (Migrated from github.com)

Summary

  • Adds tls:// upstream support for DNS-over-TLS forwarding (RFC 7858)
  • New Upstream::Dot variant with per-upstream TLS connector
  • forward_dot: length-prefixed DNS query/response over TLS stream
  • parse_upstream handles tls://IP:PORT#hostname format (default port 853)

Example config:

[upstream]
address = ["tls://9.9.9.9#dns.quad9.net"]

Test plan

  • 222 tests pass, clippy clean
  • Manually verified against Quad9 DoT (tls://9.9.9.9#dns.quad9.net)
## Summary - Adds `tls://` upstream support for DNS-over-TLS forwarding (RFC 7858) - New `Upstream::Dot` variant with per-upstream TLS connector - `forward_dot`: length-prefixed DNS query/response over TLS stream - `parse_upstream` handles `tls://IP:PORT#hostname` format (default port 853) Example config: ```toml [upstream] address = ["tls://9.9.9.9#dns.quad9.net"] ``` ## Test plan - [x] 222 tests pass, clippy clean - [x] Manually verified against Quad9 DoT (`tls://9.9.9.9#dns.quad9.net`)
Sign in to join this conversation.