linuxlab.io
Учебники▾
  • Линукс и сети
    Файловая система, процессы, TCP/IP, BGP и OSPF
    →
  • Terraform и IaC
    HCL, state, plan/apply на sandbox LocalStack
    →
  • Git и GitHub
    Объектная модель, plumbing, ветвление, GitHub Actions
    →
Все учебники →
ЦеныО платформеВойтиСоздать аккаунт
/
Intro
Lessons
Footer
linuxlab-УчебникиЦеныО платформеКонфиденциальность и куки
Copyright © 2026 LinuxLab. Все права защищены.
linuxlab.io
Учебники▾
  • Линукс и сети
    Файловая система, процессы, TCP/IP, BGP и OSPF
    →
  • Terraform и IaC
    HCL, state, plan/apply на sandbox LocalStack
    →
  • Git и GitHub
    Объектная модель, plumbing, ветвление, GitHub Actions
    →
Все учебники →
ЦеныО платформеВойтиСоздать аккаунт
/
  • Введение
  • Уроки
  • How it works
  • Симулятор
  • База знаний
  • Собеседование
home/linux/how/dns

how/network

Как DNS превращает имя в IP

Браузер хочет example.com, а интернет понимает только IP-адреса. Кто-то должен превратить имя в число - и делает это иерархия серверов.

Ты вбиваешь example.com в браузер и видишь страницу. Но интернет работает по IP-адресам, не по именам. Где-то посередине имя example.com превратилось в число вроде 93.184.216.34. Кто это сделал?

Сделал DNS (Domain Name System) - большая глобальная «телефонная книга» интернета. Только устроена она хитро: никто не хранит всю книгу целиком. Адрес каждого имени знает только один конкретный сервер - но мы не знаем какой. Поэтому DNS работает через иерархию серверов, к которым мы обращаемся по очереди от общего к частному.

Нажми ▶ - посмотрим как один запрос «дай мне IP example.com» разворачивается в четыре сетевых обращения и почему второй раз ответ приходит мгновенно.

step 1/6·00 · приложение хочет example.com
приложениеexample.com?...local resolvercache:.com NS · ?example.com NS · ?example.com A · ?udp 53root(.) · 13 anycast NS.com TLDa.gtld-servers.netauth ns.example.com93.184.216.34 ← здесьбраузер хочет example.com - стек идёт в /etc/resolv.conf за адресом resolver-а

§ шаги

  1. Браузер открывает соединение. Чтобы знать куда - нужен IP. Стек смотрит «кто у нас resolver?» (обычно адрес прилетел в DHCP) и собирается отправить ему DNS-запрос на UDP/53.

    Локальный resolver - это либо сервис в твоей ОС (systemd-resolved на Linux), либо отдельный сервер (1.1.1.1, 8.8.8.8, корпоративный).

итого

Что важно запомнить:

  • На твоей машине обычно есть локальный resolver - это сервис, который делает всю работу за тебя. Тебе достаточно одного запроса к нему. Он сам сходит к root, к TLD, к авторитету и вернёт ответ
  • Адрес resolver'а ты обычно получаешь в DHCP-опциях. Можно посмотреть в /etc/resolv.conf (классика) или resolvectl status (systemd-resolved). Популярные публичные: 8.8.8.8 (Google), 1.1.1.1 (Cloudflare)
  • Каждый ответ кешируется на TTL (время жизни записи). Внутри TTL никаких сетевых запросов вообще не происходит - ответ выдаётся из локального кеша. Поэтому второй раз сайт открывается быстрее
  • DNS поверх UDP на порту 53 (см. port). Для больших ответов и зашифрованного DNS (DoT/DoH) используется TCP/853 или HTTPS
  • Если DNS сломан - сайты «не открываются», хотя пинг по IP работает. Классический симптом: ping google.com зависает, ping 8.8.8.8 отвечает

Если хочется потрогать DNS руками - есть урок intermediate-04-dns с командой dig и снифом пакетов. И статья dns-resolution в базе с детальной структурой пакета.

§ копнуть в базу знаний

  • dns-resolutionDNS resolution - расширенная статья
  • portport - что такое UDP/53
  • tcp-handshakeTCP handshake - что происходит после получения IP

§ попробовать руками

  • ›intermediate-04-dns- DNS - посмотреть руками с dig и tcpdump
Footer
linuxlab-
Copyright © 2026 LinuxLab. Все права защищены.
Учебники
Цены
О платформе
Конфиденциальность и куки