Перейти к содержимомуHisnLabs
← DNS: адресная книга интернета

Урок 1 из 4 · 6 мин

Что делает DNS

Почему компьютерам нужен перевод имён в номера для каждого сайта, который вы посещаете, и кто на самом деле отвечает на этот запрос.

Курс о TCP/IP рассказывает о том, как компьютеры адресуют друг друга по номерам. Никто не хочет запоминать номера, чтобы почитать новости или отправить письмо, поэтому в интернете работает перевод имён в номера, стоящий почти за всем, что вы делаете в сети: система доменных имён, или DNS. Learning Center Cloudflare называет её просто «телефонной книгой интернета».

Дерево, а не единый список

DNS была спроектирована, согласно RFC 1034, вокруг «согласованного пространства имён, используемого для указания на ресурсы», организованного как «древовидная структура», в которой «каждый узел и лист дерева соответствует набору ресурсов». На практике это дерево состоит из уровней, каждый из которых отвечает за меньшую часть имён:

  • Корень, на вершине дерева, не знает адреса ни одного сайта, но знает, какие серверы отвечают за каждый домен верхнего уровня (.com, .org и так далее).
  • Сервер домена верхнего уровня (TLD) тоже не знает ваш конкретный сайт, но знает, какой авторитативный сервер отвечает за этот домен.
  • Авторитативный сервер хранит фактический ответ для конкретного домена: на какой IP-адрес сейчас указывает example.org.
  • Резолвер (или рекурсор) — это сервер, к которому фактически обращается ваше устройство. Он проделывает работу по спуску по дереву от вашего имени, а затем на некоторое время кэширует ответ, чтобы не повторять весь путь при каждом запросе.

Learning Center Cloudflare использует для той же идеи сравнение с библиотекой: «рекурсора можно представить как библиотекаря, которого просят найти определённую книгу где-то в библиотеке», в то время как «корневой сервер — это первый шаг в переводе (разрешении) удобочитаемых для человека имён хостов в IP-адреса… он служит указателем на другие, более конкретные места».

Прослеживаем один запрос

  1. Ваш Mac спрашивает у настроенного резолвера — часто это ваш интернет-провайдер, Wi-Fi-роутер или публичный сервис — какой адрес стоит за именем.
  2. Если у резолвера ещё нет кэшированного ответа, он спрашивает у корневого сервера, к какому серверу TLD обратиться.
  3. Он спрашивает у этого сервера TLD, к какому авторитативному серверу обратиться.
  4. Он спрашивает у авторитативного сервера фактический ответ, затем возвращает этот ответ вашему устройству и сохраняет копию в кэше для других запросов.

RFC 1035 определяет точный формат сообщений для этих запросов и ответов и отмечает, что они обычно передаются по UDP или TCP через порт 53. В этом запросе по умолчанию нет ничего секретного; следующий урок рассказывает о том, кто может его увидеть и почему это важно.

Запрос DNS из командной строки
dig example.com

;; ANSWER SECTION:
example.com.		233	IN	A	104.20.23.154
example.com.		233	IN	A	172.66.147.243

Эта единственная команда — весь процесс из этого урока, происходящий примерно за десятую долю секунды: ваш резолвер прошёл по дереву (или отдал кэшированный ответ) и вернул числовой адрес, стоящий за именем.

Главное

  • DNS переводит удобочитаемые имена в числовые IP-адреса, которые компьютеры фактически используют для соединения.
  • RFC 1034 организует DNS как дерево: корень, затем серверы доменов верхнего уровня, затем авторитативные серверы для каждого домена.
  • Резолвер (рекурсор) проходит по этому дереву от имени вашего устройства и кэширует ответ.
  • RFC 1035 определяет формат запроса и ответа; запросы обычно передаются по UDP или TCP через порт 53.
  • DNS-запрос не секретен по умолчанию: это обычный, читаемый трафик, если он специально не зашифрован.

Проверьте себя

  1. 1. Какова главная задача DNS?

    • Шифрование веб-трафика
    • Перевод доменных имён в IP-адреса, которые компьютеры используют для соединения — Верно.
    • Назначение частных IP-адресов домашним устройствам
    • Управление тем, какой порт использует приложение

    Cloudflare описывает DNS как «телефонную книгу интернета»: она переводит доменные имена в IP-адреса.

  2. 2. В дереве DNS, описанном в RFC 1034, что фактически знает корневой сервер?

    • IP-адрес каждого сайта
    • Какие серверы отвечают за каждый домен верхнего уровня, а не адреса отдельных сайтов — Верно.
    • Ничего; он чисто декоративный
    • Только адреса, оканчивающиеся на .com

    Сравнение Cloudflare: корневой сервер «служит указателем на другие, более конкретные места», направляя к серверам TLD, а не отвечая напрямую.

  3. 3. Что делает DNS-резолвер (рекурсор)?

    • Хранит файлы каждого сайта
    • Проходит по дереву DNS от имени вашего устройства и кэширует найденный ответ — Верно.
    • Занимается только электронной почтой
    • Полностью устраняет необходимость в IP-адресах

    Cloudflare сравнивает рекурсора с библиотекарем, который идёт и находит ответ, а затем резолвер кэширует его, чтобы будущие запросы были быстрее.

  4. 4. Зашифрован ли обычный DNS-запрос по умолчанию?

    • Да, всегда
    • Нет, это обычный, читаемый трафик, если он специально не зашифрован — Верно.
    • Только для доменов .com
    • Только через Wi-Fi

    RFC 1035 определяет формат сообщений DNS без встроенного шифрования; для шифрования DNS нужен отдельный механизм, о котором рассказывает следующий урок.

Примените на практике в FireAI

Примените этот урок на своём Mac.

Источники

Примените это на своём Mac

Все функции бесплатно на 17 дней, без банковской карты.

Скачать для Mac Документация