Skip to content

Route IPv6 DNS servers through the VPN - #613

Merged
kasnder merged 1 commit into
masterfrom
agent/route-ipv6-dns
Jul 11, 2026
Merged

Route IPv6 DNS servers through the VPN#613
kasnder merged 1 commit into
masterfrom
agent/route-ipv6-dns

Conversation

@kasnder

@kasnder kasnder commented Jul 11, 2026

Copy link
Copy Markdown
Member

What changed

  • add a /128 VPN host route for every accepted IPv6 DNS server
  • reject link-local DNS resolvers, whose physical-interface scope cannot be preserved inside the VPN
  • retain the existing /32 routing behavior for local IPv4 DNS servers

Why

Follow-up to #604. That change correctly accepts IPv6 DNS on IPv6-only networks, but ULA resolvers (fc00::/7) are outside TrackerControl's general 2000::/3 IPv6 route. Accepting one without a host route can leave DNS unreachable or outside TrackerControl's filtering path. Link-local resolvers have the same problem plus an interface-scope requirement that the VPN cannot carry.

Impact

Global and ULA IPv6 DNS servers are explicitly captured by the VPN and remain subject to tracker filtering. Link-local resolvers fall through to the existing public DNS fallback instead of being advertised as unusable VPN DNS.

Validation

  • git diff --check
  • ./gradlew :app:compileGithubDebugJavaWithJavac (BUILD SUCCESSFUL)

On-device validation on an IPv6-only cellular network with a ULA resolver remains recommended.

@kasnder
kasnder merged commit 730a552 into master Jul 11, 2026
1 check passed
@kasnder
kasnder temporarily deployed to github-pages July 11, 2026 01:25 — with GitHub Pages Inactive
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant