DNS

Система доменных имен — «телефонная книга» интернета: переводит понятные адреса вроде kpr-it.com в числовые IP-адреса серверов.

DNS (Domain Name System, система доменных имен) — служба, которая переводит имена сайтов в IP-адреса. Людям удобно помнить kpr-it.com, а компьютерам для соединения нужен числовой адрес сервера. Перед каждым обращением к сайту, почте или API устройство спрашивает у DNS: «какой адрес у этого имени?» Без DNS интернет формально работал бы, но пользоваться им было бы невозможно.

Как устроена система

DNS — распределенная иерархия, а не одна огромная база:

  • Корневые серверы знают, кто отвечает за зоны верхнего уровня: .ru, .com, .рф.
  • Серверы зоны верхнего уровня знают, какие серверы отвечают за каждый домен в зоне.
  • Авторитетные серверы домена хранят его записи: адреса сайта, почты, поддоменов.
  • Резолверы — серверы провайдера, компании или публичные — проходят эту цепочку за пользователя и запоминают ответы.

Основные типы записей

  • A — IPv4-адрес; AAAA — IPv6-адрес (подробнее — в термине IPv4 / IPv6).
  • CNAME — псевдоним: www указывает на основное имя.
  • MX — почтовые серверы домена.
  • TXT — текстовые записи: подтверждение владения доменом, защита почты от подделки (SPF, DKIM, DMARC).
  • NS — какие серверы отвечают за домен.

Проверить записи

# Командная строка Linux
dig example.ru A +short
dig example.ru MX +short

Команды показывают адрес сайта и почтовые серверы домена. В Windows то же делает nslookup.

Кэширование и TTL

Чтобы не спрашивать одно и то же миллионы раз, ответы запоминаются — в браузере, операционной системе, у провайдера. Срок хранения задает поле TTL каждой записи. Поэтому изменения DNS вступают в силу не мгновенно: пока не истек старый TTL, часть пользователей ходит по старому адресу. Перед переездом сайта на другой сервер TTL заранее уменьшают, например с суток до пяти минут.

DNS и надежность

Если DNS домена не отвечает, сайт и почта недоступны, даже когда серверы работают. Поэтому у домена всегда несколько DNS-серверов в разных сетях. Ответы DNS можно подделать, и для защиты существуют DNSSEC (подпись записей) и шифрованные запросы DNS over HTTPS и DNS over TLS. На DNS основаны и многие технические решения: географическая балансировка, направление посетителей в ближайшую точку CDN, переключение на резервную площадку.