Открыть сервис

DNS

DNS (Domain Name System, система доменных имён) — это распределённая иерархическая система, предназначенная для преобразования удобных для человека символьных доменных имён (например, ru.wikipedia.org) в машинные IP-адреса (например, 185.15.59.224), необходимые для установления соединения с узлами в компьютерных сетях, прежде всего в сети Интернет. DNS также выполняет обратную функцию — преобразование IP-адресов в доменные имена, а также обеспечивает работу других записей, связанных с маршрутизацией электронной почты, проверкой подлинности и распределением нагрузки.

История

До появления DNS в 1980-х годах для сопоставления имён компьютеров с IP-адресами в сети ARPANET использовался единый файл hosts.txt, который централизованно обновлялся и распространялся администраторами. С ростом сети этот подход стал непрактичным из-за задержек при обновлении и единственной точки отказа.

В 1983 году Пол Мокапетрис (Paul Mockapetris) разработал спецификации DNS, опубликованные в RFC 882 и RFC 883 (позже заменённые RFC 1034 и RFC 1035). Система была внедрена в 1984 году и заменила файл hosts.txt. Изначально DNS проектировалась как распределённая база данных с иерархической структурой, устойчивая к сбоям отдельных узлов и масштабируемая для глобальной сети.

Ключевым нововведением стало делегирование ответственности за отдельные зоны (домены) разным администраторам, что позволило децентрализовать управление именами. В 1987 году были опубликованы протоколы динамического обновления и инкрементальной передачи зон, расширившие возможности системы.

Принцип работы

DNS работает по модели «клиент-сервер» на основе протоколов UDP (порт 53) и TCP (порт 53). Процесс разрешения имени включает несколько этапов:

  1. Запрос от приложения — программа (браузер, почтовый клиент) отправляет запрос на преобразование доменного имени в IP-адрес локальному резолверу (обычно встроенному в операционную систему).
  2. Проверка кэша — резолвер сначала проверяет локальный кэш (временное хранилище ранее полученных ответов). Если запись найдена и не устарела (срок жизни TTL не истёк), ответ возвращается немедленно.
  3. Обращение к рекурсивному серверу — если записи в кэше нет, резолвер отправляет рекурсивный запрос DNS-серверу провайдера или публичному DNS-серверу (например, Google Public DNS — 8.8.8.8).
  4. Рекурсивный поиск — рекурсивный сервер последовательно обращается к корневым серверам, серверам доменов верхнего уровня (TLD) и авторитетным серверам запрашиваемого домена, пока не получит искомую запись.
  5. Возврат ответа — найденный IP-адрес передаётся обратно резолверу, который кэширует его и возвращает приложению.

Типы DNS-серверов

Структура доменного имени

Доменное имя представляет собой иерархическую последовательность меток, разделённых точками. Читается справа налево:

Максимальная длина полного доменного имени — 255 символов, каждой метки — 63 символа. Допустимые символы: буквы латиницы, цифры и дефис (для национальных доменов — также символы национальных алфавитов в кодировке Punycode).

Типы DNS-записей

DNS-зона содержит набор ресурсных записей (RR), каждая из которых имеет тип, класс, TTL и данные. Основные типы:

Протокол и безопасность

Базовый протокол DNS не обеспечивает шифрования и аутентификации, что делает его уязвимым для атак типа «человек посередине», подмены ответов (DNS spoofing) и кэш-отравления. Для повышения безопасности разработаны расширения:

Применение

DNS является критически важной инфраструктурой Интернета. Основные сценарии использования:

Критика и ограничения

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →