DoT TCP :853 RFC 7858

DNS over TLS · шифрованный DNS в отдельном канале

Что это

DoT (DNS over TLS) — обёртка обычного DNS в TLS. Стандартизован в RFC 7858 (2016). Использует отдельный порт 853/tcp, который выделен именно под шифрованный DNS. Один запрос — одно TLS-соединение (обычно с keepalive).

Хорошая новость: DoT в РФ в основном работает. В отличие от DoH, который активно режут, DoT по опыту пользователей чаще всего проходит через ТСПУ без проблем. Порт 853 нестандартный, вырубить его для «всех сразу» — сложнее (это заметное действие), да и объёмы такого трафика меньше.

Как выглядит на wire

клиент                     resolver
──────────────────────────────────
    TCP SYN → :853 
                     ← SYN-ACK
    ACK
    TLS ClientHello → 
                     ← ServerHello + Certificate
    Finished →       ← Finished
    ── TLS-туннель установлен ──
    [length:2][DNS query]
                     ← [length:2][DNS response]
    [length:2][DNS query 2]
                     ← [length:2][DNS response 2]

Формат сообщений внутри TLS — как в обычном DNS over TCP: 2-байтовая длина, затем стандартное DNS-сообщение. Просто вся эта переписка идёт в TLS-туннеле.

Плюсы

Минусы

Публичные DoT-серверы

ПровайдерАдрес
Cloudflare1.1.1.1 / one.one.one.one
Google8.8.8.8 / dns.google
Quad99.9.9.9 / dns.quad9.net
NextDNS<твой ID>.dns.nextdns.io
AdGuarddns.adguard-dns.com
Яндексcommon.dot.dns.yandex.net

Настройка клиента

Android (9+)

Settings → Network → Private DNS → hostname:

one.one.one.one

Всё, весь DNS системы теперь идёт по DoT.

Linux (systemd-resolved)

/etc/systemd/resolved.conf:

[Resolve]
DNS=1.1.1.1#one.one.one.one 1.0.0.1#one.one.one.one
DNSOverTLS=yes
DNSSEC=yes
systemctl restart systemd-resolved

Проверка:

resolvectl status | grep -i tls

Linux (stubby)

apt install stubby
# правишь /etc/stubby/stubby.yml — там DoT-серверы уже прописаны
systemctl enable --now stubby
# и в /etc/resolv.conf ставишь 127.0.0.1

Windows 11

Настройки → Сеть → адаптер → Свойства → DNS server assignment → Encrypted only (DNS over TLS).

macOS / iOS

Через профиль .mobileconfig — DoT нативно поддерживается с macOS 11 и iOS 14.

DoT vs DoH

См. подробное сравнение на /dns. Кратко:

Парадокс: DoH проектировался «незаметнее», а на практике именно его лучше научились фильтровать. DoT — «палевнее» на бумаге, но по факту работает надёжнее.