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 происходит цепочка запросов:
- Локальный кеш — проверка на компьютере. Если имя резолвилось недавно, ответ уже есть.
- Резолвер (recursive resolver) — сервер провайдера или публичный (
8.8.8.8— Google,1.1.1.1— Cloudflare). Резолвер берёт на себя всю работу по поиску. - Корневой сервер — “где найти информацию о
.com?” Отвечает адресом TLD-сервера. - TLD-сервер — “где найти информацию о
google.com?” Отвечает адресом авторитативного сервера. - Авторитативный сервер — владеет окончательной информацией о домене. Отвечает: “IP
mail.google.com—142.250.74.46”.
Резолвер кеширует все промежуточные ответы, так что при следующем запросе к *.google.com шаги 3–4 будут пропущены.
TTL: баланс между свежестью и нагрузкой
DNS-записи имеют TTL (Time To Live) — время, в течение которого запись можно кешировать. Короткий TTL (60 секунд) — изменения распространяются быстро, но нагрузка на авторитативные серверы выше. Длинный TTL (часы, дни) — меньше нагрузки, но изменения распространяются медленно.
При миграции сервера типичная стратегия: заранее снизить TTL до минимума, выполнить переключение, дождаться распространения, вернуть TTL обратно.
Типы DNS-записей
| Тип | Назначение |
|---|---|
| A | IPv4-адрес |
| AAAA | IPv6-адрес |
| CNAME | Псевдоним (указывает на другое доменное имя) |
| MX | Почтовые серверы домена |
| TXT | Произвольный текст (SPF, DKIM, верификация) |
| NS | Авторитативные серверы домена (указывают, какой сервер отвечает за зону) |
Запись A — самая базовая: домен → IP-адрес. CNAME используется для алиасов: www.example.com → example.com. При этом резолвер делает дополнительный шаг — сначала следует за CNAME, потом запрашивает A-запись для целевого имени.
DNS — первый шаг в цепочке от URL до страницы. После получения IP-адреса браузер устанавливает TCP-соединение и отправляет HTTP-запрос.
← TCP Tuning | HTTP →