DNS: что это такое, DNS-сервер, DNS-протокол и как это работает простыми словами

DNS (Domain Name System) — система, которая используется для получения IP адреса по имени хоста. То есть преобразовывает доменные имена в IP-адреса и наоборот. По сути ДНС — это набор специальных программно-аппаратных решений, которые работают для того, чтобы можно было использовать удобочитаемые доменные имена по типу www.site.com (DNS-адресы) вместо набора их циферных идентификаторов.

Статья обновлена 29 августа 2024 года. <a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Fru.freepik.com%2Ffree-photo%2Fserver-energy-consumption-monitoring_134858675.htm%23fromView%3Dsearch%26amp%3Bpage%3D1%26amp%3Bposition%3D19%26amp%3Buuid%3D686be7b8-d7b5-4932-a1b6-3ee2c000752e&postId=839349" rel="nofollow noreferrer noopener" target="_blank">Image by freepik</a>
Статья обновлена 29 августа 2024 года. Image by freepik

Конечно, это далеко не все возможности DNS-сервиса. Если вы уже сталкивались с термином, но не находили время разобраться в нем лучше, сейчас — самый удачный момент. В максимально простых понятиях рассмотрим работу Domain Name System, а также важные функции системы.

🔥 Бесплатный вебинар о 6 популярных IT-профессиях 🔥

Примерьте IT на себя, узнайте куда легко попасть после 25 лет и получите первый опыт в 2 IT-специальностях под присмотром опытного эксперта в прямом эфире

Бонус: получите персональный пошаговый план перехода к формату удаленной работы

Реклама. ОАНО ДПО «СКАЕНГ», ИНН 9709022748, erid: LdtCKBHZy

Содержание

Скриншот: Что такое DNS-сервер — объясняем простыми словами / selectel.ru
Скриншот: Что такое DNS-сервер — объясняем простыми словами / selectel.ru

Что такое DNS

Если говорить простыми словами, то ДНС — что-то вроде телефонной книги, благодаря которой можно легко определить имя абонента. DNS тесно связана с прародителем современного интернета ARPANET. Что нужно знать про эти 2 понятия:

Сеть ARPANET:

  1. Была создана в 1969 году как проект агентства DARPA (Defense Advanced Research Projects Agency), США.
  2. Представляла собой сеть компьютеров и маршрутизаторов, которые могли обмениваться данными между собой. Она играла роль экспериментальной сети для тестирования новых технологий и протоколов перед их внедрением в более крупные сети.
  3. Использовала числовые IP-адреса для идентификации устройств в своей сети. Каждое устройство имело свой уникальный IP. Это делало идентификацию на 100% точной для компьютеров, но сложной и неудобной для обычных пользователей.

DNS:

  1. Была разработана в конце 1980-х годов как система для преобразования удобочитаемых доменных имен в числовые IP-адреса и наоборот.
  2. Одной из проблем ARPANET была необходимость запоминания IP-адресов для доступа к удаленным ресурсам. DNS была создана, чтобы облегчить этот процесс, позволяя пользователям применять удобочитаемые доменные имена вместо числовых.
  3. DNS сформировалась в иерархическую систему доменных имен, начиная с верхнего уровня (например, .com, .org) и заканчивая конкретными доменами (например, example.com). Это сделало работу в интернете доступной и понятной для пользователя.

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

Создал ДНС американский ученый, инженер Джон Постел (John Postel), в конце 1980-х годов. Джон Постел и его команда создали эффективную систему для разрешения доменных имен, которая сегодня считается фундаментом работы интернета.

Скриншот: Что такое DNS-серверы и зачем они нужны / Fcloud4box.com
Скриншот: Что такое DNS-серверы и зачем они нужны / Fcloud4box.com

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

Если максимально упростить, схема работы ДНС будет выглядеть так:

  1. Вы хотите открыть сайт www.example.com и вводите его URL в адресной строке браузера.
  2. Компьютеры в интернете не используют словесные имена (www.example.com) для поиска других компьютеров. Они используют числовые IP-адреса. Поэтому ваш компьютер отправляет DNS-запрос, чтобы узнать IP-адрес для www.example.com.
  3. Этот запрос направляется на один из ДНС-серверов.
  4. DNS-сервер начинает поиск IP-адреса для www.example.com. Если сервер не находит адрес, он отправляет запрос другим DNS-серверам.
  5. Наконец DNS-сервер находит IP-адрес для www.example.com и отправляет его обратно на ваш компьютер — сайт открывается.

Вы можете представить DNS как службу доставки почты. Когда вы отправляете письмо (DNS-запрос), вы пишете имя адресата (доменное имя) и номер почтового ящика (IP-адрес). Почтовая служба (DNS-сервер) находит адресата и доставляет ему письмо (запрос).

Если подробнее разбираться в принципах работы DNS, можно разделить функционирование этой системы на следующие процессы (этапы).

1. Получение запроса от пользователя

Когда пользователь вводит адрес сайта (URL) в браузере (например, www.example.com), браузер отправляет DNS-запрос на резолвер (DNS resolver).

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

2. Проверка локального кэша

Резолвер DNS начинает работу с проверки локального кэша (кэшированных записей DNS). Если у него уже есть запись для запрошенного доменного имени, то запрос на доступ к сайту может быть одобрен немедленно и дополнительного обращения к другим DNS-серверам не требуется.

2.1 Запрос к корневым DNS-серверам

Если записи нет в локальном кэше или запись устарела, резолвер ДНС отправляет запрос к одному из корневых DNS-серверов.

Корневые DNS-серверы — высшее звено иерархической структуры ДНС. Они содержат информацию о верхнеуровневых доменных зонах (например, .com, .org) и указывают, какие DNS-серверы управляют этими зонами.

2.2 Запрос к авторитетным DNS-серверам

Корневой DNS-сервер направляет резолвер к авторитетным ДНС-серверам для верхнеуровневой доменной зоны (например, для .com-зоны). Авторитетные DNS-серверы могут указать резолверу на DNS-серверы для конкретного домена (например, для example.com).

Авторитетные DNS-серверы (ДНС-серверы для доменных зон) ответственны за хранение и управление информацией о конкретной доменной зоне в иерархии DNS. Каждая доменная зона имеет свои собственные авторитетные DNS-серверы, которые обслуживают записи для этой зоны.

Процесс запросов и ответов DNS может быть рекурсивным. Это означает, что резолвер может делать запросы на разных уровнях иерархии ДНС, пока не найдет точное соответствие IP-адреса доменному имени. Это позволяет резолверу избежать дополнительных запросов для одного и того же доменного имени в будущем.

3. Получение IP-адреса

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

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

Что такое DNS-сервер

DNS-сервер (Domain Name System server) — специальный компьютер и программное обеспечение, установленное на нем, которые выполняют роль посредника между человеческими удобочитаемыми доменными именами (например, тем же www.example.com) и числовыми IP-адресами, которые используются компьютерами и сетями для идентификации других компьютеров в сети.

<p>Скриншот: Что такое DNS / blogsisadmina.ru</p>

Скриншот: Что такое DNS / blogsisadmina.ru

С точки зрения программно-аппаратных средств, ДНС-сервер это:

  • Выделенный сервер или компьютер, спроектированный для обработки DNS-запросов. Этот сервер может быть расположен в дата-центре, внутри организации или быть частью сетевой инфраструктуры интернет-провайдера.
  • Служба DNS (демон), которая «прослушивает» определенные сетевые порты (чаще всего 53 UDP и TCP) и принимает входящие DNS-запросы.
  • База данных DNS-записей, содержащая информацию о доменных именах и соответствующих им IP-адресах. Записи в базе могут создаваться вручную или автоматически обновляться на основе конфигурации сервера и зон DNS.
  • Кэширование полученных записей DNS. ДНС-сервер временно сохраняет информацию о запросах, чтобы ускорить ответы на будущие запросы. Кэширование позволяет избегать постоянного обращения к другим DNS-серверам для одних и тех же запросов.
  • Обработка запросов. ДНС-сервер анализирует запрос, проверяет свою базу данных и кэш для поиска соответствующей записи DNS. Затем отправляет ответ клиенту, содержащий IP-адрес, связанный с запрошенным доменным именем.

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

DNS-серверы: зачем нужны, как работают, виды

Главные задачи серверов ДНС:

  1. Преобразование доменных имен в IP-адреса и наоборот. DNS-серверы помогают перевести удобочитаемые доменные имена (например, www.example.com) в числовые IP-адреса (например, 192.168.1.1). Это нужно потому, что компьютеры и сетевое оборудование используют именно IP-адреса для идентификации друг друга в интернете.
  2. Распределение нагрузки. DNS-серверы используются для равномерного распределения нагрузки между несколькими серверами (балансировка нагрузки). Это позволяет обеспечить высокую доступность, скорость работы и стабильность доступа к приложениям и сайтам.
  3. Кэширование данных. DNS-серверы могут кэшировать полученные записи DNS, чтобы ускорить ответы на будущие аналогичные запросы. Кэширование помогает избежать избыточных запросов к другим DNS-серверам и улучшает производительность всей глобальной системы.

Принцип работы ДНС-сервера:

  1. DNS-запрос. Когда вы вводите доменное имя в веб-браузере или приложении, ваше устройство отправляет DNS-запрос к ближайшему ДНС-серверу.
  2. Иерархия DNS-серверов. Если ближайший ДНС-сервер не знает ответа на ваш запрос, он обращается к другим серверам, следуя иерархии доменных зон. Эта иерархия начинается с корневых DNS-серверов, которые знают, где находятся авторитетные ДНС-серверы для верхнеуровневых доменных зон (например, .com, .org).
  3. Рекурсивные запросы. DNS-серверы могут выполнять рекурсивные запросы, переходя от сервера к серверу, пока не найдут авторитетный ДНС-сервер, который знает ответ на конкретный запрос.
  4. Кэширование. DNS-серверы кэшируют полученные записи DNS на некоторое время. Если такой же запрос будет сделан снова, сервер может вернуть кэшированный ответ, ускоряя тем самым процесс его обработки.
<p>Скриншот: Cерверы DNS. Какие типы существуют. Принцип работы / hpc.by</p>

Скриншот: Cерверы DNS. Какие типы существуют. Принцип работы / hpc.by

Выделяют 4 вида ДНС-серверов:

  1. Рекурсивные. Обычно используются интернет-провайдерами или в рамках корпоративной сети. Они принимают DNS-запросы от клиентов и выполняют все необходимые запросы для поиска и возврата запрошенных ДНС-записей.
  2. Авторитетные. Содержат «авторитетную информацию» о конкретных доменных зонах и записях DNS. Они отвечают на запросы, связанные с этими зонами.
  3. Кэширующие. Специализируются на кэшировании записей DNS и ускоряют процесс обработки запросов, так как могут предоставлять кэшированные ответы, если они имеют соответствующие записи.
  4. Публичные. Предоставляются общедоступными службами (например, Google Public DNS или OpenDNS). Они могут использоваться для улучшения скорости и безопасности подключения к интернету.

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

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

DNS-серверы содержат различные типы ДНС-записей, которые описывают разные аспекты доменных имен, их связей с IP-адресами и прочими данными. Вот некоторые из наиболее распространенных типов DNS-записей:

  1. A (Address) Record. Связывает доменное имя с IPv4-адресом. Например, запись A может связывать домен www.example.com с IP-адресом 192.168.1.1.
  2. AAAA (IPv6 Address) Record. Эта запись аналогична записи A, но используется для связывания доменных имен с IPv6-адресами. IPv6 — следующее поколение протокола IP.
  3. CNAME (Canonical Name) Record. Этот тип записи создает алиас (или псевдоним) для доменного имени. Он позволяет одному доменному имени ссылаться на другое. Например, запись CNAME может связать www с example.com, что позволяет использовать оба домена для одного и того же веб-сайта.
  4. CAA (Certification Authority Authorization) Record. Записи CAA предназначены для определения того, какие сертификационные органы (Certificate Authorities) имеют право выдавать SSL-сертификаты для конкретного домена.
  5. MX (Mail Exchange) Record. Тип записи указывает на почтовые серверы, ответственные за обработку электронной почты для домена. MX-записи определяют приоритет и адреса электронной почты для домена.
  6. TLSA (TLS Authentication) Record. Связаны с обеспечением безопасности и используются для определения параметров TLS (Transport Layer Security) для конкретного домена.
  7. ALIAS Record. Подобно записи CNAME, ALIAS Record создает алиас для доменного имени, но с некоторыми ограничениями, связанными с корневым доменом.
  8. HINFO (Host Information) Record. Может содержать информацию об аппаратной конфигурации хоста (используется редко).
  9. TXT (Text) Record. TXT-записи содержат текстовую информацию, которая используется для проверки домена (SPF-записи), подтверждения владельца домена (DKIM-записи) и прочих целей.
  10. PTR (Pointer) Record. Применяется для обратного ДНС-разрешения. Связывает IP-адрес с соответствующим доменным именем. PTR-записи используются, например, для идентификации устройств в локальных сетях.
  11. NS (Name Server) Record. Указывает на авторитетные DNS-серверы для домена. Такие записи определяют, какие ДНС-серверы обслуживают домен и могут отвечать на запросы для него.
  12. SRV (Service) Record. Используются для определения сервисов, предоставляемых на конкретных хостах и портах. SRV-записи обычно применяются в процессе настройки служб по типу VoIP или серверов электронной почты.
  13. SOA (Start of Authority) Record. Запись определяет авторитетный DNS-сервер для домена и содержит информацию о его характеристиках (например, об интервала обновления и перезагрузке данных).
  14. DNSKEY (DNS Key) Record. Используются в системе DNSSEC (DNS Security Extensions) для обеспечения целостности и аутентичности данных DNS. Содержат ключи, которые применяются для подписи ДНС-записей.
  15. DNAME (Delegation Name) Record. Этот тип записи применяется при создании алиасов для целых поддоменов, что упрощает управление DNS-структурой.

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

Раньше, когда ДНС только начал активно использоваться в интернете, существовало порядка 40 различных типов DNS-записей. Постепенно были добавлены новые типы записей, чтобы поддерживать функции и расширения в рамках конкретной сети. Поэтому их общее число может варьироваться и зависит от конкретных стандартов и спецификаций.

<p>Скриншот: Работа DNS-сервера BIND | Блог любителя экспериментов / www.k-max.name</p>

Скриншот: Работа DNS-сервера BIND | Блог любителя экспериментов / www.k-max.name

Где находятся главные DNS-серверы

Главные DNS-серверы (корневые) — верхний уровень иерархии ДНС. Они играют ключевую роль в процессе конвертирования доменных имен в IP-адреса и направлении запросов к соответствующим DNS-серверам для их дальнейшей обработки. Главные ДНС-серверы разбросаны по всему миру и управляются несколькими независимыми организациями.

Сейчас существует 13 корневых ДНС-серверов, которые обозначаются буквами от «А» до «М». Каждая из этих букв соответствует одному или нескольким физическим серверам. Это распределение и резервирование обеспечивают высокую доступность и отказоустойчивость корневой инфраструктуры DNS.

Вот список буквенных обозначений корневых DNS-серверов и их текущих расположений:

  • A — Verisign, Inc. (Монтгомери Каунти, Мэриленд, США);
  • B — University of Southern California (Лос-Анджелес, Калифорния, США);
  • C — Cogent Communications (Германтаун, Мэриленд, США);
  • D — University of Maryland (Колледж-Парк, Мэриленд, США);
  • E — NASA Ames Research Center (Маунтин-Вью, Калифорния, США);
  • F — Internet Systems Consortium, Inc. (Пало-Альто, Калифорния, США);
  • G — U.S. Department of Defense (Коламбия, Северная Каролина, США);
  • H — U.S. Army Research Lab (Адельфи, Мэриленд, США);
  • I — Netnod (Стокгольм, Швеция);
  • J — Verisign, Inc. (Арлингтон, Вирджиния, США);
  • K — RIPE NCC (Амстердам, Нидерланды);
  • L — ICANN (Лос-Анджелес, Калифорния, США);
  • M — WIDE Project (Токио, Япония).

Эти корневые DNS-серверы содержат информацию о верхнеуровневых доменных зонах (.com, .org, .net и т.д.). Когда ваш компьютер или устройство отправляет DNS-запрос, ваш локальный ДНС-сервер обычно начинает с обращения именно к одному из вышеперечисленных серверов, чтобы найти путь к авторитетным DNS-серверам для запрашиваемого домена.

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

DNS протокол

<p>Скриншот: DNS, что это такое и для чего используется? / handyhost.ru</p>

Скриншот: DNS, что это такое и для чего используется? / handyhost.ru

ДНС-протокол работает на основе клиент-серверной архитектуры. Использует TCP и UDP для обмена данными между клиентами и DNS-серверами. Вот как работает этот протокол:

  1. Когда клиенту (компьютеру) нужно получить доступ к доменному имени, он отправляет DNS-запрос к локальному DNS-серверу. Этот запрос содержит запрашиваемое доменное имя.
  2. ДНС-запрос может иметь тип A (для IPv4-адреса) или тип AAAA (для IPv6-адреса), в зависимости от того, какой тип IP-адреса требуется.
  3. Локальный DNS-сервер обрабатывает запрос, и если он имеет кэшированные записи для этого домена, возвращает ответ непосредственно клиенту. Если записей в кэше нет или они устарели, локальный DNS-сервер, обращается к корневому DNS-серверу. Он отправляет запрос с указанием корневого домена (".") и типом записи.
  4. Корневой DNS-сервер не содержит информации о конкретных доменах, но содержит данные о верхнеуровневых доменных зонах (TLD — Top-Level Domain). Корневой сервер отправляет ответ, ссылаясь на авторитетные DNS-серверы для TLD домена.
  5. Локальный сервер перенаправляет запрос к TLD ДНС-серверу для запрашиваемого домена (например, если домен example.com, то запрос направляется к TLD DNS-серверу для зоны .com).
  6. TLD DNS-сервер возвращает ответ, ссылаясь на авторитетный DNS-сервер для конкретного домена ( example.com).
  7. Локальный ДНС-сервер направляет запрос к авторитетному DNS-серверу для example.com. Этот сервер имеет точную информацию о запрашиваемом домене и возвращает запись ДНС, содержащую соответствующий IP-адрес.
  8. Локальный сервер получает ответ от авторитетного сервера и передает его обратно клиенту.

Теперь клиент знает IP-адрес, связанный с запрашиваемым доменом, и может использовать его для установки соединения с сервером по этому IP-адресу — в браузере открывается запрашиваемый сайт.

Итоги

DNS нужен для того, чтобы пользователи не вводили в адресную строку цифры вместо доменных имен. Без него вместо vc.ru пришлось бы прописывать 104.21.40.127 или 172.67.151.169. И так для каждого сайта. Конечно, работа ДНС незаметна обычному пользователю. Но без этой системы заходить на любимые сайты было менее комфортно.

🔥ТОП-3 онлайн-школ для изучения программирования в 2023 году

Skillbox — лучшая онлайн-школа программирования в русскоязычном сегменте (промокод ГДЕКУРС — скидка 45% на курсы и 55% на профессии)

Хекслет — школа с оплачиваемой стажировкой, которую рекомендуют в IT-кругах

Нетология — школа для новичков, чтобы наработать портфолио и перенять опыт экспертов сферы (промокод GDEKURS — дополнительная скидка 5% на обучение)

Больше вариантов смотрите в нашей подборке курсов по программированию.

Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН 9704088880, erid: LdtCKQ4B1; ООО «Хекслет Рус», ИНН: 7325174845, erid: LdtCK8wW7&m=1; ООО «Нетология», ИНН 7726464125, erid: LdtCKCxkP

22
Начать дискуссию