Блог

Что такое DNS сервер простыми словами и для чего он нужен

Чтобы понять, что такое DNS и зачем она нужна, давайте вкратце вспомним, как работает интернет.

Любой сайт физически расположен на каком-либо компьютере. Обычно это сервер хостера, реже – домашний или офисный компьютер. Все компьютеры, в свою очередь, соединены между собой проводной или беспроводной связью, причем в эту сеть включены не только машины с расположенными на них веб-ресурсами, но и компьютеры пользователей, с которых они выходят в интернет.

Чтобы обеспечить взаимодействие в этой всемирной паутине, была придумана система IP-адресов, благодаря которой компьютеры могут связываться между собой. Каждому компьютеру в сети присваивается уникальный набор цифр – IP-адрес. Чтобы зайти на какой-либо сайт, ваш браузер должен обратиться по адресу того компьютера, на котором этот сайт расположен.

Однако оперировать для серфинга в интернете наборами цифр типа 209.185.108.134 (один из IP-адресов Google) или 213.180.210.10 (один из адресов Яндекса) довольно проблематично. Представьте, что вместо понятных названий yandex.ru, vk.com, google.com и других вам приходилось бы помнить и вводить в браузер десятки цифровых комбинаций?

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

Как работают DNS-серверы

DNS-серверы образуют единую сеть с иерархической структурой. Вверху иерархии находятся 13 корневых серверов (нулевой уровень), которые распределены между 12-ю мировыми организациями (ICANN. NASA, ISC и другими; полный список можно увидеть на сайте https://root-servers.org). Каждый из таких серверов отвечает за определенную зону доменных имен. Бесперебойная работа корневых DNS-серверов чрезвычайно важна, так как при выходе из строя хотя бы одного из них пользователям станет недоступным огромное количество адресов (читай – сайтов и приложений).

Ниже по структуре расположены серверы имен доменов следующих уровней – первого, второго и т. д.

На практике DNS работает так:

  • пользователь вводит в адресную строку браузера имя сайта, например, yandex.ru;
  • для соединения с yandex.ru необходимо преобразовать это доменное имя в IP-адрес сайта, ведь сеть не понимает, что такое «yandex.ru», ей необходимо дать цифровой адрес компьютера. Поэтому запрос отправляется в систему доменных имен для поиска соответствующего адреса;
  • сначала запрос попадает на DNS-сервер, прописанный в настройках сети. Чаще всего это локальный сервер провайдера или мобильного оператора. Первым делом он проверяет в своем кэше (хранилище), не запрашивалось ли имя yandex.ru ранее. Если соответствие найдено – сервер отдает нужный IP-адрес, и дальше соединение идет уже по нему. В этом случае запросу не приходится проходить через всю структуру DNS, и загрузка сайта происходит быстрее. Обратите внимание – по сути, локальный преобразователь имен умеет только перенаправлять запрос доменного имени на вышестоящие серверы или же доставать данные из своего кэша;
  • если соответствие не найдено, локальный сервер обращается к одному из корневых DNS-серверов;
  • в ответ корневой сервер выдает перечень IP-адресов серверов DNS первого уровня – в данном случае тех, которые отвечает за доменную зону .ru;
  • запрос уходит на один из таких серверов, который, в свою очередь, выдает список серверов второго уровня, которые прописаны для домена yandex.ru;
  • запрос снова перенаправляется, теперь уже на DNS-сервер нужного нам домена. А он уже выдает IP-адрес, по которому находится сайт;
  • дальше запрос уходит непосредственно на IP-адрес ресурса, браузер получает необходимые данные и сайт открывается на компьютере пользователя.

Из примера видно, что IP-адрес сайта хранят только DNS-серверы последней ступени – те, что прописаны для конкретного домена или поддомена. Серверы верхних уровней хранят только списки IP-адресов серверов DNS, отвечающих за определенный участок сети. Первый шаг – это обращение к корневым серверам (основе системы преобразования имен), и далее запрос идет по «ветвям» этой структуры, пока не доходит до конечной точки, где получает нужный адрес.

Все это происходит менее, чем за секунду, однако использование кэша локальных серверов доменных имен часто позволяет существенно ускорить скорость загрузки сайта. Кроме того, браузеры также имеют свой собственный кэш.

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

Эту информацию необходимо прописывать с обеих сторон соединения – на самом домене и со стороны пользователя (в настройках сети). Соответственно, назначение у этих действий разное:

  • для домена DNS серверы прописываются для того, чтобы была создана связь между IP-адресом устройства, на котором находится ваш сайт, и его доменным именем. Информация о цифровом адресе домена, а также о других его параметрах будет включена в DNS, и пользователи смогут заходить на сайт. Без этого он будет недоступен, поскольку в сети не будет информации, по какому адресу находится ваш домен;
  • со стороны пользователя в настройках сети можно оставить присвоение преобразователя доменных имен по умолчанию (и тогда, скорее всего, будет использоваться сервер провайдера или мобильного оператора). Или же вы можете прописать публичные сервера Яндекса, Google и др. – если сервер провайдера вас по какой-то причине не устраивает, например, он часто бывает перегружен.

И в первом, и во втором случае рекомендуется указывать два адреса сервера для надежности: если один будет недоступен, ответит второй.

Где находятся DNS-серверы

Прежде всего, нужно понимать, что когда мы говорим о, например, 13 корневых серверах, то физически это вовсе не 13 компьютеров. Для повышения отказоустойчивости по всему миру располагаются сотни реплик или зеркал основных серверов. Этим «копиям» присваиваются те же IP-адреса, что и у главного устройства. Ответы на запросы они также дают одинаковые. То же касается серверов DNS первого, второго, третьего уровней. Такая система обеспечивает бесперебойную работу интернета даже в условиях серьезных катаклизмов.

Физически серверы располагаются в Европе, Северной Америке, Африке, Австралии – по всему миру. Чаще всего они базируются в крупных дата-центрах, на площадках хостинг-провайдеров или крупных телекоммуникационных операторов. Плотность концентрации серверов DNS на определенной территории зависит от плотности пользователей интернета на ней и объема поступающих запросов.

Типы записей DNS-сервера

Выше мы говорили о том, что сервер хранит связи формата «буквенный адрес сайта» – «IP-адрес сайта». Однако кластер информации содержит и дополнительные записи (их называют ресурсными), а все записи, относящиеся к одному домену, называются DNS- зоной.

Записи DNS-зоны бывают следующих типов:

  • A – тот самый IP-адрес, который соответствует домену сайта;
  • AAA – IP-адрес по протоколу IPv6. Введен сравнительно недавно, в связи с исчерпанием вариантов адресов для IPv4;
  • CNAME – каноническое имя для переадресаций. Например, можно указать, что имя www.example.com является синонимом example.com;
  • MX – почтовые серверы для данного домена;
  • NS – DNS-сервера для домена. Указываются в формате доменных имен, а не IP-адреса;
  • TXT – запись этого типа может содержать любую текстовую информацию.

Защита DNS-серверов от атак

Атаки на DNS-серверы можно разделить на 2 типа:

  • DDoS-атаки, когда на сервер направляется шквал поддельных запросов, и в результате перегрузки он перестает отвечать даже на реальные запросы пользователей;
  • использование уязвимостей системы. Запись в системе доменного имени подменяется на ложную, пользователь попадает на фишинговую страницу и может стать жертвой кражи личных данных.

Владельцы DNS-серверов постоянно улучшают защиту от хакерских атак и закрывают найденные уязвимости. Для защиты используются:

  • криптографический ключ для ответов на запросы (DNSSEC);
  • проверка пакетов на предмет фальсификации трафика (uRPF);
  • проверка пакетов с помощью отслеживания DHCP-трафика ( IP Source Guard);
  • проверка соответствия запроса и ответа (dns-validator) и т. д.

Автор

evkcrb@yandex.ru

Добавить комментарий