edubun
Русский

DNS: как имена превращаются в адреса

13 корневых серверов имён обслуживают 12 организаций с помощью 2047 машин по всему миру (root-servers.org, 17 октября 2026 г.).

КонтекстДо DNS каждый компьютер в ARPANET хранил копию одного текстового файла, HOSTS.TXT, где были перечислены все имена хостов и их адреса. Его вёл Сетевой информационный центр Стэнфордского исследовательского института, а каждый узел скачивал свежие копии. Сеть росла, рос и файл, изменения расходились всё дольше, а имена совпадали. RFC 1034 описывает эту проблему и устройство, которое пришло ей на смену: дерево имён, каждую часть которого обслуживают свои серверы. DNS опубликовали в 1987 г. как RFC 1034 и RFC 1035.

Теперь этот файл никто не скачивает. Ты набираешь example.com, а не 198.51.100.20, и имя ищут в тот момент, когда оно нужно. Но маршрутизаторы по-прежнему понимают только числа, поэтому прежде чем браузер отправит сайту хотя бы один пакет, имя должно превратиться в адрес. Этим занимается система доменных имён (DNS), и руководство Cloudflare называет её телефонной книгой интернета.

Имя является путём вниз по дереву

Читай www.example.com справа налево. Наверху корень, который записывают невидимой точкой. Под ним домены верхнего уровня (TLD), например com, org и kr. Под com стоит example, а под ним www. Каждая часть называется меткой; RFC 1035 допускает до 63 байт на метку и 255 байт на всё имя. Разными ветвями дерева управляют разные организации, поэтому ни одному компьютеру не нужно знать все имена. Именно это и не получилось с HOSTS.TXT, где один файл на каждой машине пытался вместить их все.

Дерево DNS. www.example.com является путём www → example → com → корень; читают его слева направо, а ищут от корня вниз.

Четыре сервера, восемь шагов

Cloudflare называет четыре вида серверов, участвующих в поиске. Рекурсивный резолвер, которым обычно управляет твой провайдер или публичная служба DNS, делает всю беготню за тебя. Корневой сервер знает, где серверы TLD. Сервер TLD, например сервер com, знает, какие серверы хранят каждый домен под ним. Авторитетный сервер домена хранит его настоящие записи и даёт окончательный ответ. Если ничего не закэшировано, поиск занимает восемь шагов. Твой компьютер спрашивает резолвер. Резолвер спрашивает корень, и тот направляет его к com. Он спрашивает com, и тот направляет его к серверам имён домена. Он спрашивает их, они отвечают адресом, и резолвер передаёт адрес тебе.

Загрузка

Перетащи, чтобы повернуть. Колёсико или щипок для масштаба.

Нажми «Следующий шаг» восемь раз или «Пуск». Потом нажми «Искать снова»: сразу отвечает кэш браузера, и ни одно сообщение не покидает компьютер. Нажми «Подождать 1 минуту» и снова поищи: копия браузера устарела, но в кэше ОС она ещё есть. Нажми «Подождать 1 час»: TTL в 3600 секунд истёк везде, и полный поиск начинается заново.

Почему второй поиск мгновенный

Если бы каждый поиск занимал восемь шагов, DNS работала бы медленно, а корневые серверы утонули бы в вопросах. Поэтому ответы сохраняют. Их кэшируют браузер, операционная система и резолвер. У каждой записи есть время жизни в секундах, которое задаёт владелец домена. TTL 3600 означает «можно пользоваться этим ответом час». Короткий TTL позволяет владельцу быстро перенести сайт, длинный экономит поиски. Корневые серверы тоже разнесены: 13 именованных корневых серверов, от a до m, 17 октября 2026 г. работали как 2047 отдельных экземпляров.

Два вида вопросов, один порт

В одном поиске смешаны два вида вопросов. Твой компьютер отправляет резолверу рекурсивный запрос, который означает «дай мне окончательный ответ или ошибку». Резолвер затем отправляет итеративные запросы корневому серверу, серверу TLD и авторитетному серверу, и каждый отвечает лучшим, что у него есть, часто лишь указателем на следующий сервер. Сообщения DNS идут на порт 53, обычно по UDP, потому что вопрос и ответ помещаются каждый в один пакет. Большие ответы и передачи между серверами используют TCP, и RFC 7766 делает его обязательной частью любой полной реализации DNS. Можешь попробовать сам. На большинстве компьютеров команда nslookup example.com выводит резолвер, которым она воспользовалась, и полученные адреса.

Записи хранят не только адреса

ЗаписьЧто хранитПример
AАдрес IPv4www.example.com → 198.51.100.20
AAAAАдрес IPv6 (RFC 3596)www.example.com → 2001:db8::20
CNAMEДругое имя, которое нужно искать вместо этогоshop.example.com → example.com
MXПочтовый сервер доменаexample.com → mail.example.com
NSАвторитетные серверы имёнexample.com → ns1.example.com
  1. Поиск www.example.com без кэша: каких серверов и в каком порядке спрашивает резолвер?
  2. Какой сервер даёт окончательный ответ для www.example.com?
    • Авторитетный сервер example.com
    • Корневой сервер
    • Сервер TLD com
    • Веб-сервер
  3. Сколько шагов занимает поиск без кэша в описании Cloudflare?
  4. Какая запись хранит адрес IPv6?
    • AAAA
    • A
    • MX
    • CNAME
  5. У записи TTL 3600. Сколько минут кэш может ею пользоваться?
  6. Какой наибольшей длины может быть одна метка (например, example) по RFC 1035?
  7. Сколько существует именованных корневых серверов?
  8. Ты искал имя 10 секунд назад, а кэш браузера хранит его 60 секунд. Сколько сообщений DNS покинут компьютер, если поискать снова сейчас?
  9. Для чего нужна запись MX?
    • Чтобы указать почтовый сервер домена
    • Чтобы хранить веб-страницу
    • Чтобы хранить адрес IPv6
    • Чтобы задавать TTL других записей
  10. Что заменила DNS?
    • Один файл HOSTS.TXT, скопированный на каждый компьютер
    • Телефонную сеть
    • IP-адреса
    • Маршрутизаторы
Частые ошибки
  • «DNS хранит веб-страницы.» DNS отвечает только записями: адресами, почтовыми серверами и другими именами. Сама страница приходит с веб-сервера по адресу, который вернула DNS.
  • «Когда сайт меняет адрес, все сразу видят новый.» Браузеры, операционные системы и резолверы держат старый ответ, пока не истечёт его TTL. При TTL 3600 некоторых посетителей ещё до часа могут отправлять на старый адрес.
  • «Корневых серверов ровно 13 компьютеров.» Есть 13 имён, от a до m, которые обслуживают 12 организаций. 17 октября 2026 г. они отвечали с 2047 экземпляров по всему миру.
  • «Мой компьютер сам спрашивает корневой сервер.» Твой компьютер один раз спрашивает рекурсивный резолвер. Резолвер проходит от корня к серверу TLD и к авторитетному серверу и возвращает только результат.
Заметка для учителяПрежде чем что-то рисовать, вместе прочитайте несколько имён справа налево; эту привычку чтения нужно выработать первой. На рисунках учеников чаще всего пропадает резолвер, поэтому нарисуйте его отдельно от компьютера и пусть каждая стрелка от компьютера заканчивается на нём. Пройдите восемь шагов симулятора один раз, а потом сразу нажмите «Искать снова». Второй поиск, при котором ничего не отправляется, объясняет кэширование лучше определения. Если есть терминал, nslookup для сайта, который класс уже знает, превращает схему в настоящую вещь.
Главное
  • DNS превращает имена в адреса; имена читают справа налево вниз по дереву.
  • Рекурсивный резолвер → корень → TLD → авторитетный: восемь шагов, если ничего не закэшировано.
  • Ответы кэшируются в браузере, ОС и резолвере на время TTL записи (в секундах).
  • A = IPv4, AAAA = IPv6, CNAME = псевдоним, MX = почта, NS = серверы имён.
Источники курса (28)
  • (checked 2026-10-17; reordered 2026-10-19: standards first, then official documentation, then operators and papers, history sources last)
  • IETF RFCs (rfc-editor.org): RFC 768 UDP (1980, 8-byte header)
  • RFC 791 IPv4 (1981, 32-bit addresses, "does not provide a reliable communication facility", TTL field "measured in units of seconds" but every module must decrease it by at least one, so it is only an upper bound)
  • RFC 792 ICMP (Time Exceeded)
  • RFC 801 NCP/TCP transition plan (1 January 1983)
  • RFC 894 Ethernet (1500-byte payload)
  • RFC 1034 and RFC 1035 DNS (1987, HOSTS.TXT kept by SRI-NIC, labels up to 63 octets and names up to 255, TTL in seconds)
  • RFC 1122 (127.0.0.0/8 loopback)
  • RFC 1918 private addresses (10/8, 172.16/12, 192.168/16)
  • RFC 2131 DHCP, RFC 3022 NAT, RFC 3596 AAAA records, RFC 3849 and RFC 5737 documentation addresses, RFC 4271 BGP-4, RFC 4291 IPv6 text form, RFC 6298 TCP retransmission timer (initial RTO 1 second)
  • RFC 6335 port ranges (0-1023, 1024-49151, 49152-65535)
  • RFC 7766 DNS over TCP, RFC 8200 IPv6 (128-bit addresses, Hop Limit)
  • RFC 8446 TLS 1.3 (one round-trip handshake)
  • RFC 9000 QUIC and RFC 9114 HTTP/3, RFC 9110 HTTP semantics (status code classes)
  • RFC 9293 TCP (three-way handshake, sequence numbers)
  • IANA: ip-parameters registry (recommended default TTL 64)
  • IPv4 free pool depleted 3 February 2011 (NRO and ARIN announcements)
  • Official documentation: MDN Web Docs "How does the Internet work?" (45 cables for 10 computers, switches, routers, MAC and IP addresses, internet and web)
  • "What is a URL?", "HTTP response status codes" (developer.mozilla.org)
  • Cloudflare Learning Center: "What is DNS?" (four kinds of DNS server, 8 steps of an uncached lookup, browser and OS caches, TTL)
  • "What is HTTP/3?" (cloudflare.com/learning)
  • Google Chrome Help, "Browse in Incognito mode" (support.google.com/chrome/answer/95464, checked 2026-10-19: Incognito limits what is saved to the device; websites and organisations that manage your network, like your school, employer or internet service provider, may be able to observe your activity)
  • Operators and papers: root-servers.org (13 root name servers run by 12 organisations, 2047 instances on 2026-10-17)
  • Jacobson and Karels 1988, Congestion Avoidance and Control (loss mostly congestion)
  • History blocks only: UCLA Samueli School of Engineering, Internet50 (first ARPANET message "LO", UCLA to SRI, 29 October 1969, 22:30)
  • historyofinformation.com and Wikipedia ARPANET (Kline)
  • Spiceworks/SRI history (HOSTS.TXT kept by SRI-NIC)
  • Numbers (2^32, 2^96, 45 and 6 cables, packet counts, round-trip times)

Проверено: 2026-10-17