Сравнение зашифрованных DNS-протоколов: DoT, DoH, DoQ
Сравнение Plain DNS, DoT, DoH, DoQ по уровням, портам, производительности, сценариям использования, рекомендациям по выбору и настройке.
Categories:
Справочник терминов
- Plain DNS: обычный DNS, по умолчанию использует UDP/53, при необходимости — TCP/53 (например, при обрезке ответа или передаче зон).
- DoT: DNS over TLS, TLS поверх TCP, порт по умолчанию 853 (RFC 7858/8310).
- DoH: DNS over HTTPS, поверх HTTPS (HTTP/2 или HTTP/3), порт по умолчанию 443 (RFC 8484).
- DoQ: DNS over QUIC, поверх QUIC + TLS 1.3, порт по умолчанию UDP/853 (RFC 9250, IANA назначил 853/udp).
Уровневая модель (упрощенная TCP/IP)
- Прикладной уровень: HTTP, HTTPS, DNS (DoH — это инкапсуляция DNS в HTTPS).
- Уровень безопасности: TLS (предоставляет шифрование для TCP или QUIC).
- Транспортный уровень: TCP, UDP, QUIC.
- Сетевой уровень: IP.
- Канальный уровень: Ethernet и т.п.
- Физический уровень: витая пара/оптика/беспроводные.
Ключевые сведения
- Plain DNS работает поверх UDP/TCP, без шифрования.
- DoT = TCP + TLS + DNS (специализированный порт 853).
- DoH = TCP/QUIC + TLS + HTTP(S) + DNS (порт 443, общий с обычным HTTPS).
- DoQ = QUIC + TLS 1.3 + DNS (специализированный порт UDP/853).
graph TB
subgraph Прикладной уровень
A[HTTP]
A2[HTTPS]
C[DNS]
D[DoH DNS over HTTPS]
end
subgraph Уровень безопасности
E[TLS]
end
subgraph Транспортный уровень
F[TCP]
G[UDP]
H[QUIC]
end
subgraph Сетевой уровень
I[IP]
end
subgraph Канальный уровень
J[Ethernet]
end
subgraph Физический уровень
K[Витая пара/оптика/беспроводные]
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
Базовые сведения и уточнения
- Plain DNS по умолчанию использует UDP/53, при обрезке ответа (флаг TC) или необходимости надежной передачи переключается на TCP/53.
- DoT устанавливает TLS-туннель поверх TCP для DNS, порт 853 по умолчанию; можно использовать долгоживущие соединения для снижения накладных расходов на рукопожатие.
- DoH передаёт DNS как ресурс HTTPS (
application/dns-message), обычно с HTTP/2 или HTTP/3, порт 443, легко смешивается с обычным HTTPS. - DoQ использует QUIC (на базе UDP) для DNS, обеспечивает низкую задержку и избегает блокировки очереди; экосистема развивается.
- Утверждения вроде «QUIC всегда быстрее TCP на X%» не универсальны; реальные показатели зависят от сети (потери, джиттер, RTT), переиспользования соединений, реализации и развертывания сервера.
- DoH не означает «DNS в HTTP всегда медленнее/быстрее»; производительность зависит от переиспользования соединений, качества сети и реализации; во многих случаях DoH/3 и DoT близки или DoH/3 даже лучше.
- DoT может использовать SNI для проверки сертификата по хосту; DoH полагается на стандартную проверку сертификатов HTTPS и соответствие хоста.
- Зашифрованный DNS защищает от прослушивания и подмены на линии, но не гарантирует полную анонимность. Резолвер может сохранять запросы; выбирайте доверенного провайдера и изучайте политику конфиденциальности.
graph TD
subgraph Семейство DNS
A[Plain DNS UDP/TCP + DNS]
subgraph Зашифрованный DNS
B[DoT TCP + TLS + DNS]
C[DoH HTTP/2,3 + TLS + DNS]
D[DoQ QUIC + TLS 1.3 + DNS]
end
subgraph Транспортная база
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
Сравнительная таблица
| Протокол | Транспортный уровень | Шифрование | Инкапсуляция | Порт по умолчанию | Характеристики |
|---|---|---|---|---|---|
| Plain DNS | UDP/TCP | Нет | DNS в чистом виде | 53 | Просто и эффективно, видимый в открытом виде, подвержен прослушиванию/подмене |
| DoT | TCP | TLS 1.2/1.3 | DNS | 853 | Специализированный порт, легко блокируется по порту, хорошая системная поддержка |
| DoH | TCP/QUIC | TLS 1.2/1.3 | HTTP/2-3 + DNS | 443 | Общий порт с HTTPS, высокая проницаемость, приоритет в браузерах |
| DoQ | QUIC | TLS 1.3 | DNS | 853/UDP | Низкая задержка, избегание блокировки очереди, экосистема развивается |
Производительность и задержка
- Переиспользование соединений: DoT/DoH/DoQ поддерживают долгоживущие соединения для снижения накладных расходов на рукопожатие; DoH/2, DoH/3 и DoQ также поддерживают многопоточность в одном соединении.
- Блокировка очереди: TCP подвержен «блокировке головы очереди» на прикладном уровне; HTTP/2 с многопоточностью частично решает проблему, но всё ещё зависит от TCP при потерях; QUIC (DoH/3, DoQ) избегает блокировки очереди на транспортном уровне, лучше работает при высоких потерях/в мобильных сетях.
- Задержка первого пакета: при первом подключении DoT требует TCP+TLS; DoH/2 аналогично; DoH/3/DoQ на QUIC быстрее при переподключении и миграции. При длительной нагрузке различия зависят от реализации и условий сети.
- Доступность: DoH использует порт 443, реже блокируется простым портовым фильтром; DoT использует 853, часто блокируется; DoQ использует 853/UDP, на текущем этапе может быть заблокирован или не разрешён.
Поддержка клиентов и систем
- Браузеры: Chromium и Firefox по умолчанию включают DoH (могут автоматически переключаться на поддерживающий DoH резолвер или использовать встроенные списки).
- Windows: Windows 11 нативно поддерживает DoH.
- Android: Android 9+ предоставляет «Приватный DNS» (системный DoT). Системный DoH зависит от версии/производителя.
- Платформы Apple: iOS 14+/macOS 11+ поддерживают DoT и DoH через профили или NetworkExtension.
Рекомендации по развертыванию и выбору
- Обычные/ограниченные сети (например, публичный Wi‑Fi, необходимость обхода простых блокировок): предпочтите DoH (порт 443), включите HTTP/3 при возможности.
- Системный единый выход (роутер, шлюз, приватный DNS Android): предпочтите DoT (853), при возможности добавьте DoH как резерв.
- Высокие потери/мобильные сети: предпочтите DoH/3 или DoQ с QUIC (в зависимости от поддержки резолвером и клиентом).
- Корпоративные/регуляторные сценарии: выбирайте по политике (DoH интегрируется с существующей HTTPS-инфраструктурой; DoT проще отделить от DNS-контрольной плоскости).
Краткие выводы
- Приоритет DoH (443, высокая проницаемость); при наличии — включайте HTTP/3.
- Для системного уровня: DoT (853) + долгоживущие соединения, при необходимости — резерв DoH (443).
- Если резолвер и клиент поддерживают: попробуйте DoQ (часто лучше в мобильных сетях).
Стандарты
- RFC 7858, RFC 8310 (DNS over TLS)
- RFC 8484 (DNS over HTTPS)
- RFC 9250 (DNS over QUIC)
Рекомендуемые DNS-сервисы
- Ниньпин DNS: https://www.nullprivate.com поддержка DoT, DoH (включая HTTP3), встроенная защита от рекламы и раздельный DNS.
- Собственная версия: https://github.com/NullPrivate/NullPrivate