DNS: что это такое, DNS-сервер, DNS-протокол и как это работает простыми словами
DNS (Domain Name System) — система, которая используется для получения IP адреса по имени хоста. То есть преобразовывает доменные имена в IP-адреса и наоборот. По сути ДНС — это набор специальных программно-аппаратных решений, которые работают для того, чтобы можно было использовать удобочитаемые доменные имена по типу www.site.com (DNS-адресы) вместо набора их циферных идентификаторов.
Конечно, это далеко не все возможности DNS-сервиса. Если вы уже сталкивались с термином, но не находили время разобраться в нем лучше, сейчас — самый удачный момент. В максимально простых понятиях рассмотрим работу Domain Name System, а также важные функции системы.
🔥 Бесплатный вебинар о 6 популярных IT-профессиях 🔥
Примерьте IT на себя, узнайте куда легко попасть после 25 лет и получите первый опыт в 2 IT-специальностях под присмотром опытного эксперта в прямом эфире
Бонус: получите персональный пошаговый план перехода к формату удаленной работы
Реклама. ОАНО ДПО «СКАЕНГ», ИНН 9709022748, erid: LdtCKBHZy
Содержание
Что такое DNS
Если говорить простыми словами, то ДНС — что-то вроде телефонной книги, благодаря которой можно легко определить имя абонента. DNS тесно связана с прародителем современного интернета ARPANET. Что нужно знать про эти 2 понятия:
Сеть ARPANET:
- Была создана в 1969 году как проект агентства DARPA (Defense Advanced Research Projects Agency), США.
- Представляла собой сеть компьютеров и маршрутизаторов, которые могли обмениваться данными между собой. Она играла роль экспериментальной сети для тестирования новых технологий и протоколов перед их внедрением в более крупные сети.
- Использовала числовые IP-адреса для идентификации устройств в своей сети. Каждое устройство имело свой уникальный IP. Это делало идентификацию на 100% точной для компьютеров, но сложной и неудобной для обычных пользователей.
DNS:
- Была разработана в конце 1980-х годов как система для преобразования удобочитаемых доменных имен в числовые IP-адреса и наоборот.
- Одной из проблем ARPANET была необходимость запоминания IP-адресов для доступа к удаленным ресурсам. DNS была создана, чтобы облегчить этот процесс, позволяя пользователям применять удобочитаемые доменные имена вместо числовых.
- DNS сформировалась в иерархическую систему доменных имен, начиная с верхнего уровня (например, .com, .org) и заканчивая конкретными доменами (например, example.com). Это сделало работу в интернете доступной и понятной для пользователя.
Таким образом, ARPANET была первой сетью, которая стала основой для развития интернета, а DNS была создана, чтобы сделать использование интернета максимально простым для пользователей. DNS предоставила возможность использовать доменные имена вместо числовых IP-адресов.
Создал ДНС американский ученый, инженер Джон Постел (John Postel), в конце 1980-х годов. Джон Постел и его команда создали эффективную систему для разрешения доменных имен, которая сегодня считается фундаментом работы интернета.
Как работает DNS
Если максимально упростить, схема работы ДНС будет выглядеть так:
- Вы хотите открыть сайт www.example.com и вводите его URL в адресной строке браузера.
- Компьютеры в интернете не используют словесные имена (www.example.com) для поиска других компьютеров. Они используют числовые IP-адреса. Поэтому ваш компьютер отправляет DNS-запрос, чтобы узнать IP-адрес для www.example.com.
- Этот запрос направляется на один из ДНС-серверов.
- DNS-сервер начинает поиск IP-адреса для www.example.com. Если сервер не находит адрес, он отправляет запрос другим DNS-серверам.
- Наконец 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-адресами, которые используются компьютерами и сетями для идентификации других компьютеров в сети.
Скриншот: Что такое DNS / blogsisadmina.ru
С точки зрения программно-аппаратных средств, ДНС-сервер это:
- Выделенный сервер или компьютер, спроектированный для обработки DNS-запросов. Этот сервер может быть расположен в дата-центре, внутри организации или быть частью сетевой инфраструктуры интернет-провайдера.
- Служба DNS (демон), которая «прослушивает» определенные сетевые порты (чаще всего 53 UDP и TCP) и принимает входящие DNS-запросы.
- База данных DNS-записей, содержащая информацию о доменных именах и соответствующих им IP-адресах. Записи в базе могут создаваться вручную или автоматически обновляться на основе конфигурации сервера и зон DNS.
- Кэширование полученных записей DNS. ДНС-сервер временно сохраняет информацию о запросах, чтобы ускорить ответы на будущие запросы. Кэширование позволяет избегать постоянного обращения к другим DNS-серверам для одних и тех же запросов.
- Обработка запросов. ДНС-сервер анализирует запрос, проверяет свою базу данных и кэш для поиска соответствующей записи DNS. Затем отправляет ответ клиенту, содержащий IP-адрес, связанный с запрошенным доменным именем.
DNS-серверы обычно находятся в сетевой инфраструктуре провайдера или компании и взаимодействуют с другими серверами DNS в интернете. Последнее необходимо чтобы поддерживать постоянный доступ к глобальной системе доменных имен. Также эти серверы могут быть настроены с использованием механизмов репликации (например, мастер-слейвов или кластеров), чтобы обеспечить высокую доступность и отказоустойчивость. В датацентрах или серверных комнатах принимаются жеские меры для защиты серверов от хакерских атак и несанкционированного доступа к данным.
DNS-серверы: зачем нужны, как работают, виды
Главные задачи серверов ДНС:
- Преобразование доменных имен в IP-адреса и наоборот. DNS-серверы помогают перевести удобочитаемые доменные имена (например, www.example.com) в числовые IP-адреса (например, 192.168.1.1). Это нужно потому, что компьютеры и сетевое оборудование используют именно IP-адреса для идентификации друг друга в интернете.
- Распределение нагрузки. DNS-серверы используются для равномерного распределения нагрузки между несколькими серверами (балансировка нагрузки). Это позволяет обеспечить высокую доступность, скорость работы и стабильность доступа к приложениям и сайтам.
- Кэширование данных. DNS-серверы могут кэшировать полученные записи DNS, чтобы ускорить ответы на будущие аналогичные запросы. Кэширование помогает избежать избыточных запросов к другим DNS-серверам и улучшает производительность всей глобальной системы.
Принцип работы ДНС-сервера:
- DNS-запрос. Когда вы вводите доменное имя в веб-браузере или приложении, ваше устройство отправляет DNS-запрос к ближайшему ДНС-серверу.
- Иерархия DNS-серверов. Если ближайший ДНС-сервер не знает ответа на ваш запрос, он обращается к другим серверам, следуя иерархии доменных зон. Эта иерархия начинается с корневых DNS-серверов, которые знают, где находятся авторитетные ДНС-серверы для верхнеуровневых доменных зон (например, .com, .org).
- Рекурсивные запросы. DNS-серверы могут выполнять рекурсивные запросы, переходя от сервера к серверу, пока не найдут авторитетный ДНС-сервер, который знает ответ на конкретный запрос.
- Кэширование. DNS-серверы кэшируют полученные записи DNS на некоторое время. Если такой же запрос будет сделан снова, сервер может вернуть кэшированный ответ, ускоряя тем самым процесс его обработки.
Скриншот: Cерверы DNS. Какие типы существуют. Принцип работы / hpc.by
Выделяют 4 вида ДНС-серверов:
- Рекурсивные. Обычно используются интернет-провайдерами или в рамках корпоративной сети. Они принимают DNS-запросы от клиентов и выполняют все необходимые запросы для поиска и возврата запрошенных ДНС-записей.
- Авторитетные. Содержат «авторитетную информацию» о конкретных доменных зонах и записях DNS. Они отвечают на запросы, связанные с этими зонами.
- Кэширующие. Специализируются на кэшировании записей DNS и ускоряют процесс обработки запросов, так как могут предоставлять кэшированные ответы, если они имеют соответствующие записи.
- Публичные. Предоставляются общедоступными службами (например, Google Public DNS или OpenDNS). Они могут использоваться для улучшения скорости и безопасности подключения к интернету.
DNS-серверы играют важную роль в обеспечении корректной работы интернета и облегчении доступа пользователей к сайтам по доменным именам.
Типы записей DNS-сервера
DNS-серверы содержат различные типы ДНС-записей, которые описывают разные аспекты доменных имен, их связей с IP-адресами и прочими данными. Вот некоторые из наиболее распространенных типов DNS-записей:
- A (Address) Record. Связывает доменное имя с IPv4-адресом. Например, запись A может связывать домен www.example.com с IP-адресом 192.168.1.1.
- AAAA (IPv6 Address) Record. Эта запись аналогична записи A, но используется для связывания доменных имен с IPv6-адресами. IPv6 — следующее поколение протокола IP.
- CNAME (Canonical Name) Record. Этот тип записи создает алиас (или псевдоним) для доменного имени. Он позволяет одному доменному имени ссылаться на другое. Например, запись CNAME может связать www с example.com, что позволяет использовать оба домена для одного и того же веб-сайта.
- CAA (Certification Authority Authorization) Record. Записи CAA предназначены для определения того, какие сертификационные органы (Certificate Authorities) имеют право выдавать SSL-сертификаты для конкретного домена.
- MX (Mail Exchange) Record. Тип записи указывает на почтовые серверы, ответственные за обработку электронной почты для домена. MX-записи определяют приоритет и адреса электронной почты для домена.
- TLSA (TLS Authentication) Record. Связаны с обеспечением безопасности и используются для определения параметров TLS (Transport Layer Security) для конкретного домена.
- ALIAS Record. Подобно записи CNAME, ALIAS Record создает алиас для доменного имени, но с некоторыми ограничениями, связанными с корневым доменом.
- HINFO (Host Information) Record. Может содержать информацию об аппаратной конфигурации хоста (используется редко).
- TXT (Text) Record. TXT-записи содержат текстовую информацию, которая используется для проверки домена (SPF-записи), подтверждения владельца домена (DKIM-записи) и прочих целей.
- PTR (Pointer) Record. Применяется для обратного ДНС-разрешения. Связывает IP-адрес с соответствующим доменным именем. PTR-записи используются, например, для идентификации устройств в локальных сетях.
- NS (Name Server) Record. Указывает на авторитетные DNS-серверы для домена. Такие записи определяют, какие ДНС-серверы обслуживают домен и могут отвечать на запросы для него.
- SRV (Service) Record. Используются для определения сервисов, предоставляемых на конкретных хостах и портах. SRV-записи обычно применяются в процессе настройки служб по типу VoIP или серверов электронной почты.
- SOA (Start of Authority) Record. Запись определяет авторитетный DNS-сервер для домена и содержит информацию о его характеристиках (например, об интервала обновления и перезагрузке данных).
- DNSKEY (DNS Key) Record. Используются в системе DNSSEC (DNS Security Extensions) для обеспечения целостности и аутентичности данных DNS. Содержат ключи, которые применяются для подписи ДНС-записей.
- DNAME (Delegation Name) Record. Этот тип записи применяется при создании алиасов для целых поддоменов, что упрощает управление DNS-структурой.
Эти типы DNS-записей обеспечивают гибкость и многофункциональность DNS-системы, позволяя администраторам конфигурировать и настраивать ДНС для разных целей и в рамках конкретных сценариев работы.
Раньше, когда ДНС только начал активно использоваться в интернете, существовало порядка 40 различных типов DNS-записей. Постепенно были добавлены новые типы записей, чтобы поддерживать функции и расширения в рамках конкретной сети. Поэтому их общее число может варьироваться и зависит от конкретных стандартов и спецификаций.
Скриншот: Работа 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 протокол
Скриншот: DNS, что это такое и для чего используется? / handyhost.ru
ДНС-протокол работает на основе клиент-серверной архитектуры. Использует TCP и UDP для обмена данными между клиентами и DNS-серверами. Вот как работает этот протокол:
- Когда клиенту (компьютеру) нужно получить доступ к доменному имени, он отправляет DNS-запрос к локальному DNS-серверу. Этот запрос содержит запрашиваемое доменное имя.
- ДНС-запрос может иметь тип A (для IPv4-адреса) или тип AAAA (для IPv6-адреса), в зависимости от того, какой тип IP-адреса требуется.
- Локальный DNS-сервер обрабатывает запрос, и если он имеет кэшированные записи для этого домена, возвращает ответ непосредственно клиенту. Если записей в кэше нет или они устарели, локальный DNS-сервер, обращается к корневому DNS-серверу. Он отправляет запрос с указанием корневого домена (".") и типом записи.
- Корневой DNS-сервер не содержит информации о конкретных доменах, но содержит данные о верхнеуровневых доменных зонах (TLD — Top-Level Domain). Корневой сервер отправляет ответ, ссылаясь на авторитетные DNS-серверы для TLD домена.
- Локальный сервер перенаправляет запрос к TLD ДНС-серверу для запрашиваемого домена (например, если домен example.com, то запрос направляется к TLD DNS-серверу для зоны .com).
- TLD DNS-сервер возвращает ответ, ссылаясь на авторитетный DNS-сервер для конкретного домена ( example.com).
- Локальный ДНС-сервер направляет запрос к авторитетному DNS-серверу для example.com. Этот сервер имеет точную информацию о запрашиваемом домене и возвращает запись ДНС, содержащую соответствующий IP-адрес.
- Локальный сервер получает ответ от авторитетного сервера и передает его обратно клиенту.
Теперь клиент знает 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