$ sudo teach IT
Модуль 6

DHCP и DNS — незаметные помощники

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

Вы узнаете
  • как устройство получает сетевые настройки при подключении;
  • как имя сайта превращается в IP-адрес и кто в этом участвует;
  • какие бывают DNS-записи и как защитить запросы от посторонних глаз.

6.1DHCP: автоматическая выдача адреса

Когда вы подключаетесь к Wi-Fi, вам не приходится вводить IP-адрес вручную. За вас это делает DHCP (Dynamic Host Configuration Protocol). Обмен состоит из четырёх сообщений, которые легко запомнить по первым буквам — DORA:

Схема
Discover
«Есть тут сервер DHCP?»
Offer
«Есть. Предлагаю адрес 192.168.1.25»
Request
«Беру этот адрес»
Acknowledge
«Он ваш на 24 часа»

Вместе с адресом устройство получает всё остальное, что нужно для работы: маску сети, адрес шлюза по умолчанию и адреса DNS-серверов. Адрес выдаётся в аренду на ограниченный срок, и устройство периодически её продлевает.

DHCP работает поверх UDP (порты 67 у сервера и 68 у клиента). Первые сообщения рассылаются всем в локальной сети сразу, ведь у устройства ещё нет ни собственного адреса, ни адреса сервера. Дома роль сервера DHCP выполняет роутер.

6.2DNS: телефонная книга интернета

Людям удобны имена, сетям — числа. DNS (Domain Name System) переводит одно в другое: вы вводите example.com, а компьютер узнаёт, что это 203.0.113.10.

Имена устроены иерархически и читаются справа налево. В имени www.example.com часть com — домен верхнего уровня, example — домен второго уровня, www — имя внутри него. За каждый уровень отвечают свои серверы, и единой базы «всех имён» не существует — она распределена по всему миру.

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

1.Ваше устройство спрашивает резолвер: «Какой адрес у www.example.com?»

2.Резолвер обращается к корневому серверу. Тот адреса не знает, но подсказывает, кто отвечает

за зону com.

3.Резолвер спрашивает сервер зоны com. Тот подсказывает, какие серверы отвечают за

example.com.

4.Резолвер спрашивает авторитетный сервер домена example.com и получает окончательный

ответ.

5.Резолвер возвращает адрес вашему устройству и запоминает его на будущее.

Аналогия: справочная служба

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

6.3Типы DNS-записей

В DNS хранятся не только адреса сайтов. Каждая запись имеет тип, который определяет её смысл:

Тип Что хранит Пример использования
A Адрес IPv4 для имени Открыть сайт по имени
AAAA Адрес IPv6 для имени То же самое, но для IPv6
CNAME Псевдоним: «это имя — то же, что вон то» Направить www на основной домен или на сервис хостинга
MX Почтовый сервер домена и его приоритет Куда доставлять письма для адресов @example.com
NS Серверы, отвечающие за зону Передать управление доменом DNS-хостингу
TXT Произвольный текст Подтверждение владения доменом, правила защиты почты
PTR Обратная запись: имя по IP-адресу Проверка почтовых серверов
SRV Адрес и порт конкретной службы Телефония, корпоративные сервисы
HTTPS Подсказки для подключения к сайту Сообщить браузеру, что сайт поддерживает HTTP/3
CAA Кто вправе выпускать сертификаты для домена Защита от выпуска сертификата посторонним центром

6.4Кеширование и TTL

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

У каждой записи есть TTL — срок в секундах, в течение которого ответ можно хранить. Это то же сокращение, что и у поля в заголовке IP, но смысл другой: там — число хопов, здесь — время.

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

По умолчанию DNS использует UDP, порт 53: вопрос и ответ помещаются в одну датаграмму. Если ответ слишком велик, запрос повторяется по TCP на том же порту.

6.5Приватность и защита DNS

Классический DNS передаёт запросы открытым текстом. Даже если сам сайт защищён HTTPS, имя, которое вы запросили, видно провайдеру и владельцу Wi-Fi. К тому же ответ можно подделать и направить вас на чужой сервер. Эти проблемы решают несколько расширений:

Технология Порт Что делает
DoT (DNS over TLS) 853, TCP Шифрует запросы между устройством и резолвером.
DoH (DNS over HTTPS) 443, TCP Прячет запросы внутри обычного HTTPS — со стороны они неотличимы от посещения сайта. Встроен в современные браузеры.
DoQ (DNS over QUIC) 853, UDP То же шифрование, но на более быстром транспорте QUIC.
DNSSEC — Не шифрует, а подписывает ответы: резолвер может проверить, что запись не подменили по дороге.
Не путайте
  • Шифрованный DNS скрывает запросы от провайдера, но не от самого резолвера: он по- прежнему видит, какие имена вы спрашиваете. Вы не убираете наблюдателя, а выбираете, кому доверять.
На следующий урок