Перейти к основному содержимому

DNS - система доменных имён и её работа

Всем

DNS​

Что такое DNS?​

DNS (Domain Name System, Система доменных имен) — это глобальная распределённая иерархическая система преобразования имен, построенная по принципу деревьев и делегирования, сопоставляющая доменные имена сайтов c IP-адресами, чтобы устройства могли находить друг друга и обмениваться данными.

Система работает с момента появления интернета в таком виде, потому что люди гораздо лучше запоминают слова, чем наборы цифр. Представьте, если бы каждый раз при открытии почты вы набирали 95.143.192.11 вместо mail.ru.

Но мы набираем google.com – как он превращается в IP-адрес сервера? Как мы ранее упомянули, есть целая сеть адресов, и, разумеется, есть адресная книга, эта книга – DNS (Domain Name System) – именно это система переводит удобные человеку домены (google.com) в машиночитаемые IP-адреса (например, 142.250.185.46).

DNS устроен иерархически — сверху — корневые серверы (их 13 логических групп, физически — сотни реплик по всему миру), ниже — серверы доменов первого уровня (.ru, .com, .org), ещё ниже — серверы второго и третьего уровней (например, yandex.ru, mail.yandex.ru). На каждом уровне происходит делегирование: корень говорит, где искать информацию про .ru, сервер .ru — где искать информацию про yandex.ru, и так до конца.

Вся эта структура поддерживается консорциумом ICANN (Internet Corporation for Assigned Names and Numbers) и национальными регистраторами. Данные в DNS хранятся в виде ресурсных записей — строгих строк определённого формата:
— запись A связывает имя с IPv4-адресом,
— запись AAAA — с IPv6-адресом,
— запись CNAME — указывает, что одно имя является алиасом другого,
— запись MX — задаёт почтовый сервер для домена,
— запись NS — указывает, какие DNS-серверы управляют данным доменом,
— запись TXT — содержит текстовую информацию, часто используется для подтверждения прав на домен или настройки безопасности.

Сводная таблица типов записей​

ТипНазначениеПример значения
AIPv4-адрес имени93.184.216.34
AAAAIPv6-адрес2606:2800:220:1:248:1893:25c8:1946
CNAMEПсевдоним другого имениwww.example.com → example.com
MXПочтовый сервер (с приоритетом)10 mail.example.com
NSАвторитативные DNS-серверы зоныns1.example.com
TXTПроизвольный текст (SPF, DKIM, верификация)v=spf1 include:_spf.google.com ~all
SOAStart of Authority — зона, serial, TTL по умолчаниюслужебная запись на каждой зоне
PTRОбратный DNS — имя по IPIP 203.0.113.10 → host.example.com
SRVСлужба на хосте и порту_sip._tcp.example.com

Сообщение DNS на проводе — заголовок (ID, флаги) и секции вопрос / ответ / authority / additional. Резолверу достаточно ответа с записями A или AAAA; секция authority подсказывает, кому делегирована зона, если ответа ещё нет.

Клиент (ваш браузер, приложение, ОС) никогда не взаимодействует с корневыми серверами напрямую. Он отправляет запрос одному из рекурсивных DNS-резолверов — серверов, которые умеют обходить всю цепочку делегирования и возвращать конечный ответ. Именно такой сервер указан в настройках вашего подключения (провайдер, роутер, 8.8.8.8, 1.1.1.1 или DoH в браузере).

Пошаговый DNS-резолв​

Типичный сценарий: в адресной строке вводят example.com и нажимают Enter. До первого HTTP-запроса браузер обязан узнать IP-адрес сервера. Интернет маршрутизирует пакеты по числовым адресам; доменное имя — удобная оболочка для человека.

Ниже — логическая цепочка от ввода URL до ответа веб-сервера. На каждом уровне сначала проверяют кэш; при промахе запрос уходит дальше по иерархии.

Иерархия DNS-кэша​

Перед обращением к Root и TLD браузер и ОС проходят несколько уровней кэша — это ускоряет повторные открытия того же сайта:

УровеньГдеЧто происходит при попадании
Кэш браузераChrome, Firefox, SafariIP берётся сразу, сеть DNS не трогают
Кэш ОСStub resolver (Windows, macOS, Linux)Ответ из памяти ОС
Локальный кэшРоутер, Pi-hole, корпоративный DNSОтвет из домашней или офисной сети
Кэш резолвераПровайдер, 8.8.8.8, 1.1.1.1, DoHОтвет из кэша публичного или провайдерского резолвера

Только при промахе на всех уровнях резолвер идёт к Root → TLD → Authoritative. Сводная схема трёх фаз (DNS, HTTPS, рендеринг) — в "От URL до пикселей".

ШагУчастникДействие
1ПользовательВводит домен (например, bytebytego.com)
2Браузер / ОСПроверяет локальный DNS-кэш. При попадании — сразу известен IP, шаги 3–13 пропускаются
3БраузерОтправляет DNS-запрос рекурсивному резолверу (провайдер, 8.8.8.8, 1.1.1.1, DoH)
4РезолверПроверяет свой кэш. При промахе начинает итеративный обход иерархии
5Резолвер → Root"Где искать зону .com?"
6RootОтвечает адресами TLD-серверов для .com (записи NS)
7Резолвер → TLD (.com)"Кто авторитативен для bytebytego.com?"
8TLDОтвечает адресами авторитативных DNS-серверов домена
9Резолвер → Authoritative"Какой IP у bytebytego.com?"
10AuthoritativeВозвращает ресурсную запись A (IPv4) и/или AAAA (IPv6), например 172.67.21.11
11РезолверСохраняет ответ в кэш на время TTL
12Резолвер → браузерПередаёт IP-адрес клиенту
13Браузер / ОСКэширует IP для следующих обращений
14БраузерУстанавливает TCP (порт 443 для HTTPS), при необходимости TLS, затем отправляет HTTP-запрос (GET / …) на этот IP
15Веб-серверОтвечает HTTP-ответом (200 OK, HTML и связанные ресурсы)

Разделение ролей. Браузер общается только с резолвером. Резолвер сам обходит Root → TLD → Authoritative — это итеративные запросы "снизу вверх" по дереву DNS. Авторитативный сервер хранит "истину" для зоны домена; корень и TLD лишь указывают, куда идти дальше.

HTTP после DNS. Пока IP неизвестен, TCP-соединение с веб-сервером не открывают. Симптом "сайт не открывается" при рабочем интернете часто связан с DNS (неверный резолвер, устаревший кэш, истёкший TTL после переезда). Подробнее про уровни кэша — в разделе DNS-кеширование ниже; цепочку до HTTP на примере spirzen.ru — в HTTP как основа веб-интеграций.

Краткая схема в одну строку:

example.com → кэш браузера/ОС → резолвер → Root → TLD (.com) → Authoritative → IP → HTTP GET → 200 OK

Play ITЗагрузка интерактивного демо…

image-7.png

Запросы к резолверам идут на порт 53 (UDP; при длинном ответе — TCP). Соседние службы и их порты — в справочнике по сетевым протоколам и портам.


Серверы DNS​

DNS-сервер в напоминалке по типам серверов — третья из шести базовых ролей: переводит доменное имя в IP, чтобы клиент мог отправить HTTP-запрос уже по числовому адресу.

В DNS участвуют два основных типа серверов:
— рекурсивные резолверы (например, 8.8.8.8 от Google или 1.1.1.1 от Cloudflare),
— авторитативные серверы — те, которые хранят оригинальные записи домена и отвечают за конкретную зону.

Рекурсивный резолвер работает от лица клиента. Он получает запрос вида "Какой IP у example.com?" и сам проходит цепочку Root → TLD → Authoritative (шаги 5–12 в таблице пошагового резолва):

  1. Запрашивает у корневых серверов — "Кто отвечает за .com?" → получает NS-записи для .com.
  2. Запрашивает у серверов .com — "Кто отвечает за example.com?" → получает NS-записи для example.com.
  3. Обращается к авторитативным серверам example.com и получает A-запись — 93.184.216.34.
  4. Возвращает этот адрес клиенту.

Этот процесс происходит за доли секунды и почти всегда незаметен. Но если один из серверов недоступен, задержки возрастают, или запрос завершается ошибкой.

Авторитативный сервер — это хранилище истины для конкретного домена. Он не выполняет рекурсию и не ищет информацию в других зонах. Он знает только то, что ему поручили хранить. Например, если домен example.com делегирован на серверы ns1.cloudflare.com и ns2.cloudflare.com, то только эти серверы могут выдать корректную A-запись. Именно поэтому при смене хостинга важно обновить A-запись именно в настройках DNS на авторитативных серверах — а не в браузере и не в локальном кэше.

Авторитативные серверы часто предоставляются регистраторами (например, ns1.reg.ru, ns2.reg.ru) или сторонними провайдерами, такими как Cloudflare, AWS Route 53, Yandex DNS. Выбор таких провайдеров даёт дополнительные возможности — защита от DDoS-атак, географическое распределение ответов, автоматические проверки зоны, интеграция с CDN.


Настройка DNS-серверов​

Когда устройство подключается к сети — проводной или беспроводной — оно получает не только IP-адрес (например, 192.168.1.37), но и дополнительные параметры: маску подсети, шлюз по умолчанию и адреса DNS-серверов. Эти параметры передаются через протокол DHCP (Dynamic Host Configuration Protocol), который автоматически выдаёт настройки клиентам в локальной сети.

По умолчанию ваш роутер предлагает в качестве DNS-сервера свой собственный IP (например, 192.168.1.1). Роутер при этом сам выступает в роли промежуточного кэширующего резолвера — он принимает запрос от вашего компьютера, проверяет, нет ли ответа в собственном кэше, и если нет — пересылает запрос провайдерскому DNS-серверу.

Провайдерские DNS-серверы — это рекурсивные резолверы, входящие в инфраструктуру интернет-провайдера. Они быстры для локальных пользователей, но иногда ограничивают доступ к контенту, добавляют рекламу в ответы на несуществующие домены или логируют запросы.

Именно поэтому многие пользователи вручную указывают альтернативные DNS-серверы в настройках сетевого подключения:

СерверАдрес IPv4Адрес IPv6Особенности
Google Public DNS8.8.8.8 / 8.8.4.42001:4860:4860::8888 / ::8844Высокая скорость, глобальное покрытие, базовая безопасность (фильтрация вредоносных доменов)
Cloudflare DNS1.1.1.1 / 1.0.0.12606:4700:4700::1111 / ::1001Акцент на приватность: заявлено, что журналы запросов удаляются в течение 24 часов
Quad99.9.9.9 / 149.112.112.1122620:fe::fe / 2620:fe::9Встроенный фильтр угроз: блокирует домены, известные как источники фишинга или вредоносного ПО
OpenDNS (Cisco)208.67.222.222 / 208.67.220.2202620:119:35::35 / 2620:119:53::53Политики фильтрации для дома и организаций
AdGuard DNS94.140.14.14 / 94.140.15.152a10:50c0:ad1:ff::ad1:ff / 2a10:50c0:ad2:ff::ad2:ffБлокировка рекламы и трекеров на уровне DNS
Yandex DNS77.88.8.8 / 77.88.8.12a02:6b8::feed:0ff / ::feed:1ffТри режима: базовый, "безопасный" (блокировка вредоносных), "семейный" (плюс блокировка 18+)

Сводная таблица тех же резолверов вместе с частными диапазонами IP — справочник IP и CIDR.

Изменить DNS можно:

  • в настройках Wi-Fi/проводного подключения в ОС (Windows, macOS, Linux, Android, iOS),
  • на самом роутере — тогда все устройства в сети будут использовать выбранный резолвер,
  • с помощью приложений (например, NextDNS, AdGuard Home), которые запускают локальный DNS-прокси с расширенными правилами фильтрации.

Смена DNS не шифрует весь ваш трафик (для этого нужен VPN или DoH/DoT), но повышает приватность по сравнению с провайдерским резолвером и часто ускоряет открытие сайтов за счёт оптимизации маршрутизации.


Национальная система доменных имён (НСДИ)​

Национальная система доменных имён (НСДИ) — государственная инфраструктура России, созданная для обеспечения устойчивости, безопасности и независимости интернета (часть концепции "суверенного Рунета"). Это сеть публичных DNS-серверов, которые преобразуют доменные имена в IP-адреса — ту же роль, что выполняют глобальные рекурсивные резолверы, но в контуре, контролируемом и обслуживаемом внутри страны.

В общей схеме DNS пользователь вводит, например, gosuslugi.ru; устройство запрашивает IP у DNS-сервера и только после ответа открывает веб-ресурс. Без DNS пришлось бы запоминать числовые адреса вроде 190.158.1.6 для каждого сайта. НСДИ обеспечивает, чтобы такие запросы по российским и критически важным зонам могли обрабатываться даже при сбоях или ограничениях доступа к зарубежной DNS-инфраструктуре.

Ключевые особенности НСДИ:

ОсобенностьСодержание
АвтономияПоддерживает работу российских интернет-ресурсов при отключении или блокировке связи с глобальной зарубежной DNS-инфраструктурой
ОбязательностьПо требованиям законодательства к НСДИ в обязательном порядке подключаются отечественные операторы связи и владельцы автономных систем
ДоступностьБазовые серверы системы доступны для использования обычными пользователями и корпоративными сетями

Технически НСДИ входит в "Систему оперативного реагирования" (СОР) — комплекс средств устойчивости российского сегмента интернета; в том числе хранит зеркало корневых DNS-зон (A–M), обновляемое через МРТС. Подробнее о СОР, ЦУС и узлах управления трафиком — в статье законодательство и инфраструктура Рунета.


DNS over HTTPS и DNS over TLS​

Классический DNS на порту 53 (UDP или TCP) передаёт имя запрашиваемого сайта в открытом виде — его видит провайдер и любой наблюдатель на пути. Для сокрытия содержимого запросов используют два распространённых варианта.

ПротоколПортКак устроенКогда встречается
DoT (DNS over TLS)853 / TCPОтдельное TLS-соединение к резолверуРоутеры, Android "Private DNS", корпоративные политики
DoH (DNS over HTTPS)443 / TCPDNS-запросы внутри обычного HTTPSБраузеры (Firefox, Chrome), https://cloudflare-dns.com/dns-query

DoH смешивается с остальным веб-трафиком на 443 — сложнее отфильтровать только DNS. DoT проще диагностировать (ss -tlnp | grep 853), но порт 853 иногда блокируют. Оба варианта не заменяют VPN для всего трафика: шифруется только резолвинг имён.

Порты и сводка — в справочнике по протоколам.


DNS-кеширование​

★ Именно благодаря DNS-кешированию (записи сайтов, которые вы уже посещали) ускоряется загрузка сайтов, и, если вы в первый раз посещаете сайт, он так долго открывается.

DNS-кеширование — это механизм временного хранения результатов предыдущих запросов, позволяющий избежать повторного обращения к серверам при каждом открытии страницы. Он работает на нескольких уровнях иерархии:


1. Кэш приложения​

Некоторые программы (например, браузеры на основе Chromium) поддерживают внутренний DNS-кэш, чтобы не дергать систему при повторном открытии вкладки. Обычно он живёт несколько минут.


2. Кэш операционной системы​

В Windows — это служба DNS Client (dnscache), в Linux — демон systemd-resolved или nscd. ОС хранит записи в памяти, и при повторном запросе отдаёт IP мгновенно. Время хранения (TTL, Time To Live) берётся из ресурсной записи — например, если A-запись имеет TTL = 300 секунд, запись останется в кэше 5 минут.

💡 TTL устанавливает авторитативный сервер. Чем ниже TTL — тем быстрее обновляются изменения (полезно при переносе сайта), но выше нагрузка на DNS. Чем выше TTL — тем стабильнее и быстрее работа, но дольше распространяются изменения.


3. Кэш роутера​

Большинство бытовых роутеров кэшируют DNS-запросы локально. Это уменьшает трафик к провайдеру и ускоряет ответ для всех устройств в доме.


4. Кэш провайдерского рекурсивного резолвера​

Крупные провайдеры и публичные DNS-сервисы обслуживают миллионы запросов в секунду. Без кэширования это было бы невозможно. Они хранят популярные записи (например, vk.com, youtube.com) в оперативной памяти, и до 90 % запросов обрабатываются без выхода в глобальную сеть.


Как очистить кэш?​

ipconfig /flushdns
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
sudo systemd-resolve --flush-caches
  • Chrome/Edge: открыть chrome://net-internals/#dns → кнопка Clear host cache

Очистка кэша полезна при диагностике — например, если сайт переехал на новый IP, а у вас он всё ещё открывается со старого адреса. После смены DNS на авторитативных серверах дождитесь истечения TTL или сбросьте кэш на клиенте.

Проверить, что видит резолвер (минуя локальный кэш браузера):

dig example.com +short
dig example.com A +trace
nslookup example.com

💡 DHCP (см. выше) выдаёт не только IP, но и адреса DNS-серверов. Если "сайт не открывается", проверьте и DNS в настройках интерфейса (ipconfig /all в Windows, resolvectl status в Linux).

Windows 11 — сброс сети

Если после VPN, антивируса или драйвера пропал интернет, а ipconfig /flushdns не помог — в Параметры → Сеть и Интернет → Состояние → Сброс сети сбрасываются адаптеры и стек TCP/IP (статические IP придётся ввести заново). Подробнее — Windows 11 — настройка и работа.


Домены​

Тут мы затронули домены и хостинг. Здесь всё просто – сеть распределена организованно.

Домен — это уникальное текстовое имя, идентифицирующее ресурс в интернете. Он служит человекочитаемым адресом и заменяет числовой IP, делая сеть удобной для использования.

Домен строится по принципу обратного дерева: самый общий элемент — справа, самый конкретный — слева.

Пример: docs.spirzen.ru

ЧастьУровеньНазначение
ruдомен верхнего уровня (TLD — Top-Level Domain)Указывает на зону: географическую (.ru, .de), общую (.com, .org), тематическую (.edu, .gov, .io)
spirzenдомен второго уровня (SLD — Second-Level Domain)Уникальное имя, выбираемое владельцем при регистрации
docsподдомен (subdomain)Логическое разделение ресурсов внутри одного домена. Может быть многоуровневым: lab.dev.spirzen.ru

Поддомены не требуют отдельной регистрации — они создаются в настройках DNS для основного домена. Именно поэтому mail.yandex.ru, maps.yandex.ru и music.yandex.ru управляются одним владельцем и используют одну DNS-зону.

Полное доменное имя (FQDN — Fully Qualified Domain Name) включает всю цепочку и завершается точкой: docs.spirzen.ru. — так выглядит имя внутри протокола DNS. Точка в конце — корень дерева, но в обычной жизни её опускают.

Домен — это не сайт и не хостинг. Это лицензия на имя, выданная на определённый срок (от 1 года и более). Пока лицензия активна, владелец может управлять DNS-записями, перенаправлять трафик, выпускать SSL-сертификаты.

image-8.png


Регистрация домена​

Домен (domain) – "имя" сайта, которое арендуется у регистратора.

Регистрация домена — это процедура получения права использования уникального имени в определённой зоне на оговорённый срок.

Процесс включает трёх участников:

  1. ICANN — международная организация, управляющая корневой зоной и утверждением новых TLD.
  2. Регистратура — организация, поддерживающая техническую инфраструктуру зоны (например, RU-CENTER для .ru, Verisign для .com).
  3. Регистратор — компания, через которую пользователь оформляет домен (например, Reg.ru, Namecheap, GoDaddy). Регистратор взаимодействует с регистратурой от имени клиента.

Этапы регистрации:

  1. Выбор имени и зоны (например, mysite.com).
  2. Проверка доступности через регистратора — запрос к регистратуре: свободно ли имя?
  3. Указание контактных данных (WHOIS) — администратор, технический контакт, платёжный контакт.
  4. Выбор срока регистрации (1–10 лет для большинства зон).
  5. Оплата и активация — домен появляется в глобальной базе, и можно настраивать DNS.

Важные аспекты:

  • Автообновление — большинство регистраторов включают его по умолчанию. Если отключено и оплата не поступила — домен освобождается и может быть выкуплен другим.
  • Конфиденциальность WHOIS — в некоторых зонах (например, .ru) контактные данные публичны по умолчанию. В других (например, .com) можно приобрести услугу приватности, чтобы вместо ваших данных в WHOIS отображалась информация агента.
  • Передача между регистраторами — возможна после 60 дней с момента регистрации. Требует подтверждения по email и иногда — разблокировки домена.

Регистрация не гарантирует право на торговую марку. Если домен совпадает с зарегистрированной маркой, владелец может потребовать его передачи через UDRP-процедуру (Uniform Domain-Name Dispute-Resolution Policy).


Хостинг​

★ Хостинг (от английского host) – сервер, где физически хранятся файлы сайта, которые отправятся в ответ – все веб-страницы, стили, скрипты, изображения.

Они бывают нескольких видов:

  • Shared (shared hosting) — один физический сервер на многих клиентов, дешевле, но соседи делят ресурсы;
  • VPS — виртуальный выделенный сервер (изолированная ВМ с root-доступом);
  • Dedicated — целый физический сервер только под ваши проекты.

Как развернуть сайт на домене?​

То есть, чтобы сайт заработал, нужно сначала купить домен (тот самый удобный адрес), затем настроить DNS (указав IP хостинга), загрузить свои файлы сайта на хостинг. И да, всё нужно покупать.

При регистрации домена, нужно найти "регистратора" - к примеру, Reg.ru, Namecheap, GoDaddy, проверить доступность доменного имени, проверить сроки продления и оформить покупку. Если домен доступен – значит, права предоставит регистратор. Если домен занят кем-то – придётся договориться с владельцем.

Существуют сервисы DNS, которые включат в себя набор услуг по защите от DDoS – к примеру, Cloudflare, AWS Route 53.

Значит, если вы захотите развернуть свой сайт, то у вас есть два процесса.

  1. Размещение сайта.
  1. Регистрация домена
DNS из Python

Для запросов A/AAAA/MX/TXT из скриптов и тестов — dnspython; в async-сервисах — aiodns или pycares.

Обзор DNS-библиотек и остального сетевого стека Python — справочник сетевых библиотек.