DNS

Материал из «Знание.Вики»
Схема архитектуры процесса, с помощью которого обслуживаются и разрешаются запросы к доменным именам.

Система доменных имен (DNS, domain name system) — это база данных именований, в которой расположены доменные имена Интернета и переведены в адреса интернет-протокола (IP). Система доменных имен сопоставляет имя, которое люди используют для определения местоположения веб-сайта, с IP-адресом, который компьютер использует для определения местоположения этого веб-сайта.

Например, если кто-то наберет «yandex.ru» в веб-браузере сервер сопоставляет это имя с соответствующим IP-адресом. IP-адрес аналогичен по структуре 213.0.101.89.

Просмотр веб-страниц и большинство других действий в Интернете зависят от DNS для быстрого предоставления информации, необходимой для подключения пользователей к удаленным хостам.[1] Сопоставление DNS распределяется по всему Интернету в соответствии с иерархией полномочий. Поставщики доступа и предприятия, а также правительства, университеты и другие организации, как правило, имеют свои собственные назначенные диапазоны IP-адресов и назначенное доменное имя. Они также обычно запускают DNS-серверы для управления сопоставлением этих имен с этими адресами. Большинство унифицированных локаторов ресурсов (URL-адресов) построены вокруг доменного имени веб-сервера, который принимает клиентские запросы.

Принцип работы

DNS-серверы преобразуют URL-адреса и доменные имена в IP-адреса, которые компьютеры могут понимать и использовать. Они преобразуют то, что пользователь вводит в браузере, во что-то, что машина может использовать для поиска веб-страницы. Этот процесс перевода и поиска называется разрешением DNS.[2]

Основной процесс разрешения DNS состоит из следующих шагов:

  • Пользователь вводит веб-адрес в браузере. Браузер отправляет сообщение, называемое рекурсивным DNS-запросом, в сеть, чтобы выяснить, какому IP или сетевому адресу соответствует домен.[3]
  • Запрос отправляется на рекурсивный DNS-сервер, который также называется рекурсивным распознавателем и обычно управляется интернет-провайдером (ISP). Если у рекурсивного преобразователя есть адрес, он вернет адрес пользователю, и веб-страница загрузится.
  • Если у рекурсивного DNS-сервера нет ответа, он запросит ряд других серверов в следующем порядке: корневые серверы имен DNS, серверы имен доменов верхнего уровня (TLD) и авторитетные серверы имен.
  • Три типа серверов работают вместе и продолжают перенаправление до тех пор, пока не получат DNS-запись, содержащую запрошенный IP-адрес. Он отправляет эту информацию на рекурсивный DNS-сервер, и загружается веб-страница, которую ищет пользователь. Корневые серверы имен DNS и серверы TLD в основном перенаправляют запросы и редко предоставляют разрешение сами.
  • Рекурсивный сервер хранит или кэширует запись A для доменного имени, которая содержит IP-адрес. В следующий раз, когда он получит запрос на это доменное имя, он может ответить непосредственно пользователю вместо того, чтобы запрашивать другие серверы.
  • Если запрос достигает авторизованного сервера и он не может найти информацию, он возвращает сообщение об ошибке.

Весь процесс запроса к различным серверам занимает доли секунды и обычно незаметен для пользователя.

Структура DNS

Доменное имя обычно содержится в URL-адресе. Доменное имя состоит из нескольких частей, называемых метками. Иерархия домена читается справа налево, причем каждый раздел обозначает подразделение.[4]

TLD появляется после точки в доменном имени. Примеры доменов верхнего уровня включают .ru, .org и .net, но есть много других. Некоторые из них могут обозначать код страны или географическое местоположение, например .ru для Российской Федерации или .am для Армении.[5]

Каждая метка в левой части TLD обозначает другой поддомен домена справа. Например, в URL-адресе pogoda.yandex.ru, «yandex» является поддоменом .ru, а «pogoda.» является поддоменом yandex.ru .

Поддоменов может быть до 127 уровней, и каждая метка может содержать до 63 символов. Общая длина символов домена может составлять до 253 символов. Другие правила включают в себя отсутствие начальных или конечных меток с дефисами и отсутствие полностью числового имени TLD.

Типы DNS-серверов

Существует несколько типов серверов, участвующих в завершении разрешения DNS. В следующем списке описаны четыре сервера имен в том порядке, в котором через них проходит запрос. Они предоставляют искомое доменное имя или ссылки на другие серверы имен.[6]

  • Рекурсивный сервер. Рекурсивный сервер принимает DNS-запросы из пользовательского приложения, такого как браузер. Это первый ресурс, к которому обращается пользователь, и он либо предоставляет ответ на запрос, если он кэширован, либо обращается к серверу следующего уровня, если он этого не делает. Этот сервер может выполнить несколько итераций запроса, прежде чем вернуть ответ клиенту.
  • Корневой сервер имен. Этот сервер является первым местом, куда рекурсивный сервер отправляет запрос, если у него нет кэшированного ответа. Корневой сервер имен — это индекс всех серверов, на которых будет храниться запрашиваемая информация. Эти серверы контролируются Интернет-корпорацией по присвоению имен и номеров, в частности филиалом ICANN, называемым Internet Assigned Numbers Authority.
  • Сервер TLD. Корневой сервер направляет запрос на основе домена верхнего уровня — .ru, .net или .org в URL. Это более конкретная часть поиска.
  • Авторитетный сервер имен. Авторизованный сервер имен является конечной контрольной точкой для DNS-запроса. Эти серверы знают все о данном домене и имеют дело с поддоменной частью доменного имени. Эти серверы содержат записи ресурсов DNS с определённой информацией о домене, такой как A запись. Они возвращают необходимую запись на рекурсивный сервер для отправки обратно клиенту и кэшируют её ближе к клиенту для будущих поисков.

Виды записей DNS

Записи DNS — это информация, которую ищет запрос. В зависимости от запроса, клиента или приложения требуется различная информация. Требуются некоторые записи, например A запись.[7]

Существует множество типов записей DNS, каждый из которых имеет свою собственную цель — указать, как следует обрабатывать запрос. Распространенными записями DNS являются следующие:

  • A Запись. Эта запись содержит IP-адрес домена. Записи A применяются только к адресам IPv4. Вместо этого адреса IPv6 имеют записи AAAA, которые используют более длинный формат адресов IPv6. Большинство веб-сайтов имеют только одну запись A, но некоторые более крупные сайты имеют несколько, что помогает балансировать нагрузку, предоставляя разные записи A разным пользователям при выоском трафике.
  • NS запись. Эти записи сервера имен указывают, какой полномочный сервер отвечает за всю информацию о данном домене. Часто домены имеют как первичный, так и резервный серверы имен для повышения надежности, и для направления запросов к ним используются несколько записей NS.
  • ТХТ запись. Записи TXT позволяют администраторам вводить текст в DNS. Первоначальная цель состояла в том, чтобы поместить в DNS удобочитаемые заметки, но сегодня туда часто помещают машиночитаемые заметки. Записи TXT используются для подтверждения владения доменом, защиты электронной почты и противодействия спаму в электронной почте.
  • CNAME-запись. Записи канонического имени используются вместо записи A при наличии псевдонима. Они используются для повторного запроса одного и того же IP-адреса с двумя разными доменами. Примером может служить URL-адрес mail.yandex.ru, где CNAME будет запрашивать yandex.ru.

Повышение скорости работы DNS

Серверы могут кэшировать A записи или IP-адреса, которые они получают из DNS-запросов, в течение определённого периода времени. Кэширование повышает эффективность, позволяя серверам быстрее реагировать при следующем поступлении запроса на тот же IP-адрес.[8]

Продолжительность хранения записи, также известная как время жизни (TTL), устанавливается администраторами и зависит от различных факторов. Более длительные периоды времени снижают нагрузку на серверы, а более короткие обеспечивают наиболее точные ответы.

Безопасность DNS

У DNS есть несколько уязвимостей, которые были обнаружены с течением времени. Отравление кэша DNS является одной из таких уязвимостей. При отравлении кэша DNS данные распределяются по распознавателям кэширования, выдавая себя за авторитетный исходный сервер. Затем данные могут представлять ложную информацию и могут повлиять на TTL. Фактические запросы приложений также могут быть перенаправлены в сеть вредоносного хоста.[9]

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

Примечания

  1. Selectel. Что происходит, когда пользователь набирает в браузере адрес сайта — Selectel на vc.ru. vc.ru (25 июля 2019).
  2. DNS, связь имени домена с IP-адресом.. htmlweb.ru.
  3. Разбираясь с DNS (англ.). Издательство «Открытые системы».
  4. URI — сложно о простом (Часть 1). Хабр.
  5. Что такое TLD?. andreyex.ru.
  6. Евгений Туренко. Что такое DNS? Введение в систему доменных имён (рус.) ?. Tproger (24 марта 2019).
  7. Gnostis. Объяснение типов записей DNS (рус.) ?. General Software (24 ноября 2022).
  8. Поддержка - Кэширование DNS. reconn.ru.
  9. Alexander Antipov. Отравление кэша DNS. Описание технологии, примеры и метод защиты. www.securitylab.ru (23 мая 2019).
WLW Checked Off icon.svg Данная статья имеет статус «готовой». Это не говорит о качестве статьи, однако в ней уже в достаточной степени раскрыта основная тема. Если вы хотите улучшить статью — правьте смело!