Skip to content

Add AliDNS and Rethink DNS to the resolver fan-out#14

Merged
crhaglun merged 1 commit into
mainfrom
feat/add-resolvers-alidns-rethink
May 8, 2026
Merged

Add AliDNS and Rethink DNS to the resolver fan-out#14
crhaglun merged 1 commit into
mainfrom
feat/add-resolvers-alidns-rethink

Conversation

@fsjobeck

@fsjobeck fsjobeck commented May 4, 2026

Copy link
Copy Markdown
Member

Summary

Two new browser-callable DoH operators added to `DEFAULT_RESOLVERS`:

Operator Region Endpoint
AliDNS Anycast (CN — Alibaba) `dns.alidns.com/resolve`
Rethink DNS Anycast (IN — Bangalore) `basic.rethinkdns.com/dns-query`

Both verified by hand-probing the CORS preflight, JSON shape, and a live `example.com` query before adding. CSP `connect-src` extended with the two new hostnames in both prod and dev policies.

Why these two

After probing ~50 candidate DoH endpoints (15+ EU operators, 10 Asian, half a dozen US alternatives), only AliDNS and Rethink passed both gates a browser needs:

  • JSON DoH (`Accept: application/dns-json`)
  • CORS `*` on the actual `/resolve` or `/dns-query` endpoint

Total operator count is now 5 (Cloudflare US, Google US, DNS.SB SG, AliDNS CN, Rethink IN).

Why not European operators

Every European resolver tested (Mullvad SE, dns0.eu, DNS4EU, Switch.ch, Applied Privacy AT, DNSforge DE, FFmuc DE, Wikimedia NL, DNS.WATCH DE, Restena LU, njal.la SE, CZ.NIC, fdn.fr) refuses CORS on both JSON and wireformat endpoints. Operator-level decision; protocol version doesn't matter. Reaching them would require a self-hosted CORS proxy, which we ruled out (no-backend rule).

Test plan

  • CI green (build + audit + 116 vitest)
  • Open Codabind, click "Check propagation" on a populated zone — five dots per record now (one per operator)
  • Open the Import dropdown — three "From public DNS" options now show all five resolvers
  • Browser console clean: no CSP violations against the new hosts

🤖 Generated with Claude Code

Two more browser-callable DoH operators bring real operator/region
diversity to the propagation check and the import-from-DNS feature:

- AliDNS — anycast (CN-based, Alibaba). JSON DoH at
  https://dns.alidns.com/resolve, CORS \`*\`. Useful as a fleet
  separate from the US-led majors.
- Rethink DNS — anycast (IN-based, Bangalore). JSON DoH at
  https://basic.rethinkdns.com/dns-query, CORS \`*\`. Independent
  fleet on Cloudflare Workers infra but visibly different cache
  behavior in practice.

Both verified by probing CORS preflight, JSON shape, and a live
example.com query before adding. CSP \`connect-src\` (prod and dev)
extended with the two hostnames; nothing else added to the
allowlist.

European operators still aren't reachable from the browser — every
EU resolver tested (Mullvad, dns0.eu, DNS4EU, Switch.ch, Applied
Privacy, DNSforge, FFmuc, Wikimedia, DNS.WATCH, Restena, njal.la,
CZ.NIC, fdn.fr) refuses CORS on both JSON and wireformat. Reaching
them from a browser would require a self-hosted CORS proxy, which
breaks the no-backend rule we set up front.

Total operators now: 5 (Cloudflare US, Google US, DNS.SB SG,
AliDNS CN, Rethink IN). 116 tests still green, 0 audit findings.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@crhaglun crhaglun merged commit 9a7ff6d into main May 8, 2026
2 checks passed
crhaglun pushed a commit that referenced this pull request May 8, 2026
Add AliDNS and Rethink DNS to the resolver fan-out
crhaglun pushed a commit that referenced this pull request May 8, 2026
Add AliDNS and Rethink DNS to the resolver fan-out
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.

2 participants