Domain Name System (DNS)

Port: 53

Protocol / Standard: UDP, TCP (согласно /etc/services)

Transport in Practice: UDP (основной), TCP (резервный / транзакционный)

Service Name: domain

Popular Software: BIND 9, PowerDNS, Unbound, Knot DNS, dnsmasq, Windows Server DNS Role

Security Risks: High (DDoS/Amplification, DNS Spoofing, DNS Tunneling, Plaintext Interception)

Стандарт и назначение

Порт 53 зарезервирован IANA и зафиксирован в файле /etc/services за службой DNS (Domain Name System, RFC 1034 / RFC 1035).

Служба отвечает за преобразование доменных имен в IP-адреса и обратно. В стандарте зарегистрированы оба транспортных протокола — TCP и UDP, но работают они для разных задач.

Сетевая практика (UDP vs TCP)

По умолчанию DNS использует UDP — это быстро и не требует предварительного согласования связи (3-way handshake). Однако при определенных условиях система автоматически переключается на TCP:

  • Обычные запросы (UDP): Браузеры и операционные системы отправляют стандартные запросы (A, AAAA, MX) по UDP. Это дает минимальную задержку.

  • Превышение размера (Флаг TC -> TCP): Ответ по UDP исторически ограничен 512 байтами. Если данные не помещаются (например, большая TXT-запись или ключи DNSSEC), сервер отвечает с флагом TC=1 (Truncated). Получив его, клиент переспрашивает тот же запрос уже по TCP.

  • Передача зон (TCP): Синхронизация базы записей между Primary и Secondary DNS-серверами (AXFR/IXFR) идет только по TCP, так как здесь критична 100% точность и полнота данных.

Особенности работы с IPv6

Протокол IPv6 работает на сетевом уровне (L3) и не меняет логику портов, но вносит два важных нюанса в работу DNS:

  1. Меньше переключений на TCP: В IPv6 минимальный размер пакета сети больше, чем в IPv4 (1280 байт против 576). В связке с расширением EDNS0 это позволяет передавать по UDP крупные ответы (включая длинные IPv6-адреса AAAA) без обрезки пакета и без перехода на TCP.

  2. Раздельные правила файрвола: Открытие порта 53 в iptables разрешает трафик только для IPv4. Для IPv6 нужно обязательно дублировать правила в ip6tables (или использовать nftables), иначе IPv6-клиенты будут получать таймауты.

Практическое применение

  • Резолвинг: Обслуживание запросов от клиентов, прокси-серверов и VPN.

  • Авторитативный DNS: Выдача точных зон для своих доменов (PowerDNS, BIND, Knot).

  • Кэширование: Локальное ускорение повторных запросов в сети (Unbound, dnsmasq).

  • Обход Captive Portal: Использование UDP/53 для проброса трафика в публичных Wi-Fi сетях (DNS Tunneling).

Безопасность и настройки

  • Открывайте оба протокола: На файрволе порт 53 должен быть открыт и для TCP, и для UDP (в IPv4 и IPv6). Если закрыть TCP, периодически будут «ломаться» запросы с большими записями.

  • Защита от Open Resolver: Открытый наружу рекурсивный DNS-сервер быстро привлекут к DDoS-атакам (UDP Amplification). Резолвинг должен быть разрешен только для своей локальной сети.

  • Шифрование: Обычный DNS (порт 53) передает данные открытым текстом. Для защиты от перехвата и подмены трафика в современной практике используют шифрованные альтернативы: DoT (DNS over TLS, порт 853) или DoH (DNS over HTTPS, порт 443).