Зачем нужен DNS
Зачем нужен DNS
Ты хочешь открыть Google. Не задумываясь, набираешь google.com в браузере — и через секунду страница загружена. Но компьютеры в сети общаются по IP-адресам, а не по именам. Откуда браузер знает, что google.com — это 142.250.185.206? Ответ: DNS (Domain Name System). Давай разберёмся, зачем он нужен и как работает эта «телефонная книга интернета».
Проблема: люди помнят имена, компьютеры — числа
Запомнить адрес 142.250.185.206 сложно. Запомнить 10 таких адресов — практически невозможно. А теперь представь, что IP-адрес сервера Google может измениться (серверы переезжают, балансировка нагрузки, аварии). Если бы мы использовали IP-адреса напрямую, смена адреса означала бы, что сайт «пропал» для всех пользователей.
DNS решает обе проблемы:
- Даёт удобные имена (
google.comвместо142.250.185.206). - Позволяет менять IP-адрес на стороне сервера, не требуя от пользователей запоминать новый.
Аналогия: телефонная книга
Раньше, чтобы позвонить человеку, ты искал его имя в телефонной книге и находил номер. Сегодня ты просто нажимаешь на имя в контактах телефона. DNS — это такая глобальная книга контактов интернета: вводишь доменное имя → получаешь IP-адрес.
Только в отличие от бумажной книги, DNS распределён по тысячам серверов по всему миру и обновляется в реальном времени.
Что такое DNS
DNS (Domain Name System) — это распределённая иерархическая система, которая переводит доменные имена (например, www.example.com) в IP-адреса (например, 93.184.216.34). Процесс перевода называется разрешением (resolution).
DNS — это не один сервер, а целая инфраструктура:
- Миллионы DNS-серверов (authoritative servers), хранящих информацию о доменах.
- Тысячи резолверов (DNS-резолверов), которые ищут эту информацию по запросу.
- Протокол DNS, работающий поверх UDP (и иногда TCP).
DNS-запрос: что происходит при открытии сайта
Когда ты набираешь google.com в браузере, происходит примерно следующее:
- Браузер проверяет свой кэш: «я уже спрашивал про
google.comнедавно?». Если да — использует сохранённый IP. - Если нет — спрашивает у операционной системы.
- ОС проверяет свой кэш и файл
hosts(локальный список известных имён). - Если и там нет — ОС отправляет запрос DNS-резолверу (обычно это сервер провайдера или публичный вроде
8.8.8.8от Google). - Резолвер находит IP-адрес и возвращает его.
- Браузер устанавливает TCP-соединение с полученным IP-адресом.
Вся цепочка для нового имени занимает 50–200 мс, для уже закэшированного — доли миллисекунды.
Почему DNS распределённый, а не централизованный
Можно было бы сделать один гигантский сервер, который хранит все доменные имена мира. Но:
- Это была бы единая точка отказа: упал сервер — весь интернет «перестал работать».
- Нагрузка: триллионы DNS-запросов в день не выдержит ни один сервер.
- Задержки: сервер в Калифорнии обслуживал бы запросы из Австралии с неприемлемой задержкой.
Вместо этого DNS организован как распределённое дерево: корневые серверы (13 кластеров) → серверы доменов верхнего уровня (.com, .org, .ru) → авторитативные серверы конкретных доменов (google.com, example.org). Такую архитектуру мы разберём детально в следующих уроках.
DNS — это не только про сайты
Хотя мы чаще всего сталкиваемся с DNS при открытии сайтов, система используется гораздо шире:
- Электронная почта. Чтобы доставить письмо на
user@example.com, почтовый сервер ищет MX-запись доменаexample.com. - Блокировка рекламы. DNS-фильтры (Pi-hole, AdGuard DNS) блокируют запросы к доменам трекеров и рекламных сетей.
- Обход блокировок. Смена DNS-сервера на публичный позволяет обойти блокировки на уровне провайдера.
- CDN. DNS возвращает IP ближайшего к пользователю сервера, ускоряя загрузку.
Проверь себя
- Можно ли зайти на сайт, если DNS не работает, но ты знаешь его IP-адрес?
- Почему DNS используют UDP, а не TCP?
- Что быстрее: DNS-запрос для только что посещённого сайта или для нового?
- Да. Набери
http://142.250.185.206в адресной строке — и Google откроется без участия DNS. Но HTTPS может выдать ошибку сертификата, потому что сертификат привязан к имени, а не к IP. - DNS-запрос — это один короткий пакет. Установка TCP-соединения (три шага) заняла бы больше времени и трафика, чем сам запрос. Для ответов крупнее 512 байт используется TCP.
- Для только что посещённого — ответ уже в кэше браузера или ОС, запрос по сети не нужен. Ответ за доли миллисекунды.
Что унести с урока
- DNS переводит имена (
google.com) в IP-адреса (142.250.185.206), как телефонная книга переводит имена в номера. - DNS — распределённая система, а не один сервер. Это даёт надёжность и скорость.
- Браузер, ОС, маршрутизатор и провайдер кэшируют DNS-ответы, ускоряя повторные запросы.
- DNS используется не только для сайтов, но и для почты, блокировки рекламы и CDN.
В следующем уроке разберём анатомию доменного имени: что такое .com, www, поддомены, и почему имена разделены точками.