Dns використовує udp або tcp що говорить rfc

Як правило, вважається, що DNS використовує UDP port 53, але TCP port 53 також зарезервований під використання для DNS.

Згодом відповідь на досить примітивний питання починає цікавити кожного фахівця, так чи інакше має відношення до інформаційних технологій і безпеки:

В якому випадку DNS працює по UDP, а в якому - по TCP?

На це питання відповідає діючий документ RFC5966. розділ 4. Transport Protocol Selection. в якому фігурують наступні твердження:

Тобто, більшість DNS-запитів буде оброблятися з використанням протоколу UDP, виняток становлять трансфер зони (Query type AXFR) і відповіді сервера, що перевищують 512 байт на одне повідомлення. На питання "навіщо" відповідь проста: щоб не використовувалися для DDoS.

Це означає, що всі реалізації DNS-серверів в загальному випадку повинні підтримувати використання обох протоколів транспортного рівня: TCP і UDP.


Тепер більш приватні випадки:

Stub resolver - це маленький тупий рекурсивний сервер, що використовується для невеликої кількості клієнтів. Наприклад, домашній маршрутизатор, до якого підключаються клієнти. Він транслює запити вищим серверам провайдера.

Як бачимо, RFC потурає виробникам малопотужних пристроїв для того, щоб знизити навантаження на сервера в тому оточенні, де або великі відповіді від DNS малоймовірні, або вони передбачається, що не шкодити. Наприклад, домашній маршрутизатор доступу, до якого підключені користувачі однієї квартири (2-3 пристрої). В цьому випадку спроба виконати DDoS другого пристрою безглузда, і, як наслідок, малоймовірна.


Ну і, звичайно, порядок використання протоколів:

Тобто, (маленький тупий) рекурсивний сервер повинен спочатку спробувати виконувати DNS-запит з використанням UDP, але при високій ймовірності великого і усіченого відповіді, або при наявності відкритої TCP-сесії до запитуваного сервера (за яким обробляється інший запит або прохання іншого клієнта) , не забороняється використання TCP.

Схожі статті