Удивительный факт, но эта неизвестная широкой аудитории технология позволяет нам пользоваться интернетом в том виде, в котором мы к нему привыкли. DNS является неотъемлемой, базовой частью всемирной сети, и обеспечивает доступ пользователей ко множеству веб-сайтов каждую секунду.
Давай же разберемся, что такое этот DNS и как он устроен, зачем нужен и в какой момент применяется. В этой статье мы рассмотрим определение DNS и подробно описывающий его процесс работы.
Что такое DNS? 🔌
DNS – это система доменных имен, которая переводит человеко-читаемые доменные имена, например www.yandex.ru, в числовые IP-адреса, которые серверы могут понять.
Как мы писали в предыдущих статьях, у каждого компьютера есть уникальный адрес, который позволяет обратиться именно к нему. Когда мы хотим получить содержимое некоторого сайта, на самом деле мы хотим обратиться к конкретному веб-серверу, на котором хранится этот сайт. И поскольку человеческий мозг крайне непродуктивно запоминает длинные наборы цифр (к коим относятся IP-адреса), то в какой-то момент инженеры придумали систему "доменных имён" - то есть, человечески читаемых названий, которые потом трансформируются в цифровые IP-адреса.
Таким образом, DNS позволяет пользователям избежать необходимости запоминать сложные IP-адреса, такие как 66.94.29.13 (IPv4) или 2001:0000:3238:DFE1:0063:0000:0000:FEFB (IPv6). Вместо этого гораздо приятней и проще помнить языковые названия сайтов - google, yandex, vkontakte и так далее.
DNS является иерархической и децентрализованной системой, состоящей из нескольких уровней и не управляемой одной организацией. Она позволяет пользователям получать доступ к веб-сайтам по всему миру. Однако, система DNS не всегда была такой сложной. В следующем разделе мы с тобой рассмотрим историю развития нашей системы имен и ее истоки.
История создания DNS 📝
История DNS уходит своими корнями в 1966 год, когда Боб Тейлор, один из пионеров Интернета в США, создал ARPANET – Сеть агентств перспективных исследовательских проектов. Это был предшественник современного интернета. В 1969 году первые компьютеры были подключены к сети, и в 1970 году была запущена условная программа управления сетью.
ARPANET изначально использовал простой способ сохранения имен интернет-сайтов – текстовую таблицу в документе HOSTS.TXT. Этот файл был придумал в 1974 году Элизабет Фейнлер, американским специалистом по информатике. Однако, с быстрым расширением online-мира, стало ясно, что этот метод не будет работать долго (ну что и неудивительно - хранить файл с тысячами интернет-адресов на каждом компьютере не очень-то удобно). Чуть подробней про hosts.txt можно почитать здесь.
Так вот, когда в 1980 году к сети подключилось ещё больше компьютеров, ученый, ответственный за ручное документирование адресов их числовых аналогов, связался с Полом Мокапетрисом для поиска решения. Он и известен как человек, которому приписывают изобретение DNS.
Именно так, В 1983 году была разработана первая система доменных имен и вскоре был опубликован первый набор соответствующих стандартов. Именно из этих далёких событий и берет начало система DNS. На которой в современном мире происходит ежесекундная трансляция десятков тысяч текстовых адресов в фактические цифровые IP-адреса.
Как работает DNS? ⚙️
DNS функционирует путем выполнения процесса, называемого разрешением DNS, который включает в себя преобразование доменных имен в IP-адреса. Для этого используются четыре типа серверов:
- DNS-рекурсор. Это сервер, к которому обращается пользователь, чтобы получить IP-адрес запрашиваемого доменного имени. Он осуществляет поиск информации в кэше или отправляет запрос на следующий уровень сервера, если информации нет в кэше.
- Корневой сервер имен. Это исходная точка в процессе разрешения DNS. Он содержит информацию о том, где находятся серверы имен для каждого верхнеуровневого домена (.com, .org, .net и т.д.).
- Сервер имен ДВУ (домен верхнего уровня). Этот сервер отвечает за обработку запросов к конкретному верхнеуровневому домену. Например, сервер имен .com отвечает за обработку запросов к доменам с расширением .com.
- Авторитетный сервер имен. Этот сервер содержит информацию о конкретном домене. Когда сервер имен ДВУ получает запрос, он обращается к авторитетному серверу имен для получения IP-адреса запрашиваемого домена.
Четыре вышеуказанных сервера взаимодействуют на каждом этапе процесса разрешения DNS для достижения конечного результата – отправки пользователя на запрашиваемую веб-страницу. В следующих разделах я более подробно рассмотрю роль каждого сервера и предоставлю десятишаговый обзор процесса разрешения DNS.
Типы серверов DNS 📚
DNS-рекурсор
DNS-рекурсор является первым сервером, который участвует в процессе поиска DNS, начинающемся с ввода адреса в строку поиска браузера. Он должен получать запросы от клиентских машин и связывать их с соответствующей DNS-записью – это его основная задача. Подобно библиотекарю, DNS-рекурсор ищет конкретную "книгу", которую запрашивает пользователь. Чтобы достичь этого, DNS-рекурсор обычно выполняет несколько запросов одновременно, используя кэширование данных для ускорения процесса.
Корневой сервер имен
Корневой сервер имен является следующим шагом в процессе разрешения DNS. Он преобразует удобочитаемые доменные имена в числовые IP-адреса, понятные машинам. Корневой сервер имен указывает на кластер серверов, в котором находится искомый запрос. Подобно индексу в библиотеке, он указывает на определенные полки с книгами, но не является конкретным.
Сервер имен TLD (домен верхнего уровня)
Следующим шагом в поиске IP-адреса, который связан с конкретным доменным именем, является сервер имен TLD (домен верхнего уровня). TLD представляет собой обозначение верхнеуровневого домена, такого как .com, .org, .net, .edu или .gov. Подобно конкретному шкафу с книгами в библиотеке, он указывает на определенное место, где находится запрашиваемая информация.
Авторитетный сервер имен
Авторитетный сервер имен является последним нашим сервером, задействованным в процессе поиска DNS. Он хранит записи DNS и выполняет преобразование между доменным именем и IP-адресом. Подобно словарю online-мира, он возвращает IP-адрес искомой веб-страницы DNS-рекурсору, который инициировал запрос.
Является ли DNS безопасным? 🔐
Не смотря на то, что система доменных имен (DNS) не была создана с учетом требований безопасности, в течение времени были разработаны наборы стандартов для обеспечения максимальной безопасности при доступе к веб-сайтам. Однако, существующие меры безопасности DNS и другие стандартные методы имеют свои ограничения. Если опираться на отчет «Global Cyber Alliance» о значимости безопасности DNS, более трети всех кибератак осуществляются через DNS.
Говоря другими словами - нет, по-умолчанию DNS не является абсолютно безопасной технологией, и многие взломы и атаки осуществляются именно через "дыры" и узкие места в этой системе.
Последнее исследование Международного совета безопасности «Neustar», проведенное в сентябре 2021 года, показало, что 72% организаций подверглись как минимум одной DNS-атаке в прошлом году. А 61% из них столкнулись с двумя и более подобными инцидентами и 11% регулярно сталкиваются с атаками на свою инфраструктуру.
🔥 Понравилось? Подпишись! Победим восстание роботов вместе! 🔥
🚀 P.S. Ты можешь круто поддержать меня и проект "Войти в IT" на boosty! Я публикую там более эксклюзивный и профессиональный, иногда немного личный контент. Хочешь посмотреть как я выгляжу в реальной жизни? Тогда жми: Ссылка 🚀
P.S.2 У меня ещё есть Telegram-канал. Там посты чуть попроще, и чуть повеселей. Ссылка