DNS (система доменных имён)

Протоколы и стандарты
Иерархическая система имён интернета, преобразующая понятные человеку доменные имена в IP-адреса, которые компьютеры используют для обмена данными.
← Вернуться к глоссарию

Что такое DNS?

DNS (система доменных имён) представляет собой телефонную книгу интернета. Она переводит понятные человеку доменные имена, такие как «example.com», в машиночитаемые IP-адреса, например «93.184.216.34», которые компьютеры используют для поиска и связи друг с другом. Без DNS для посещения веб-сайтов пришлось бы запоминать IP-адреса, например вводить 142.250.80.46 вместо google.com.

Как работает DNS

Когда вы вводите доменное имя в браузере, происходит сложный, но очень быстрый процесс:

Процесс разрешения DNS

1. Проверка локального кэша: сначала браузер и операционная система проверяют локальный кэш DNS и ищут недавний результат для этого домена.

2. Запрос к рекурсивному DNS-резолверу: если результата в кэше нет, запрос отправляется рекурсивному DNS-резолверу, которым обычно управляет интернет-провайдер или такой сервис, как Cloudflare с адресом 1.1.1.1 или Google с адресом 8.8.8.8.

3. Запрос к корневому серверу: резолвер обращается к корневому серверу имён, который направляет его к соответствующему серверу TLD.

4. Запрос к серверу TLD: сервер TLD, например для зоны .com, предоставляет авторитетные серверы имён конкретного домена.

5. Запрос к авторитетному серверу: затем авторитетный сервер имён возвращает фактический IP-адрес домена.

6. Кэширование ответа: результат кэшируется на нескольких уровнях с учётом значений TTL (Time To Live).

Весь процесс обычно занимает несколько миллисекунд.

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

DNS хранит разные типы записей, каждая из которых выполняет свою задачу:

Тип записиНазначениеПример
AСопоставляет домен с адресом IPv4example.com → 93.184.216.34
AAAAСопоставляет домен с адресом IPv6example.com → 2606:2800:220:1:...
CNAMEПсевдоним, указывающий на другой доменwww.example.com → example.com
MXУказывает почтовый серверexample.com → mail.example.com
TXTТекстовые данные (SPF, DKIM, проверка)Различные строки проверки
NSДелегирование серверов имёнexample.com → ns1.provider.com

Иерархия DNS

DNS работает как распределённая иерархическая база данных:

. (root)

├── com (TLD)

│ ├── example (SLD)

│ │ ├── www (subdomain)

│ │ └── mail (subdomain)

│ └── google

├── org (TLD)

└── io (TLD)

Эта иерархия позволяет распределённо управлять миллиардами доменных имён в тысячах организаций.

DNS для разработчиков

Понимание DNS крайне важно для веб-разработки:

Распространённые задачи разработки

Настройка домена: настройка A-записей, CNAME для поддоменов и MX-записей для электронной почты требует знания DNS. Проверка SSL/TLS: многие центры сертификации используют DNS-записи (TXT или CNAME), чтобы подтвердить владение доменом. Настройка CDN: сети доставки контента часто требуют CNAME-записи для маршрутизации трафика через свои пограничные серверы. Доставляемость электронной почты: записи SPF, DKIM и DMARC являются DNS TXT-записями, необходимыми для аутентификации электронной почты.

Распространение DNS

После обновления DNS-записей изменения вступают в силу не сразу. Распространение DNS, то есть время, необходимое изменениям, чтобы распространиться по глобальной инфраструктуре DNS, может занять от нескольких минут до 48 часов в зависимости от настроек TTL и особенностей кэширования.

Вопросы безопасности DNS

Разработчикам важно понимать последствия DNS для безопасности:

Подмена DNS: злоумышленники могут возвращать ложные ответы DNS и перенаправлять пользователей на вредоносные сайты. DNSSEC (DNS Security Extensions) помогает предотвращать такие атаки с помощью криптографических подписей. Утечки DNS: пользователи VPN могут случайно отправлять DNS-запросы в обход зашифрованного туннеля, раскрывая историю просмотра. Усиление DDoS: DNS можно использовать в атаках с усилением, поскольку протокол способен возвращать ответы большего размера, чем запросы.

DNS и доступность домена

Статус разрешения DNS может указывать на доступность домена: отсутствие DNS-записей может означать, что домен не зарегистрирован. Однако запросы RDAP/WHOIS предоставляют более надёжные сведения о доступности, поскольку у зарегистрированного домена DNS-записи могут быть ещё не настроены.

Применяйте эти знания на практике

Используйте API DomScan для проверки доступности доменов, их состояния и многого другого.