Тариф успешно добавлен в корзину
В корзину

Что такое DNS-сервер — объясняем простыми словами

Автор статьи Речкин Антон

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

Что такое DNS?

DNS, или Domain Name System, — система доменных имён. Она появилась ещё на заре интернета, тогда для сопоставления IP-адреса и связанного с ним имени использовался простой текстовый файл — HOSTS.TXT. Чтобы с его помощью узнать имя хоста и его адрес для подключения либо занести свои данные, нужно было позвонить в сетевой информационный центр. Когда стало понятно, что это слегка неудобно, появились первые DNS-серверы.

Чтобы понять, зачем нужна система доменных имён, вспомним, что такое Интернет. Формально это просто бесчисленное количество устройств (девайсов, компьютеров, серверов — или, одним словом, хостов), объединённых между собой общим каналом связи — под землёй, под водой, по воздуху. И чтобы эти устройства могли взаимодействовать друг с другом, каждому нужен какой-то уникальный опознавательный знак. Для этого используется Internet Protocol, или, как мы привыкли его называть, IP-адрес.

IPv4: 82.202.175.68

IPv6: 2a00:1450:4010:c08::66

Каждый компьютер или сервер, доступный из Интернета, имеет свой IP. Чтобы подключиться к устройству в сети, вы должны знать его точный адрес.

Дальше — лучше. Перечислите сайты, которые посещаете ежедневно. В каком формате вы помните их? Наверняка это буквенные названия — доменные имена, а не IP-адреса: 

  • yandex.ru
  • vk.com
  • habr.com
  • и т.д.

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

Для чего нужны DNS-серверы и какие они бывают?

DNS-сервер — это особый тип сервера, который как раз и обеспечивает преобразование доменных имён в соответствующие им IP-адреса. Когда пользователь вводит доменное имя сайта, его компьютер отправляет запрос на DNS-сервер, чтобы получить соответствующий IP-адрес. DNS-сервер отвечает на этот запрос, предоставляя IP-адрес запрошенного доменного имени — так и работает DNS. 

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

  • У неё есть корень (root DNS-сервер), где хранится информация о всех серверах следующего уровня. Корень, на самом деле, состоит из нескольких серверов. Корневым сервером DNS заведует IANA — объединение, отвечающее за организацию работы Интернета. При этом отдельные root-серверы могут администрироваться разными компаниями (например, один такой обслуживается Cloudflare).
  • Есть ответвления — тот самый следующий уровень, TLD DNS-серверы (top level domain). Они также отвечают за хранение информации о серверах следующего уровня, но уже для отдельных доменных зон: .RU, .РФ, .SU, .COM, .NET и так далее.    

    Такие серверы могут обслуживаться разными организациями. Например, за обслуживание DNS-серверов зоны .SU отвечает RIPN — Российский НИИ развития общественных сетей, а за обслуживание серверов зон .RU и .РФ — Координационный центр национального домена сети Интернет. Все такие организации регистрируются в IANA, и увидеть их можно тут.
  • Далее идут так называемые авторитативные DNS-серверы. И они уже хранят непосредственно информацию о том, какой адрес какому доменному имени соответствует, а также их DNS-записи (ресурсные записи: A, AAAA, CNAME, TXT, MX и пр.). И такой может развернуть кто угодно — регистратор доменных имён, хостинг-провайдер, даже вы — например, с помощью ISPmanager.
  • Отдельно можно выделить кэширующие DNS-серверы, или DNS-резолверы. Они выполняют две основных функции: выполняют запросы к вышестоящим DNS-серверам; сохраняют в своей памяти (кэше) результаты таких запросов.

Таким образом, DNS-серверы выполняют сразу несколько важных функций.

  • Хранят данные для преобразование доменных имён в соответствующие им IP-адреса.
  • Позволяют управлять доменными именами и связанными с ними настройками. Например, можно изменить DNS-записи, чтобы перенаправить трафик на другой сервер. Это делает DNS-серверы незаменимыми инструментами для управления веб-сайтами, почтовыми серверами и другими сетевыми ресурсами. 
  • Выполняют кэширование информации, чтобы улучшить скорость и эффективность работы сети. Когда DNS-сервер получает запрос на конкретное доменное имя, он временно сохраняет соответствующий IP-адрес в своей кэш-памяти. При повторных запросах на то же самое доменное имя DNS-сервер может использовать информацию из кэша вместо того, чтобы выполнять новый запрос. 

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

Как работает DNS?

Вся магия начинается, когда вы набираете адрес сайта в адресной строке браузера и нажимаете Enter. Например, введём адрес firstvds.ru

  1. Первым делом браузер проверяет свой кэш — не сохранился ли IP-адрес запрашиваемого ресурса с прошлого подключения. Если адрес найден, браузер выполняет прямой запрос по нему. 
  2. Если адрес не найден, браузер отправляет запрос к встроенному в операционную систему DNS-резолверу. Тот также проверяет свой кэш и кэш ОС. Если адрес найден, он возвращается браузеру.
  3. Когда адрес в памяти отсутствует, ваш DNS-резолвер отправляет запрос DNS-резолверу интернет-провайдера. Его адрес автоматически прописывается в вашей системе. Также широко распространены резолверы Google — 8.8.8.8 и 4.4.4.4. Резолвер провайдера тоже проверяет свой кэш — не записан ли там адрес запрашиваемого ресурса. Если адрес найден, он возвращается нашему резолверу. 
  4. В ином случае DNS-резолвер провайдера зрит в корень — опрашивает корневые DNS-серверы. Они неявно указаны в любом домене — в виде точки в конце имени, которую мы для упрощения запоминания и работы обычно опускаем: firstvds.ru[.] Корневые серверы проверяют у себя наличие информации о введёном имени — точнее, о домене верхнего уровня .RU. Если информация найдена, корневой сервер возвращает адрес DNS-сервера доменной зоны (TLD DNS-сервера). Если нет — возвращает ошибку: значит, запрошенной зоны не существует.
  5. Получив адрес сервера зоны, резолвер отправляет запрос к нему. Сервер зоны проверяет у себя наличие информации о домене второго уровня — FIRSTVDS.RU. Если такой домен существует, TLD-сервер вернёт адрес авторитативного сервера, где хранится информация об этом домене — его ресурсные записи. Если домен не существует — сервер вернёт ошибку: значит, домен не зарегистрирован, ещё не внесён регистратором в реестр либо не делегирован на серверы имён.
  6. Определив адрес авторитативного сервера, резолвер опрашивает его — всё о том же домене второго уровня. Авторитативный сервер проверяет свою базу данных, и, если домен там присутствует, возвращает его IP-адрес — он записан в ресурсной А-записи домена (или AAAA для IPv6). В некоторых случаях она может отсутствовать — например, удалена вручную по каким-то причинам. Тогда, как и при отсутствии домена в базе, будет возвращена ошибка — резолвер вернётся ни с чем.
  7. Когда адрес нашего домена наконец найден, резолвер провайдера записывает его в свой кэш и передаёт нашему встроенному резолверу. Тот записывает его в свою внутреннюю память и возвращает адрес браузеру. Браузер выполняет прямой запрос к полученному IP-адресу, и начинается загрузка данных сайта — открывается запрошенная страница.

Все эти чудеса занимают несколько мгновений.

На Linux и MacOS путь DNS-запроса до нужного домена можно посмотреть с помощью следующей команды:

dig +trace firstvds.ru

На Linux для работы с dig в некоторых случаях нужно выполнить установку соответствующего пакета:

  • Ubuntu и Debian:

    apt -y install dnsutils
  • CentOS: 

    yum -y install bind-utils

На Windows можно скачать и установить Bind (Tools Only) или воспользоваться онлайн-инструментом, что проще:

Вы увидите весь пройденный запросом путь, начиная с корневых DNS-серверов и заканчивая серверами имён искомого домена:

Кстати, время, которое занимает DNS-запрос, можно измерить. Например, с помощью онлайн-тестов:

  • tools.pingdom.com — тестирует все показатели скорости сайта, включая и время ответа DNS:

  • dnsperf.com — очень наглядно отображает время ответа DNS на карте: 

Или, если у вас под рукой есть Linux-терминал, с помощью следующей команды: 

dig firstvds.ru | grep time

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

Что такое DNS-зона?

DNS-зона — это специальный файл на DNS-сервере, который хранит информацию об одном или нескольких связанных доменах, включая поддомены, почтовые серверы и др. Чтобы добавить в файл информацию о взаимосвязи доменов и IP-адресов, используются DNS-записи.

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

DNS-записи, или ресурсные записи DNS, содержат сведения о домене и помогают определить, как он связан с другими сетевыми ресурсами:  к какому серверу привязан, на какие серверы имён делегирован, какой почтовый сервер использует и т.д. В технологии DNS существует несколько типов записей, самые распространенные — A, CNAME, MX, TXT и SRV.

Запись A (Address) — в этой записи указывается IP-адрес, который возвращает DNS-сервер в ответ на запрос пользователя. Таким, образом именно А-запись позволяет установить соединение с соответствующим веб-сервером и загрузить запрашиваемый контент.

Запись CNAME (Canonical Name) — позволяет создавать псевдонимы для доменных имен. Вместо того, чтобы указывать прямо на IPv4-адрес, запись CNAME указывает на другое доменное имя. Далее DNS-сервер выполняет дополнительный запрос для получения A-записи и возвращает ее IP-адрес.

Запись MX (Mail Exchanger) — используется для определения почтового сервера, который должен обрабатывать электронную почту для данного доменного имени. Когда отправитель пытается отправить письмо на адрес, соответствующий определенному доменному имени, DNS-сервер использует запись MX, чтобы определить, на какой сервер следует отправить это письмо.

Запись TXT (Text) — предназначена для хранения произвольного текстового содержимого. Её можно использовать для различных целей, например аутентификации, проверки владения доменом или предоставления важных сведений системам, работающих с данным доменным именем.

Запись SRV (Service) — используется для определения расположения конкретной службы или ресурса в сети. Например, она может указывать, на каком сервере находится служба VoIP или какой сервер предоставляет авторизацию в рамках определенного домена. Запись SRV предоставляет подробную информацию о местоположении и настройках службы.

Читайте также: Как изменить DNS-записи домена?

Что влияет на время обновления кэша DNS?

Когда вы обновляете ресурсные записи домена — меняете A-запись (IP-адрес), NS (серверы имён), MX (почтовый сервер) и пр., они начинают отображаться не сразу — обновление занимает от 2 до 72 часов.

Этот срок складывается сразу из нескольких параметров:

  • настройки времени кэширования записей (TTL, time-to-live). Этот параметр указывается для каждой записи и задаёт, сколько времени запись может храниться в кэше резолвера. Например, при изменении А-записи с TTL 21600 пользователь, который минуту назад был на сайте, будет видеть сайт со старого адреса (или ошибку, если тот не доступен) — так как вместо отправки нового DNS-запроса его резолвер в течение 6 часов будет выдавать значение, сохранённое в кэше.
  • настройки кэширования интернет-провайдеров. Интернет-провайдеры могут иметь собственные настройки кэширования — соответственно, резолвер провайдера будет выдавать пользователям значение из кэша, пока не будет исчерпан срок жизни записи, заданный провайдером. Тогда при следующем запросе к сайту резолвер провайдера выполнит полный DNS-запрос, тем самым актуализировав информацию в своём кэше.
  • настройки кэширования регистратора домена. Это в основном относится к NS-записям и смене серверов имён. NS-записи, которые содержат серверы имён, хранятся на DNS-серверах доменной зоны, и их TTL определяется там. Разные регистраторы имеют разные настройки, но обычно срок жизни таких записей составляет несколько часов.

    Вот пример для регистратора Webnames: TTL серверов имён составляет 75598 секунд или ~21 час.

    То есть, если мы изменим их, у большинства провайдеров, где имеется закэшированная информация о нашем домене, они обновятся не раньше чем через 21 час.

Было интересно?

Назад к списку
Скидка 25% новым клиентам!
Закажи сервер сегодня и получи скидку на первый месяц аренды!