Что такое DNS-сервер — объясняем простыми словами
DNS-сервер — это компьютер, который входит в систему доменных имен (Domain Name System, DNS) интернета, и чьими основными функциями являются хранение и предоставление по запросу информации об IP-адресах устройств. На DNS-серверах работает специальное программное обеспечение, позволяющее им принимать, обрабатывать и отправлять запросы внутри DNS. Такие серверы содержат в себе данные о том, каким числовым адресам (айпи) соответствуют запрашиваемые пользователем символьные имена сайтов (домены), или указывают на другие ДНС-серверы, обладающие искомыми сведениями. В статье мы расскажем, что такое DNS, простыми словами и подробно объясним, в чем заключается суть их работы.
Для чего нужны DNS-серверы
Если кратко, то DNS-серверы нужны для того, чтобы людям не приходилось запоминать числовые комбинации, присвоенные машинам, которые хранят сайты, сервисы и приложения. Но давайте рассмотрим вопрос детальнее.
Прежде всего необходимо разобраться, что представляет собой DNS. Для этого вспомним, как работает интернет: миллиарды устройств, объединенных в одну сеть, общаются между собой при помощи определенных сетевых протоколов, а также IP-адресов. Последние одновременно являются уникальными идентификаторами, которые позволяют компьютерам узнавать и отличать друг друга, и указаниями на физическое местонахождение интернет-ресурсов.
Каждый сайт — это просто набор файлов, и располагается он на конкретном устройстве (сервере), подключенном к глобальной сети. Чтобы вы смогли открыть веб-ресурс на своем ПК или смартфоне, ваш браузер должен отправить запрос на это конкретное устройство, поскольку только на нем имеется нужная информация. Но для этого веб-браузеру нужно знать его айпи-адрес — последовательность из четырех чисел, разделенных точками: например, 203.45.16.132. Каждое число может иметь значение от 0 до 255, что дает свыше 4-х млрд вариантов. Очевидно, угадывать и тем более хранить IP-адреса всех сайтов в памяти пользовательский гаджет не сможет. Но это и не требуется, ведь существует DNS, которая выполняет функцию телефонного справочника.
Доменные имена (domains names) — это символьные адреса веб-ресурсов (как ihc.ru), они существуют в качестве понятной человеку альтернативы цифровым. По факту, это просто обозначения айпи-адресов, запомнить которые гораздо легче, чем хаотичный (с виду) порядок цифр. Таким же образом работает книга контактов в вашем смартфоне: вы не запоминаете номера телефонов, чтобы кому-то позвонить, а просто выбираете имя из списка. Для сайтов тоже существуют подобные списки. Таблицы соответствий, где прописано, на каком IP расположен домен, хранятся на DNS-серверах. Благодаря им наши устройства могут узнать, куда направлять запрос, чтобы получить доступ к сайту.
Как работают DNS-серверы
Между тем, как вы ввели домен в адресную строку и нажали Enter, и тем, когда веб-страница загрузилась у вас на экране, проходит всего несколько секунд. Однако за это время в сети успевает произойти огромное количество операций. Информация передается от устройства к устройству практически молниеносно, поэтому мы не замечаем всех действий, но в момент, пока вы ждете загрузки страницы, DNS работает на полную катушку. Рассмотрим процесс поэтапно.
- Итак, вы указали доменное имя. Пусть это будет «ihc.ru». Теперь браузеру нужно отправить запрос на сервер, где размещен данный сайт. Прежде чем это сделать, он проверяет hosts — файл настроек ДНС, хранящийся на локальном компьютере. Если в нем есть запись о соответствии «ihc.ru» какому-либо IP-адресу, браузер обращается на указанный адрес и получает ответ в виде файлов, которые и открываются на вашем экране. Если такая запись отсутствует, он формирует DNS-запрос для сервера интернет-провайдера. Здесь его можно интерпретировать как «Дай мне айпи-адрес этого сайта, если знаешь, или спроси у других».
- DNS-сервер провайдера также сначала ищет информацию у себя в кэше — сохраненных соответствиях, которые запрашивали ранее. Нашел — возвращает браузеру, и тот повторяет операцию с получением файлов. Не нашел — перенаправляет запрос на корневой сервер ДНС. Поскольку тот владеет лишь общими сведениями — о расположении нижестоящих узлов системы, — в данном случае ДНС-запрос — это «просьба» предоставить IP-адрес ДНС-сервера, ответственного за определенную доменную зону (в нашем примере это «.ru»).
- Получив ответ, сервер интернет-провайдера снова отправляет запрос, но теперь на DNS-сервер зоны .ru. На этом участке сети размещены айпи-адреса ДНС-серверов для всех доменов в зоне .ru (names servers), но не адреса самих доменов. Поэтому он отвечает провайдеру что-то вроде «Вот IP-адрес, там должна быть информация, которую ты ищешь».
- Наконец, провайдерский ДНС-сервер посылает последний запрос — к доменному серверу «ihc.ru». У нас это ns1.ihc.ru (или ns2). На нем располагаются айпи-адреса нашего хостинга и клиентских сайтов. В ответ на DNS-запрос name server отдает адрес домена, сервер провайдера также возвращает его браузеру, и тот направляет запрос на нужное устройство. Вы видите на экране главную страницу ИХЦ, а ДНС-сервер провайдера и ваш веб-браузер сохраняют полученную информацию в своих кэшах. При следующем обращении к нашему сайту они смогут сразу определить нужный айпишник.
Все эти операции производятся машинами за секунды — даже если они находятся друг от друга в тысячах километров. Об этом мы тоже поговорим.
Где находятся DNS-серверы
Из предыдущего пункта мы выяснили, что DNS имеет древовидную структуру, где каждая ветка имеет более мелкие ответвления. Основа системы — ствол этого дерева — это корневые DNS-серверы. Всего их 13 и они распределены по миру в соответствии с тем, насколько интенсивно используется интернет-инфраструктура в разных частях планеты. Сразу оговоримся, что 13 — не буквальное число. В целях повышения устойчивости интернета на случай глобальных сбоев было создано множество копий корневых серверов, поэтому воспринимайте их не как тринадцать конкретных устройств, а, скорее, как тринадцать IP-адресов, к которым привязано определенное количество устройств.
Больше всего корневых ДНС расположено в Северной Америке — там они появились изначально, а затем были реплицированы на другие континенты. На втором месте по объему стоит Европа, также реплики имеются в разных странах Южной Америки, Центральной и Юго-Восточной Азии, Африки, в Австралии.
В России они размещены в шести городах:
- Москве;
- Санкт-Петербурге;
- Ростове-на-Дону;
- Екатеринбурге;
- Новосибирске;
- Красноярске.
Типы записей DNS-сервера
Информация на DNS-сервере хранится в виде файлов, где указано соответствие буквенного адреса числовому. Но бывают ситуации, когда к одному домену привязано несколько айпи-адресов: например, сайт и почтовый сервер. Для этого в DNS прописываются дополнительные сведения. Вместе это называется ресурсной записью (resource record).
Типы DNS-записей могут быть разными, мы перечислим основные:
- A — IPv4-адрес сервера, на котором хранится ресурс, привязанный к доменному имени;
- AAA — IPv6-адрес, если используется шестая версия интернет-протокола;
- MX — буквенный адрес почтового сервера с указанием приоритета, если нужно;
- CNAME — синонимичное имя домена, здесь чаще всего указываются поддомены или зеркала сайта;
- NS — указывает на ДНС-серверы, где хранятся другие ресурсные записи о домене;
- TXT — любая текстовая информация о доменном имени;
- SPF — список серверов, которым разрешено отправлять письма от имени домена; позволяет обезопасить его от неправомерного использования;
- SOA — начальная запись зоны, указывающая на сервер, который хранит эталонную информацию о домене.
Защита DNS-серверов от атак
Поскольку DNS критически важна для работы интернета, ее серверы часто становятся целью хакерских нападений. Все их можно разделить на два типа:
- DDoS-атаки, задачей которых является исчерпание вычислительных мощностей сервера. Это делается, чтобы навредить определенным веб-ресурсам, ведь если ответственный за них ДНС-сервер «упадет», сайт останется недоступен.
- Взлом с использованием уязвимостей. В этом случае задача — подменить DNS-запись на ложную, чтобы сервер выдавал пользователям подставные адреса, ведущие на вредоносные веб-сайты.
Операторы ДНС-серверов постоянно улучшают их безопасность. В качестве мер защиты используют криптографические ключи для ответов на запросы, проверки пакетов на предмет подделки трафика или при помощи отслеживания DHCP-трафика, а также проверка соответствия ответа запросу и пр. На рынке также представлены программные решения для комплексной защиты.
Кроме того, для обеспечения безопасности рекомендуется:
- регулярно обновлять ПО;
- размещать в разных дата-центрах с несколькими сетевыми маршрутами;
- отключить возможность рекурсивной обработки запросов;
- отменить обработку неиспользуемых протоколов и служб;
- проводить регулярные сканирования на наличие уязвимостей и т. п.
Что такое DNS-зоны
Как мы уже сказали, DNS имеет разветвленную структуру. Ее пространство поделено на зоны, за каждую из которых ответствен определенный сервер или группа серверов. Например, зона ответственности корневого ДНС-сервера — адреса нижеследующих участков системы.
Заключение
DNS-сервер является маленьким, но крайне важным звеном в работе интернета. Если вебмастер не пропишет ресурсные записи для своих сайтов, то никто не сможет на них попасть. В статье мы простыми словами объяснили, как работают ДНС-серверы, рассказали, зачем они нужны и где находятся, рассмотрели виды DNS-записей, а также способы их защиты. В нашем блоге вы можете найти и другие статьи на ИТ-тематику.