Что такое DNS (простыми словами)

При погружении в предметную область сайтостроения вам обязательно придётся разобраться с работой домена (доменного имени). Домен не может существовать без системы DNS-серверов.

DNS (от англ. Domain Name System) – это система доменных имён. Она имеет распределённую структуру и работает на специальной связке программного и аппаратного обеспечения. Фактически это своеобразная сеть из серверов, на которых размещается база данных с соответствием адресов интернет-узлов и доменов.

Ранее мы подробно разобрали вопрос что такое домен. Ниже сконцентрируем внимание именно на DNS.

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

Один и тот же сайт может иметь несколько IP-адресов, например, в IPv4 и в IPv6-пространстве. Плюс, система DNS-серверов отвечает за переадресацию на другие web-сервисы, связанные с работой сайта, например, такие как CDN или служба обработки электронной почты.

Прежде, чем перейти к DNS — немного теории

Интернет – это сеть сетей. Данные в конечных (локальных) сетях и между ними могут передаваться по разным технологиям: по проводам, без проводов, в мобильных сетях, по Wi-Fi, по телефонным кабелям, по оптоволокну и т.д. Всё это разнородные сети. Но благодаря стеку технологий TCP/IP их можно объединить в одну глобальную сеть. Это и есть Интернет.

Чтобы получить возможность подключения к выбранному узлу в этой сети (к маршрутизатору, к компьютеру, к мобильному устройству, к серверу и т.п.), ему нужно присвоить уникальный адрес – IP (Internet Protocol).

Подробнее IP мы рассмотрим в отдельном материале. Главное, что нужно понять – это то, что на текущий момент функционируют две параллельные системы адресации:

  • IPv4 (старый протокол, его адресное пространство почти исчерпано) – примерное написание адреса 261.74.0.15;
  • IPv6 (протокол, имеющий увеличенную длину адресов) – примерное написание адреса 2003:0db7:85a4:0000:0000:8a7e:0340:7314, при указании в браузере нужно заключить запись в квадратные скобки: http://[2003:db7:85a4::8a7e:340:7314]/

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

Но, согласитесь, обращение к страницам сайта вида «https://[2003:db7:85a4::8a7e:340:7314]:8080/page1.php?utm_source=google» будет просто нечитаемым. Кроме того, добавляется новая проблема, если на одном сервере работает сразу несколько сайтов (как на shared-хостинге). Как тогда разделить трафик, по какому признаку? В норме идентификатором выступает доменное имя.

Как работает DNS-система

Наглядно работа системы описана на схеме ниже.

Как работает DNS-система

Фактически браузеру для подключения к серверу нужен только IP-адрес. Но где его взять, если пользователь указал только символьное имя (домен)?

  • Браузер сначала обращается к файлу hosts на ПК.
  • Если в файле нет информации, он переадресует обращение к системе DNS.
  • Первые на пути у него DNS-серверы текущего интернет-провайдера (компании, обеспечивающей подключение к глобальной сети). При наличии актуального IP сервера хостинга браузеру будет сразу предоставлен нужный адрес узла, и он подключится к сайту напрямую.
  • Если данных нет, DNS-сервер провайдера передаст запрос к ближайшим доступным корневым DNS-серверам (их существует 13 основных, но с учётом реплик – более 120 шт., чьи базы данных идентичны и постоянно актуализируются между собой, чтобы снизить нагрузку от запросов, применяют кэширование, в РФ работает несколько реплик, например, в Москве, СПб, Ростове-на-Дону и в Новосибирске).
  • Корневой сервер или его реплика работает только с доменами первого уровня. То есть возвращает только адрес DNS-сервера соответствующей доменной зоны. Конкретных IP-адресов сайтов он не предоставляет.
  • Теперь провайдер запрашивает адрес сайта у DNS-сервера выбранной доменной зоны.
  • DNS-сервер зоны тоже не знает конкретных IP-адресов сайтов, но знает, где их искать, ведь в ресурсных записях домена обязательно указаны адреса NS-серверов.
  • Простой пример: вы выбрали в качестве хостинга Bluehost и указали в качестве NS-серверов ns1.bluehost.com (основной) и ns2.bluehost.com (запасной/резервный). Поэтому в ответе на запрос DNS-сервер зоны RU вернёт строку ns1.bluehost.com.
  • Теперь провайдер обращается уже к серверу ns1.bluehost.com и получает конкретный IP-адрес сервера с сайтом.
  • Адрес узла возвращается браузеру и происходит прямое подключение к хостингу.
  • Если на одном сервере размещается сразу несколько сайтов (например, если это shared-хостинг), то специальное программное обеспечение (web-сервер) перенаправляет запрос к нужному каталогу на основании идентификатора – доменного имени.

Почему браузер не видит сайт на новом хостинге / после редактирования NS-записей

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

На актуализацию данных уходит время – до нескольких суток (от 1 до 2 дней, пока новые значения «спустятся» до DNS-серверов вашего провайдера Интернета и истечёт время действия старого кэша).

Зачем прописывать DNS-серверы у домена?

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

Но, чтобы DNS-система могла связать домен с нужным сервером (иногда вместо одного сервера сайт может работать на целом кластере или использовать продвинутую систему кэширования статичного контента, например, CDN), нужно правильно прописать ресурсные записи. Именно они позволяют построить нужную инфраструктуру и подсказывают DNS-системе, что, а главное, где искать.

Направить домен на свой хостинг можно несколькими способами. Наиболее популярные:

  • Прямое указание NS-серверов вашего хостинга в панели управления доменом (у регистратора или у его посредника). Строки следует уточнить у вашего хостера (в официальной документации или у техподдержки).
  • Использование DNS-хостинга. Это отдельная услуга для расширенного управления ресурсными записями. Например, если вам нужно подключить IPv6-адрес сервера или почту для домена (корпоративная почта с красивым email-адресом на основе вашего домена). В этом случае вы можете прописать конкретный IP-адрес сервера, на котором работает ваш сайт.

DNS-хостинг – обычно платная услуга, исключение составляют различные почтовые сервисы (вместе с корпоративной web-почтой вы получаете бонусом возможность управления всеми ресурсными записями).

Типы ресурсных записей в системе DNS

Техническая документация к программному обеспечению DNS-серверов предполагает использование более 40 различных типов ресурсных записей. Но на деле в обиходе используются преимущественно следующие:

  • NS-записи – управление ими всегда доступно из личного кабинета регистратора доменов. Именно они указывают на name-серверы, на которых нужно искать адрес вашего домена.
  • A-запись – позволяет задавать конкретный IPv4-адрес вашего сервера или сервера-балансировщика (для кластеров).
  • AAAA-запись – аналогична A-записи, но работает только с IPv6-адресами.
  • MX-запись – используется для указания почтового сервера.
  • SPF-запись – определяет перечень серверов, с которых может отправляться электронная почта от имени вашего домена.
  • TXT-запись – используется для разных служебных задач, например, сюда можно прописать DKIM.
  • CNAME-запись – определяет каноническое (основное) доменное имя.

Можно ли построить альтернативную систему DNS

Да. Это возможно не только в теории. В настоящее время успешно работают многие альтернативные системы DNS.

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

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

Децентрализованные реализации сильно привязываются к устройствам пользователей (расходуют дополнительные вычислительные ресурсы, требуют постоянного подключения к сети).

Как посмотреть DNS-записи домена

Для получения действующих значений NS-записей выбранного домена можно обратиться к онлайн-сервисам WHOIS или к специальному программному обеспечению (в случае с операционными системами Windows может потребоваться скачивание и установка отдельных утилит).

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

Более подробно этот вопрос мы рассматривали в отдельном материале – Как узнать, на каком хостинге расположен сайт.

DNS для конечных пользователей

DNS-система необходима не только для работы сайтов. Так как устройства конечных пользователей (ПК, смартфоны, планшеты, IoT и т.п.) – это тоже узлы сети Internet, то трафик к ним можно перенаправлять (маршрутизировать) через отдельные DNS-сервисы.

В качестве преимуществ пользователи могут получить:

  • Ускорение загрузки страниц (трафик будет проходить через высокопроизводительные серверы провайдера услуги, часто применяются технологии кэширования и т.п.).
  • Экономия трафика (при безлимитных подключениях не особо актуально, но для мобильных устройств – более чем).
  • Автоматическая фильтрация трафика от ненужного контента (защита от вирусов, предупреждение атак, исключение «взрослого контента» для детей и т.п.).

Такие сервисы предоставляют многие крупные IT-гиганты и провайдеры интернета. Из тех, что на слуху: Яндекс.DNS, Google Public DNS, Cloudflare и т.д.

Выводы

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

Собственно, домен – это неотъемлемая часть DNS. После покупки/регистрации доменного имени обязательно нужно настроить ресурсные записи (как минимум NS), чтобы браузеры пользователей могли подключаться к вашему хостингу. Если вам нужно больше свободы в настройках и маршрутизации трафика к сайту, придётся глубже погрузиться в ресурсные записи и даже, возможно, оплатить специальный DNS-хостинг.

» Статьи » Что такое DNS (простыми словами)