Компьютеры подключаются к IP-адресам, а люди запоминают имена. Система доменных имён переводит одно в другое — миллиарды раз в секунду, чаще всего из кэша, за несколько миллисекунд.
Участники
- Stub-резолвер: небольшой DNS-клиент в вашей операционной системе или браузере.
- Рекурсивный резолвер: сервер, который берёт на себя поиск ответов, — от вашего провайдера или публичный сервис вроде 1.1.1.1 или 8.8.8.8.
- Корневые серверы: знают, где найти каждый домен верхнего уровня.
- Серверы TLD: отвечают за
.com,.ru,.siи так далее; знают, какие серверы имён отвечают за каждый домен. - Авторитативные серверы имён: хранят настоящие записи домена.
Запрос по шагам
Когда вы открываете www.example.com, а в кэше ничего нет:
- Устройство спрашивает у рекурсивного резолвера записи A (IPv4) и AAAA (IPv6) для
www.example.com. - Резолвер спрашивает корневой сервер, и тот называет серверы
.com. - Он спрашивает сервер .com, и тот называет серверы имён для
example.com(его записи NS). - Он спрашивает один из серверов имён example.com, и тот возвращает адрес.
- Резолвер отдаёт ответ вам — и кэширует его.
Кэширование и TTL
У каждой записи есть TTL (время жизни) в секундах. Резолверы хранят ответ столько времени, прежде чем спросить снова. Поэтому DNS работает быстро — и поэтому изменения вступают в силу не сразу: запись с TTL в один час может отдаваться из кэша ещё до часа после изменения. Перед запланированным переездом снизьте TTL.
Не только адреса
DNS также сообщает миру:
- куда доставлять почту (MX),
- какие имена являются псевдонимами (CNAME),
- какие серверы могут отправлять почту и какие удостоверяющие центры могут выпускать сертификаты (TXT для SPF/DMARC, CAA),
- какие серверы авторитативны (NS, SOA),
- и в обратную сторону — какое имя соответствует IP-адресу (PTR).
Для каждой записи есть короткое руководство: A, AAAA, CNAME, MX, TXT, NS.
Безопасность: DNSSEC и зашифрованный DNS
DNSSEC позволяет резолверам проверить по подписям, опубликованным в DNS, что ответы действительно пришли от владельца домена. DNS-over-HTTPS и DNS-over-TLS шифруют соединение между вами и резолвером, чтобы другие участники сети не могли прочитать или подменить ваши запросы. Они решают разные задачи и хорошо дополняют друг друга.
Посмотрите вживую
Поиск DNS в реальном времени запрашивает все распространённые типы записей и показывает TTL и статус DNSSEC — попробуйте на cloudflare.com.