Как работает технология DNS
DNS (Domain Name System, система доменных имен) — технология, которая предоставляет браузеру возможность находить конкретный сайт по его имени с помощью DNS-серверов. Рассказываем, как устроена эта технология и зачем она нужна, как работают DNS-серверы и что такое DNS-зоны.
Зачем нужна технология DNS и как она работает
DNS — фундаментальная технология современной интернет-среды, которая отвечает за хранение и обработку информации о доменных адресах. Инструмент используется для преобразования доменных имен в IP-адреса в момент отправки пользователем запроса на сервер. IP-адрес — уникальный числовой идентификатор устройства. Он позволяет узнать, откуда загружается страница нужного сайта. Получается, технология DNS служит своеобразной «телефонной книгой», в которой хранится база доменных имен и их адресов.
Работу DNS-технологии в качестве этой самой «телефонной книги» обеспечивает DNS-сервер — оборудование или программное обеспечение, с помощью которого предоставляется доступ к системе доменных имен, хранятся данные о соответствии конкретного IP-адреса соответствующему домену, а также осуществляется кэширование информации в виде IP-адреса и соответствующего ему домена других DNS-серверов.
Система доменных имен работает не в виртуальном пространстве, а на определенных физических устройствах. Все данные о доменах хранятся в формате записей на компьютерах, оснащенных соответствующим программным обеспечением.
Ниже список самых популярных и общедоступных DNS-серверов (актуально на октябрь 2021):
- Google: 8.8. 8.8 & 8.8. 4.4.
- Quad9: 9.9. 9.9 & 149.112. 112.112.
- OpenDNS: 208.67. 222.222 & 208.67. 220.220.
- Cloudflare: 1.1. 1.1 & 1.0. 0.1.
- CleanBrowsing: 185.228. 168.9 & 185.228. 169.9.
- Alternate DNS: 76.76. 19.19 & 76.223. 122.150.
- AdGuard DNS: 94.140. 14.14 & 94.140.
Схема работы DNS-технологии
Пользователь вводит в адресную строку браузера доменное имя, а преобразователь доменных имен обращается к DNS-серверу. После получения IP-адреса сервер передает его браузеру пользователя.
Затем браузер делает запрос на сервер по этому IP-адресу и после получения ответа отображает страницу ресурса.
Выделим основные характеристики DNS-технологии:
- Хранение и управление данными распределенного характера. То есть отдельный DNS-сервер хранит только информацию по делегированным ему доменам.
- Кэширование данных. При помощи кэширования ускоряется загрузка нужной информации с сервера. Ведь при обращении к любому ресурсу (даже при запросе внутренних страниц) серверы проверяют связь домена и IP-адреса. Но если запрашиваемый ресурс расположен, допустим, в другой точке мира, то скорость его загрузки может быть довольно медленной. Например, пользователь регулярно делает запросы на ресурс, который находится в другом государстве. Расположенный ближе всего к пользователю DNS-сервер кэширует данные о ресурсе и при следующим запросе выдает их клиенту максимально быстро. Источником кэширования, из которого поступают данные о сайте, являются первичные и вторичные DNS-серверы.
Для уменьшения уровня нагрузки DNS-сервер может хранить некоторое время определенное количество информации о других, не делегированных ему доменах. - Резервирование. Несколько изолированных логически и физически DNS-серверов хранят и обрабатывают информацию об одних и тех же узлах. Благодаря такому подходу обеспечивается доступность информации даже при сбое одного или нескольких серверов.
- Иерархическая структура. База доменных имен организована по принципу иерархии: корневой домен расположен на верхнем уровне, к которому примыкают домены первого уровня, к ним присоединяются домены второго уровня и т.д.
Как работают DNS-серверы:
- Пользователь вводит запрос в строке браузера. Тот в свою очередь перенаправляет его DNS-серверу, который ищет совпадения между доменным именем и IP. При обнаружении совпадений браузер делает запрос по IP-адресу сервера и получает в ответ нужную информацию, после чего браузер отображает ее. Если совпадения не обнаружены, тогда запрос перенаправляется корневому серверу.
- Корневой сервер снова перенаправляет запрос серверу первого уровня, а тот отправляет запрос серверу второго уровня. Процесс продолжается до тех пор, пока совпадение не будет найдено.
- Как только IP-адрес найден, браузер направляет запрос серверу, получает ответ и отображает полученную информацию.
Иногда DNS-серверы обрабатывают обратный запрос: когда пользователь хочет узнать доменное имя сайта по его IP-адресу. На сегодняшний день функционирует более десяти корневых серверов, которые расположены в разных точках мира.
Примечание: Помимо работы с публичными адресами, есть DNS, способные работать только с частными именами внутри VPS (Virtual Private Server). Например, система доменных имен от SberCloud позволяет гибко настраивать частные доменные имена в виртуальных ЦОДах VPC, быстро реагировать на запросы о доступе к виртуальным машинам ECS в VPC, а также к ресурсам OBS и RDS. Система также позволяет связать одну частную зону с несколькими VPC для единого управления. При этом безопасность обеспечивается мощными средствами от DDoS-атак.
Что такое DNS-зоны
Под понятием «зона» в системе доменных имен подразумевается часть пространства DNS-имен, которая управляется либо группой серверов, либо одним сервером. Зона DNS применяется для размещения DNS-записей конкретного домена. Каждая запись для домена создается внутри конкретной зоны DNS. Принято разделять зоны обратного и прямого просмотра в зависимости от того, какой поиск ведется внутри — по доменному имени ищут IP-адреса или по IP-адресу ищут доменное имя.
Geo-DNS
Geo-DNS — сервис, использующий дополнительные серверы для распределения трафика на основе местоположения запросов. В результате трафик к доменам оптимизируется за счет применения географической маршрутизации.
Geo-DNS необходим тем сайтам, которые находятся в одной геолокации, а пользуются популярностью в другой. Например, сайт расположен в европейской зоне, но очень популярен в США. Американские пользователи регулярно делают соответствующие запросы, но скорость загрузки страниц не очень высокая, так как ближайший DNS-сервер расположен в Европе. Владельцу ресурса целесообразно позаботиться о Geo-DNS, который будет расположен непосредственно в США. Теперь при запросе пользователи будут обращаться именно к нему, что позволит увеличить скорость обработки запроса.
Атаки на DNS-серверы и способы защиты
Атаки на DNS-серверы могут привести к потере функциональности, а также к искажению хранящейся на них информации.
- В случае DNS-спуфинга (вид кибератак, при котором системные уязвимости DNS-серверов используются для перенаправления трафика с легитимных серверов на поддельные), например, прежние IP-адреса меняются на новые, из-за чего пользователь будет попадать на ресурс мошенников вместо своего запроса.
- В результате DDoS-атак DNS-серверы перестают быть доступными для пользователей, как и ресурсы, которые стоят за серверами. Владельцы сайтов несут материальные и репутационные потери.
Чтобы защититься от атак, необходимо встраивать средства защиты и безопасности DNSSEC, TSIG, DANE, а также предпринимать меры:
- регулярно обновлять ПО для DNS-серверов;
- обеспечивать защиту от спуфинга путем настроек;
- ограничивать доступ к DNS-серверам со стороны третьих лиц (доступ должен быть только у администраторов и только внутри сети);
- запретить динамическое обновление зон DNS;
- регулярно сканировать DNS-серверы на наличие уязвимых мест;
- отключить рекурсивную обработку запросов;
- подключить сервис предварительной фильтрации трафика с автоматическим включением отражения атак на DNS-серверы.
Пользователям рекомендуется отдавать предпочтение проверенным провайдерам, которые обеспечивают DNS-серверам необходимую защиту в полном объеме.
Резюме
DNS — это система для связывания доменных имен с соответствующими им IP-адресами. DNS-серверы позволяют хранить данные IP-адресов соответствующих доменов, обеспечивать их кэширование и выдачу информации пользователю по запросу в сжатые сроки. Расположенные в разных локациях серверы повышают скорость загрузки страницы и, соответственно, лояльность пользователя к ресурсу.
DNS-технология появилась вместо словаря на сервере Стэнфордского исследовательского института в ответ на необходимость сопоставлять быстрорастущее количество IP-адресов с доменными именами. По аналогии с этим, когда в облаке растет количество используемых ресурсов, можно использовать DNS для обращения к виртуальным машинам, хранилищам или базам данных по доменным именам в частной зоне. В дополнение к этому современные DNS-сервисы дают ряд таких преимуществ, как защита от DNS-спуфинга и DDoS-атак, которые предлагает Domain Name Service облака SberCloud Advanced Сергей Кулаков старший технический писатель, SberCloud
Запросите бесплатную консультацию по вашему проекту