DNS-сервер: что это и как работает?

IP-адрес 172.217.7.206 вам ни о чём не говорит? Это один из IP-адресов YouTube.ru. Нам не нужно запоминать такие адреса благодаря DNS — Domain Name System (Система доменных имён). DNS упрощает нашу жизнь, подобно тому, как контакты в смартфоне позволяют нам искать людей по имени, а не по номеру телефона.

Процесс поиска IP-адреса

Введя в браузере адрес wiki.merionet.ru и нажав Enter, вы не сразу обращаетесь к DNS-серверу. Сначала ваш браузер или операционная система проверяют свой кэш. Если сайт уже посещался, запись о нём сохранена локально, ускоряя последующие запросы. Если сайт новый, запрос отправляется к рекурсивному DNS-серверу (resolver). Обычно это сервер вашего интернет-провайдера, но вы можете использовать другие, например, 8.8.8.8 и 1.1.1.1. Resolver также проверяет свой кэш. Если адрес найден, он возвращается; если нет, начинается поиск.

Путешествие к IP-адресу: от resolver до авторитативного сервера

Resolver отправляет запрос к корневому (root) серверу DNS — высшей точке DNS-иерархии. Корневых серверов множество. Они не предоставляют IP-адрес напрямую, а указывают, к какому серверу обратиться дальше. Далее запрос переходит к серверу верхнего уровня (TLD — top-level domain), например, .com, .org, .ru, .net. Существуют gTLD (Generic Top Level Domain, например, .edu, .com, .ai) и ccTLD (Country Code Top Level Domain, например, .ru, .us, .uk). Например, на запрос о wiki.merionet.ru корневой сервер укажет на ccTLD-сервер (.ru). Затем ccTLD-сервер направит запрос к авторитативному nameserver, который и предоставит необходимый IP-адрес. Если авторитативный сервер не найдёт запись, он сообщит об этом. Resolver передаст результат вашему устройству и сохранит его в кэше.

Типы DNS-запросов

В DNS существуют три основных типа запросов:

  1. Рекурсивный: «Пришли мне IP-адрес сайта wiki.merionet.ru».
  2. Итеративный: «Пришли мне IP-адрес сайта wiki.merionet.ru или авторитативный DNS-сервер».
  3. Обратный: «Какое доменное имя у такого-то IP-адреса?».

Теперь вы знаете, как работает DNS. Попробуйте определить количество доменов в адресе https://wiki.merionet.ru.

Что будем искать? Например,программа