DNS

Предпосылки: IP и маршрутизация (IP-адрес), UDP (порт, датаграмма).

TCP Tuning | HTTP

Пользователь набирает в браузере mail.google.com. Браузеру нужен IP-адрес, чтобы установить TCP-соединение. Но запоминать 142.250.74.46 — не вариант, адресов миллиарды, и они меняются. Нужна система, которая переводит человекочитаемые имена в IP-адреса.

DNS: распределённый справочник

DNS (Domain Name System — система доменных имён) — распределённая база данных, переводящая имена в IP-адреса. “Domain” — от латинского “dominium” (владение), “территория” в пространстве имён.

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

mail.google.com читается справа налево: com — домен верхнего уровня (TLD — Top-Level Domain), google — домен второго уровня, mail — поддомен (subdomain). Эта иерархия — ключ к масштабируемости: не нужен один гигантский справочник, каждый уровень отвечает за свою часть пространства имён.

DNS-запрос: цепочка делегирования

Для определения IP-адреса mail.google.com происходит цепочка запросов:

  1. Локальный кеш — проверка на компьютере. Если имя резолвилось недавно, ответ уже есть.
  2. Резолвер (recursive resolver) — сервер провайдера или публичный (8.8.8.8 — Google, 1.1.1.1 — Cloudflare). Резолвер берёт на себя всю работу по поиску.
  3. Корневой сервер — “где найти информацию о .com?” Отвечает адресом TLD-сервера.
  4. TLD-сервер — “где найти информацию о google.com?” Отвечает адресом авторитативного сервера.
  5. Авторитативный сервер — владеет окончательной информацией о домене. Отвечает: “IP mail.google.com142.250.74.46”.

Резолвер кеширует все промежуточные ответы, так что при следующем запросе к *.google.com шаги 3–4 будут пропущены.

TTL: баланс между свежестью и нагрузкой

DNS-записи имеют TTL (Time To Live) — время, в течение которого запись можно кешировать. Короткий TTL (60 секунд) — изменения распространяются быстро, но нагрузка на авторитативные серверы выше. Длинный TTL (часы, дни) — меньше нагрузки, но изменения распространяются медленно.

При миграции сервера типичная стратегия: заранее снизить TTL до минимума, выполнить переключение, дождаться распространения, вернуть TTL обратно.

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

ТипНазначение
AIPv4-адрес
AAAAIPv6-адрес
CNAMEПсевдоним (указывает на другое доменное имя)
MXПочтовые серверы домена
TXTПроизвольный текст (SPF, DKIM, верификация)
NSАвторитативные серверы домена (указывают, какой сервер отвечает за зону)

Запись A — самая базовая: домен → IP-адрес. CNAME используется для алиасов: www.example.comexample.com. При этом резолвер делает дополнительный шаг — сначала следует за CNAME, потом запрашивает A-запись для целевого имени.

DNS — первый шаг в цепочке от URL до страницы. После получения IP-адреса браузер устанавливает TCP-соединение и отправляет HTTP-запрос.


TCP Tuning | HTTP