· 6 мин. на чтение.

Что такое DNS

Что такое DNS

Женщина, которой звонили, чтобы добавить компьютер в интернет

1982 год. Менло-Парк, Калифорния. В офис Стэнфордского исследовательского института снова звонят.

Элизабет Фейнлер - коллеги звали её Джейк - берёт трубку. Очередной системный администратор из очередного университета хочет добавить новый компьютер в ARPANET. Это значит: внести запись в файл HOSTS.TXT.

jake_feinler

HOSTS.TXT - единственный список всех компьютеров в сети. Имя машины, её числовой адрес, контакты ответственного. Один файл. Одна команда. Один телефон.

К 1982 году в ARPANET было несколько сотен машин. Файл обновлялся несколько раз в неделю. Его скачивали вручную, по команде ftp, сотни раз в день. Стоило выйти новой версии - часть машин ещё работала со старой. Имена задваивались. Адреса конфликтовали. Администраторы ругались.

Фейнлер понимала: так больше нельзя. Интернет перерос записную книжку.

В ноябре 1983 года инженер Пол Мокапетрис из Университета Южной Калифорнии опубликовал два технических документа - RFC 882 и RFC 883. Он предложил систему, которая делала бы то, что делал файл Фейнлер - только автоматически, распределённо и для любого количества имён.

Так появился DNS. Система доменных имён работает до сих пор - и ни разу принципиально не менялась.

Что такое DNS

DNS расшифровывается как Domain Name System - система доменных имён.

Её задача: переводить понятные людям имена сайтов (например, google.com) в числовые IP-адреса, которые используют компьютеры (например, 142.250.185.78). Браузеры, почтовые клиенты, приложения - все они работают с IP-адресами. Но помнить "142.250.185.78" вместо "google.com" никто не хочет. DNS берёт это на себя.

Сравнение с телефонной книгой точное, но неполное. Телефонная книга - плоский список. DNS - дерево. Иерархическая распределённая система, где за разные уровни отвечают разные серверы в разных странах. Именно это позволяет ей работать с миллиардами имён - без единого файла и без единого телефона.

Путь одного запроса

Вы вводите в браузере newscroll.ru и нажимаете Enter. Вот что происходит за сотню миллисекунд.

Сначала браузер проверяет собственную память - вдруг адрес уже известен с прошлого раза. Нашёл - подключается сразу.

Не нашёл - спрашивает у операционной системы. У неё тоже есть кэш DNS. Плюс на каждом компьютере есть файл под названием hosts - небольшой локальный список имён и адресов, который можно редактировать вручную. Его изобрела ещё Фейнлер; он до сих пор существует в Windows, Mac и Linux, просто о нём мало кто знает.

Если и ОС не знает - запрос уходит к DNS-серверу. Обычно это сервер провайдера, назначенный автоматически при подключении. Или тот, что вы выбрали вручную - например, 8.8.8.8 от Google. Этот сервер называют рекурсивным резолвером: он сам пойдёт искать ответ, если не знает его.

Резолвер спрашивает у корневого сервера DNS. Корневой не знает конкретного адреса newscroll.ru - но знает, кто отвечает за зону .ru, и отправляет резолвер туда.

Сервер зоны .ru - его называют TLD-сервером, от Top Level Domain - знает, какой сервер обслуживает домен newscroll.ru, и даёт его адрес.

Авторитетный сервер - последняя остановка. Здесь хранятся настоящие записи домена: точный IP-адрес сайта. Он отвечает резолверу.

Резолвер получает IP, запоминает ответ на какое-то время и возвращает браузеру. Браузер подключается к серверу. Страница открывается.

dns_path_request

Тринадцать имён, на которых держится интернет

Корневых серверов DNS - тринадцать. Точнее: тринадцать имён. От a.root-servers.net до m.root-servers.net.

Это не тринадцать машин. За каждым именем стоят сотни физических серверов, рассредоточенных по всему миру. Технология anycast устроена так, что запрос автоматически идёт к ближайшей копии - не обязательно в США, а может в Москву или Франкфурт.

Корневые серверы обслуживают разные организации: ICANN, Verisign, NASA, армия США, RIPE NCC и другие. Намеренно разные - чтобы не было единой точки отказа. Если один оператор пропадёт, остальные продолжат работу.

Что важно понимать: корневые серверы не знают адресов конкретных сайтов. Они только знают, к кому идти дальше. Как диспетчер в аэропорту: сам не летит, но знает, кто знает маршрут.

Что хранится в DNS: типы записей

DNS - это не просто таблица "имя → адрес". Это база данных с несколькими типами записей.

Запись A - основная. Связывает имя домена с IPv4-адресом. Именно её запрашивает браузер.

Запись AAAA - то же самое, но для IPv6. Если сайт поддерживает оба протокола, оба типа записи существуют одновременно.

Запись CNAME - псевдоним. Например, www.newscroll.ru - это CNAME, который указывает на newscroll.ru. Позволяет не дублировать IP в каждой записи.

Запись MX - почтовый сервер домена. Когда кто-то отправляет письмо на адрес с доменом, почтовый клиент сначала спрашивает DNS: "Куда доставить?" MX-запись отвечает.

Запись TXT - текстовая. Используется для подтверждения владения доменом и для настроек защиты почты. Например, Google просит добавить строку в TXT, чтобы верифицировать сайт в Search Console.

DNS_records

Почему изменения в DNS распространяются небыстро

У каждой DNS-записи есть TTL - Time To Live, время жизни в кэше. Оно указывает, сколько секунд другие серверы могут хранить запись, прежде чем запросить актуальную версию.

TTL = 3600 означает: кэшировать один час. TTL = 86400 - сутки.

Вот почему, когда владелец сайта меняет хостинг, изменения видны не сразу. Серверы по всему миру держат в кэше старый адрес - пока не истечёт TTL. Это называют "распространением DNS", и оно занимает от нескольких минут до 48 часов.

Если разработчик говорит "подождите, DNS ещё не обновился" - это именно об этом.

Зачем менять DNS-сервер

При подключении к интернету провайдер автоматически назначает свой DNS-сервер. Большинство пользователей об этом не думают - всё работает.

Но менять DNS-сервер имеет смысл по нескольким причинам.

Скорость. Провайдерские DNS бывают медленными. Публичные серверы - Google 8.8.8.8 или Cloudflare 1.1.1.1 - чаще отвечают быстрее, потому что у них больше инфраструктуры и лучше кэширование. Разница в десятки миллисекунд, но при большом количестве запросов это ощутимо.

Приватность. Провайдер видит все DNS-запросы: какие сайты вы запрашиваете и когда. Это не содержимое страниц - но список адресов у него есть. Cloudflare 1.1.1.1 декларирует, что не хранит пользовательские запросы дольше 24 часов и не передаёт их третьим лицам.

Фильтрация. Некоторые DNS-серверы блокируют рекламу и вредоносные сайты прямо на уровне запроса. AdGuard DNS и NextDNS работают именно так - браузер не получает адрес рекламного трекера и просто не загружает его.

Доступ к сервисам. Об этом - отдельно.

Популярные публичные DNS-серверы:

  • Google: 8.8.8.8 и 8.8.4.4
  • Cloudflare: 1.1.1.1 и 1.0.0.1
  • Яндекс: 77.88.8.8 и 77.88.8.1
  • AdGuard: 94.140.14.14 и 94.140.15.15

DNS и доступ к сервисам

Часть сайтов в России недоступна - либо заблокирована Роскомнадзором, либо сама компания закрыла доступ с российских IP.

Блокировки работают по-разному. Одни - на уровне IP: пакеты не доходят до сервера. Другие - на уровне DNS: провайдерский сервер возвращает неправильный адрес или просто молчит. Смена DNS-сервера помогает только во втором случае.

Есть и более сложные ситуации. ChatGPT, например, не заблокирован Роскомнадзором - OpenAI самостоятельно закрыл доступ с российских IP-адресов. Это значит: DNS правильно переведёт имя в адрес, но сервер OpenAI всё равно откажет вашему запросу - из-за IP.

Для таких случаев существуют специализированные DNS-сервисы. Их называют Smart DNS: они не только переводят имена в адреса, но и маршрутизируют часть трафика через собственные серверы с нероссийскими адресами.

Например сервис Comss.one DNS работает именно так.

DNS over HTTPS: когда запросы шифруются

Классический DNS работает открыто: запросы передаются без шифрования. Провайдер видит, что вы запрашивали google.com или youtube.com - даже если сам сайт загружается по защищённому HTTPS.

DNS over HTTPS (DoH) - стандарт 2018 года. Он упаковывает DNS-запросы в обычный зашифрованный HTTPS-трафик. Провайдер видит соединение, но не видит, что именно вы запрашиваете.

DoH встроен во все современные браузеры: Chrome, Firefox, Edge, Safari, Яндекс.Браузер, Opera. Включается в настройках безопасности - там же, где можно указать адрес DNS-сервера.

DNS over TLS (DoT) - похожий механизм, но для всего устройства сразу. Android поддерживает его через функцию "Частный DNS" в настройках сети. Там достаточно ввести имя сервера, например dns.comss.one, - и все приложения на телефоне будут использовать зашифрованный DNS, не только браузер.

Для обычного пользователя разница между DoH и DoT небольшая: оба шифруют запросы. DoH удобнее настраивать в браузере, DoT - на уровне всего устройства или роутера.

FAQ

DNS - это система, которая переводит понятные человеку названия сайтов (google.com, vk.com) в числовые IP-адреса, которые используют компьютеры для соединения. Когда вы вводите адрес в браузере, DNS-сервер ищет соответствующий IP и отправляет вас на нужный сервер. Без DNS нужно было бы вводить числа вроде 142.250.185.78 вместо google.com.

Браузер проверяет локальный кэш, потом кэш операционной системы. Если адрес не найден - запрос уходит к DNS-серверу (провайдера или публичному, вроде 8.8.8.8). Тот обращается к корневым серверам, оттуда к серверу нужной доменной зоны (.ru, .com), оттуда к авторитетному серверу конкретного домена. Получив IP-адрес, браузер подключается к сайту. Весь процесс занимает миллисекунды.

Это сервер, к которому обращается ваш компьютер для перевода доменных имён в IP-адреса. По умолчанию используется сервер вашего провайдера. Вы можете заменить его на любой публичный: Google (8.8.8.8), Cloudflare (1.1.1.1), Яндекс (77.88.8.8) или специализированный вроде AdGuard DNS или Comss.one.

Для скорости - публичные DNS часто быстрее провайдерских. Для приватности - Cloudflare не хранит логи запросов. Для блокировки рекламы - AdGuard DNS фильтрует трекеры на уровне DNS. Для доступа к сервисам - специализированные Smart DNS вроде Comss.one помогают открыть сайты, ограниченные по IP.

DNS-запросы по умолчанию передаются без шифрования - провайдер видит, какие сайты вы запрашиваете. DNS over HTTPS (DoH) шифрует эти запросы, упаковывая их в стандартный HTTPS-трафик. Провайдер видит факт соединения, но не видит запрашиваемые имена. DoH встроен во все современные браузеры и включается в настройках безопасности.

У каждой DNS-записи есть TTL - время жизни в кэше других серверов. Если TTL = 24 часа, серверы по всему миру будут хранить старую запись до суток. Именно поэтому после переноса сайта на новый хостинг часть пользователей видит старую версию, а часть - уже новую. Это нормально и называется распространением DNS.

Зависит от типа блокировки. Если сайт заблокирован на уровне DNS (провайдер возвращает неправильный адрес) - смена сервера поможет. Если блокировка на уровне IP или пакетной инспекции - нет, нужен VPN. Для ряда сервисов, закрытых самими компаниями для российских IP (например, ChatGPT), работают Smart DNS-сервисы вроде Comss.one - они маршрутизируют часть трафика через свои серверы.

Первая ступень в иерархии DNS. Всего 13 имён корневых серверов (A через M), за каждым - сотни физических машин по всему миру. Они не знают адресов конкретных сайтов, но знают, к кому обращаться для каждой доменной зоны (.com, .ru, .org). Обслуживаются разными организациями - ICANN, Verisign, NASA, RIPE NCC - намеренно, чтобы не было единой точки отказа.

DNS только переводит имена в адреса - и в случае Smart DNS маршрутизирует часть запросов. Ваш трафик при этом идёт напрямую, провайдер его видит. VPN создаёт зашифрованный туннель: весь трафик уходит через сервер VPN-провайдера, провайдер видит только факт VPN-соединения. DNS - точечное решение для конкретных сервисов, VPN - универсальный инструмент приватности.