DNS — это Domain Name System, система доменных имен. Это система, которая связывает между собой доменное имя сайта, то есть его название, и IP-адрес — он нужен для «общения» компьютеров по сети. Благодаря DNS-серверу вам не нужно знать IP-адрес сайта, чтобы попасть на него.
Что такое DNS-сервер?
DNS-cервер — это такой специальный сервер или совокупность компьютеров, на которых хранятся и кэшируется записи с информацией о IP-адресах сайтов. Также там хранятся данные о ресурсных записях. Каждый адрес привязан к своему конкретному домену.
Система состоит из множества серверов на разных уровнях: от вашего провайдера интернета до глобальных машин, которых всего несколько в мире. По сути, DNS — это огромная база адресов, соответствий, которая отвечает на запросы и «рассказывает» устройству, как добраться до сайта с тем или иным доменом.
Подключенный к интернету компьютер пользуется DNS всякий раз, когда вы переходите на какой-то сайт, если вы там еще не были. Без нормальной работы DNS невозможен доступ к сети.
Где находятся DNS-серверы
Серверы бываю корневые и их копии. Корневых DNS-серверов всего 13. Они так называются потому что в них содержится информация обо всех адресах и сайтах интернета. Для надежности и безопасности есть их копии — 110 штук. Итого общее количество серверов DNS — 123.
Находятся они в разных странах по всей Земле, в зависимости от нагрузки:
- 40 — в Северной Америке;
- 6 — в Южной Америке;
- 35 — в Европе;
- 3 — в Африке;
- 39 — в остальных странах.
В России находится пять копий:
- Москва;
- Санкт-Петербург;
- Новосибирск;
- Екатеринбург;
- Ростов-на-Дону.
Для чего нужен DNS и кто им пользуется
Компьютерные устройства находят друг друга в сети по IP-адресам. Но людям адресами из множества цифр пользоваться неудобно, поэтому они придумали доменные имена — текстовые названия сайтов. Это те самые адреса, которые отображаются в адресной строке браузера. Например, blog.skillfactory.ru — доменное имя.
Суть в том, что компьютеры не умеют общаться с помощью одних только доменов. Чтобы получить доступ к сайту, устройству нужно знать его IP-адрес. И для того, чтобы оно могло провести ассоциацию между доменом и IP, и существует DNS.
DNS пользуются все устройства, подключенные к интернету, и в широком смысле — все люди, которые выходят в сеть. В узком смысле с DNS-серверами работают сетевые инженеры и системные администраторы, в частности сотрудники компаний-провайдеров.
Как устроена работа DNS
Когда пользователь вводит в адресную строку браузера какое-то доменное имя или переходит по ссылке, браузер получает его и пытается провести соответствие между именем и IP-адресом. Сначала он смотрит в свои локальные данные, потом ищет нужную информацию в данных системы. Если и там, и там ничего не находится, в дело вступает DNS.
Резолвер
Устройство пользователя подает запрос DNS-резолверу, или резольверу. По-английски он называется DNS resolver, что примерно переводится как «тот, кто решает». Это компьютер на стороне провайдера, который является первым звеном в сложной цепочке DNS-запросов.
Резолверу сообщают доменное имя сайта, на который надо перейти, и тот ищет соответствие между ним и IP-адресом в своей базе данных. Если такое находится, резолвер отправляет его обратно устройству пользователя, и на этом поиск заканчивается. Если же в базе резолвера такого домена нет, он в свою очередь начинает обращаться к DNS-серверам — они и подают ему нужную информацию из своих записей адресов.
Корневой DNS-сервер
Сначала резолвер подает запрос на так называемый root DNS server — корневой сервер. Их всего 13 штук во всем мире. Это не означает, что самих серверных машин всего 13: каждый такой сервер — большая сложная система из множества устройств. Только так они смогут выдерживать огромную нагрузку, которая приходится на них постоянно.
Корневой DNS-сервер сам по себе не сообщает IP-адрес. Он просто «рассказывает» резолверу, куда обратиться дальше. В нем хранится база данных TLD-серверов — именно они понадобятся для поиска IP. Корневой сервер сообщает резолверу, на какой TLD-сервер ему стоит подать запрос. Откуда он это знает? Смотрит на домен, точнее, на то, что находится после точки.
TLD-сервер
Следующим шагом резолвер подает запрос на TLD-сервер, о котором ему сообщил корневой. TLD расшифровывается как top level domain, или домен верхнего уровня — так называют часть домена после последней точки. Это, например, .ru, .com и так далее. О них тоже можно подробнее прочесть в статье про домены.
Каждый TLD-сервер отвечает за конкретный домен верхнего уровня. Поэтому корневой сервер знает, на какой TLD перенаправить резолвер, — он просто оценивает доменное имя, которое ему прислали. Если там .ru, сервер отправит резолвер на TLD доменной зоны .ru, и так далее.
TLD тоже не сообщает резолверу конкретный IP — просто перенаправляет на тот или иной авторитативный DNS-сервер. Как он понимает, на какой именно? Опять же по доменному имени, точнее, по его основной части, той, что находится до точки. Информация об авторитативных серверах и о том, какие домены в них хранятся, вносится в TLD-сервера каждый раз, когда кто-то покупает новый домен для своего сайта. Это делают компании — регистраторы доменов и глобальная организация ICANN, которая ответственна за большинство TLD-серверов.
Авторитативный DNS-сервер
Это последний шаг: на сервере хранятся непосредственные записи о соответствии между доменными именами и IP-адресами. Информация о каждом сайте в интернете должна находиться хотя бы на одном авторитативном сервере. Он выдает резолверу нужную информацию — IP-адреса, соответствующие доменному имени.
В ходе совершения запроса резолвер сохраняет в своей памяти информацию, которую получил. Например, он запоминает адрес TLD-сервера, чтобы не обращаться к корневому лишний раз, а еще сохраняет соответствие между доменом и IP. Так в следующий раз, когда какое-то устройство спросит его об этом доменном имени, резолвер сразу даст ответ — ему больше не понадобится совершать запросы.
Что происходит потом
Резолвер возвращает устройству IP-адрес, браузер переходит по нему, и сайт открывается. Если ни на одном из шагов никакого IP не нашлось — значит, такого сайта нет. DNS-сервер, а за ним и резолвер, и браузер выдадут ошибку.
Весь процесс занимает от 1 до 4 запросов и всего несколько миллисекунд. Поэтому сайты открываются быстро, несмотря на то что их открытие требует задействовать так много разной инфраструктуры.
Когда система получает IP, она сохраняет его у себя. Поэтому в следующий раз, когда пользователь захочет открыть нужный сайт на том же устройстве, системе не придется обращаться к резолверу – она уже будет знать соответствие.
Что будет, если изменится доменное имя или IP
Когда в интернете появляется сайт с новым адресом, или уже существующий изменится, или ресурс поменяет название — это все отразится в DNS. Система должна будет обновиться. В нее внесутся новые данные — этим занимаются регистраторы доменов и ICANN. Устройств в системе много, поэтому обновление на сервере адресов может занять сутки-трое. На протяжении этого времени сайт может быть недоступен, поэтому при обновлении и переезде на новый домен владельцы ресурсов обычно настраивают перенаправление сами.
Типы записей DNS-сервера
У одного домена может быть несколько сетевых адресов, таких как веб-сайт и почтовый сервер. Кроме того, каждое доменное имя может содержать один или несколько поддоменов.
Информация о соответствии между доменом и его IP-адресами хранится в файле на DNS-сервере, который называется DNS-зоной. Для добавления информации в DNS-систему необходимо создать ресурсные записи.
Существует несколько основных типов ресурсных записей, информация о которых хранится на DNS-сервере:
- Запись типа A — это адрес веб-ресурса, который соответствует введенному доменному имени.
- Запись типа MX — это адрес почтового сервера.
- Запись типа CNAME — используется для указания связи между аналогичными доменными именами. Обычно это применяется для привязки поддоменов. Например, можно привязать веб-адрес www.site.ru к фактическому сайту для домена site.ru.
- Запись типа NS — это адрес DNS-сервера, ответственного за хранение других ресурсных записей.
- Запись типа TXT — содержит любую текстовую информацию о домене.
- Запись типа SPF — включает данные с указанием списка серверов, которым разрешено отправлять электронные письма от имени указанного домена.
- Запись типа SOA — это начальная запись зоны, которая содержит информацию о сервере, содержащем общие сведения о доменном имени.
Защита DNS-серверов от атак
Наиболее опасными считаются атаки на корневые серверы, которые хранят информацию о IP-адресах. Например, известна DDoS-атака, произошедшая в октябре 2002 года, когда было атаковано 10 из 13 серверов верхнего уровня.
Протокол DNS получает результаты запросов через UDP (протокол пользовательских датаграмм). UDP использует безсоединительную модель передачи данных для обеспечения безопасности и целостности информации. Именно этот протокол чаще всего подвергается атакам с подделкой IP-адресов.
Существует несколько методов и схем, которые можно использовать для защиты DNS-серверов от атак хакеров:
- Использование технологии uRPF (Unicast Reverse Path Forwarding). Этот метод заключается в проверке возможности принятия пакета с определенным отправителем на указанном устройстве для передачи данных. Пакет проходит проверку и принимается только в том случае, если сетевой интерфейс, с которого он получен, предназначен для обмена данными с адресатом этого пакета. В случае обратной ситуации пакет будет отклонен. Этот метод помогает выявить и частично блокировать фальшивый трафик, но не обеспечивает полную защиту от фальсификации. uRPF предполагает, что данные отправляются на конкретный адрес через постоянный интерфейс, и усложняется, если используются несколько поставщиков интернет-услуг.
- Применение функции IP Source Guard. Основанная на технологии uRPF, эта функция отслеживает DHCP-трафик в сети и определяет IP-адреса, выданные сетевым устройствам. Это позволяет выявить поддельный трафик на определенных портах. После обнаружения данные записываются в общую таблицу проверки DHCP-пакетов. В будущем IP Source Guard использует эту таблицу для проверки пакетов, полученных коммутатором. Если IP-адрес отправителя не совпадает с зарегистрированным адресом, пакет будет отклонен.
- Использование утилиты dns-validator. Это программное средство отслеживает передачу всех DNS-пакетов, сравнивая запросы с ответами и, при обнаружении несоответствий, отправляет уведомления администратору.
Эти методы могут помочь улучшить безопасность DNS-серверов и защитить их от атак хакеров. Однако важно также регулярно обновлять и модернизировать систему защиты, чтобы оставаться на шаг впереди потенциальных угроз.
0 комментариев