Porównanie zaszyfrowanych protokołów DNS: DoT, DoH, DoQ
Porównanie Plain DNS, DoT, DoH, DoQ pod względem warstw, portów, wydajności i zastosowań, wraz z praktycznymi wskazówkami wyboru i konfiguracji.
Categories:
Szybka definicja
- Plain DNS: DNS w postaci jawnej, domyślnie UDP/53, w razie potrzeby TCP/53 (np. przycięcie odpowiedzi, transfer strefy).
- DoT: DNS over TLS, TLS na TCP, domyślny port 853 (RFC 7858/8310).
- DoH: DNS over HTTPS, oparte na HTTPS (HTTP/2 lub HTTP/3), domyślny port 443 (RFC 8484).
- DoQ: DNS over QUIC, oparte na QUIC + TLS 1.3, domyślny port UDP/853 (RFC 9250, IANA przypisało 853/udp).
Relacja warstw (uproszczony model TCP/IP)
- Warstwa aplikacji: HTTP, HTTPS, DNS (DoH to enkapsulacja DNS w HTTPS)
- Warstwa bezpieczeństwa: TLS (dla TCP lub QUIC)
- Warstwa transportowa: TCP, UDP, QUIC
- Warstwa sieciowa: IP
- Warstwa łącza: Ethernet itp.
- Warstwa fizyczna: skrętka/światłowód/bezprzewodowe
Podstawowe punkty
- Plain DNS działa na UDP/TCP, bez szyfrowania.
- DoT = TCP + TLS + DNS (dedykowany port 853).
- DoH = TCP/QUIC + TLS + HTTP(S) + DNS (port 443, współdzieli z HTTPS).
- DoQ = QUIC + TLS 1.3 + DNS (dedykowany port UDP/853).
graph TB
subgraph Warstwa aplikacji
A[HTTP]
A2[HTTPS]
C[DNS]
D[DoH DNS over HTTPS]
end
subgraph Warstwa bezpieczeństwa
E[TLS]
end
subgraph Warstwa transportowa
F[TCP]
G[UDP]
H[QUIC]
end
subgraph Warstwa sieciowa
I[IP]
end
subgraph Warstwa łącza
J[Ethernet]
end
subgraph Warstwa fizyczna
K[skrętka/światłowód/bezprzewodowe]
end
A2 --> F
A2 --> H
A --> F
C --> F
C --> G
D --> A2
E --> F
E --> H
F --> I
G --> I
H --> I
I --> J
J --> K
style D fill:#e1f5fe
style E fill:#fff3e0
Podstawy i sprostowania
- Plain DNS domyślnie korzysta z UDP/53, przy przycięciu odpowiedzi (bit TC) lub potrzebie niezawodności przełącza się na TCP/53.
- DoT buduje tunel TLS na TCP, domyślny port 853; można wykorzystać długotrwałe połączenia, zmniejszając narzut uzgadniania.
- DoH traktuje DNS jako zasób HTTPS (
application/dns-message), zwykle HTTP/2 lub HTTP/3, port 443, łatwe przejęcie przez zwykłe HTTPS. - DoQ bezpośrednio wykorzystuje QUIC (oparte na UDP) do DNS, niskie opóźnienia i brak blokady głowy kolejki, ale ekosystem nadal rośnie.
- Ogólne stwierdzenia typu „QUIC zawsze jest o X% szybszy” nie są trafne; rzeczywista wydajność zależy od jakości sieci (utraty pakietów, jitter, RTT), możliwości ponownego użycia połączeń, implementacji i konfiguracji serwera.
- DoH „nie jest automatycznie wolniejszy/szybszy tylko dlatego, że DNS jest w HTTP”; wydajność zależy od ponownego użycia połączeń, jakości sieci i implementacji; w wielu przypadkach DoH/3 i DoT są porównywalne lub DoH/3 lepszy.
- DoT może używać SNI do weryfikacji nazwy hosta w certyfikacie; DoH polega na standardowej weryfikacji certyfikatu HTTPS i dopasowaniu nazwy hosta.
- Szyfrowany DNS chroni przed podsłuchem i modyfikacją w trasie, nie oznacza to „pełnej anonimowości”. Rezolwer może nadal rejestrować zapytania; wybierz zaufanego dostawcę i zapoznaj się z polityką prywatności.
graph TD
subgraph Rodzina DNS
A[Plain DNS UDP/TCP + DNS]
subgraph Szyfrowany DNS
B[DoT TCP + TLS + DNS]
C[DoH HTTP/2,3 + TLS + DNS]
D[DoQ QUIC + TLS 1.3 + DNS]
end
subgraph Transport
E[TCP]
F[UDP]
G[QUIC]
end
end
A --> B
A --> C
A --> D
B --> E
C --> E
C --> G
D --> G
A --> F
style A fill:#f3e5f5
style B fill:#e8f5e8
style C fill:#e3f2fd
style D fill:#fff3e0
Porównawcza tabela
| Protokół | Warstwa transportowa | Szyfrowanie | Enkapsulacja | Domyślny port | Typowe cechy |
|---|---|---|---|---|---|
| Plain DNS | UDP/TCP | Brak | DNS native | 53 | Prosty, wydajny, jawny, podatny na podsłuch/modyfikację |
| DoT | TCP | TLS 1.2/1.3 | DNS | 853 | Dedykowany port, łatwo blokowany, dobre wsparcie systemowe |
| DoH | TCP/QUIC | TLS 1.2/1.3 | HTTP/2-3 + DNS | 443 | Współdzieli port z HTTPS, lepsza przebijalność, priorytet w przeglądarkach |
| DoQ | QUIC | TLS 1.3 | DNS | 853/UDP | Niskie opóźnienia, brak blokady głowy kolejki, ekosystem w rozwoju |
Wydajność i opóźnienia
- Ponowne użycie połączeń: DoT/DoH/DoQ mogą wykorzystywać długotrwałe połączenia, zmniejszając narzut uzgadniania; DoH/2, DoH/3 i DoQ obsługują wielokrotne żądania w jednym połączeniu.
- Blokada głowy kolejki: TCP ma to na poziomie aplikacji; HTTP/2 na TCP zmniejsza to, ale wciąż zależy od utraty pakietów TCP; QUIC (DoH/3, DoQ) unika blokady głowy kolejki na poziomie transportu, lepiej radzi sobie z dużą utratą pakietów/siecią mobilną.
- Opóźnienie pierwszego pakietu: przy pierwszym połączeniu DoT wymaga TCP+TLS; DoH/2 podobnie; DoH/3/DoQ oparte na QUIC mają szybsze ponowne połączenie i migrację. W długim okresie różnice zależą od implementacji i warunków sieci.
- Dostępność: DoH (port 443) najtrudniej zablokować; DoT (port 853) często blokowany; DoQ (853/UDP) może być blokowany lub nieotwierany.
Wsparcie klientów i systemów
- Przeglądarki: rodzina Chromium i Firefox domyślnie wbudowane DoH (możliwość automatycznego ulepszania lub listy wbudowanych dostawców).
- Windows: Windows 11 natywnie obsługuje DoH.
- Android: Android 9+ oferuje „Prywatne DNS” (systemowe DoT). Systemowe DoH zależy od wersji/wytwórcy.
- Platformy Apple: iOS 14+/macOS 11+ przez profile lub NetworkExtension obsługują DoT i DoH.
Wdrożenie i wybór
- Sieci o ograniczonym dostępie (np. Wi‑Fi publiczne, wymagające przebijania prostych blokad): DoH (port 443), włącz HTTP/3 jeśli dostępne.
- Systemowy wspólny punkt wyjścia (router, brama, prywatne DNS Androida): DoT (853), w razie potrzeby DoH (443) jako fallback.
- Sieci o dużych utratkach pakietów/mobilne: DoH/3 lub DoQ (jeśli obsługiwane przez rezolwer i klienta).
- Środowisko korporacyjne/zgodność: wybierz zgodnie z polityką (DoH łączy się z infrastrukturą HTTPS; DoT oddziela DNS od kontroli).
Podsumowanie
- Preferowane DoH (443, przebijalność), włącz HTTP/3 jeśli dostępne.
- Systemowe: DoT (853) z trwałym połączeniem, DoH (443) jako fallback.
- Jeśli rezolwer i klient obsługują: DoQ (lepsze doznania w sieci mobilnej).
Standardy
- RFC 7858, RFC 8310 (DNS over TLS)
- RFC 8484 (DNS over HTTPS)
- RFC 9250 (DNS over QUIC)
Polecane usługi DNS
- Null Private DNS: https://www.nullprivate.com obsługuje DoT, DoH (HTTP3), natywne blokowanie reklam i rozdział ruchu.
- Wersja do samodzielnego wdrożenia: https://github.com/NullPrivate/NullPrivate