Что такое DNS?
Система доменных имен (DNS) является одной из фундаментальных технологий современной интернет-среды и представляет собой распределенную систему хранения и обработки информации о доменных зонах. Она необходима, в первую очередь, для соотнесения IP-адресов устройств в сети и более удобных для человеческого восприятия символьных имен.
DNS состоит из распределенной базы имен, чья структура напоминает логическое дерево, называемое пространством имен домена. Каждый узел в этом пространстве имеет свое уникальное имя. Это логическое дерево «растет» из корневого домена, который является самым верхним уровнем иерархии DNS и обозначается символом – точкой. А уже от корневого элемента ответвляются поддоменые зоны или узлы (компьютеры).
Пространство имен, которое сопоставляет адреса и уникальные имена, может быть организовано двумя путями: плоско и иерархически. В первом случае имя назначается каждому адресу и является последовательностью символов без структуры, закрепленной какими-либо правилами. Главный недостаток плоского пространства имен – оно не может быть использовано в больших системах, таких как интернет, из-за своей хаотичности, поскольку в этом случае достаточно сложно провести проверку неоднозначности и дублирования.
В иерархическом же пространстве имен каждое имя составлено из нескольких частей: например, домена первого уровня .ru, домена второго уровня 1cloud.ru, домена третьего уровня panel.1cloud.ru и т. д. Этот тип пространства имен позволяет легко проводить проверки на дубликаты, и при этом организациям не нужно беспокоиться, что префикс, выбранный для хоста, занят кем-то другим – полный адрес будет отличаться.
Для чего нужны DNS-серверы?
Служба доменных имён работает благодаря DNS-cерверам. Именно эти жизненно важные «программы» хранят таблицы соответствий вида «имя домена» — «IP-адрес». Кроме того, DNS-серверы служат для хранения ресурсных записей доменов: Что такое ресурсные записи? В Интернете огромное количество DNS-серверов, каждый выполняет свою функцию в общей системе. Служба Domain Name System необходима для того, чтобы мы могли без проблем находить свои любимые сайты, не запоминая вереницы цифр.
Как работают DNS-серверы? (для любознательных)
Итак, вы вводите название сайта в адресную строку и нажимаете Enter. В те самые секунды, перед тем как сайт отобразится на вашем экране, DNS-серверы работают, не щадя себя. Посмотрим, что делают DNS-серверы. Следите за стрелочками.
- 1.Когда вы вводите в строке браузера доменное имя, например, FAQ-REG.RU, браузер ищет на вашем локальном компьютере файл hosts. В нём задаётся соответствие домена IP-адресу. Если в этом файлe есть запись для введённого домена, то сайт откроется сразу (стрелка 9). Если же записи нет, браузер сформирует DNS-запрос к интернет-провайдеру (стрелка 1), чтобы тот нашёл IP-адрес домена.
- 2.У каждого интернет-провайдера есть локальные (кеширующие) DNS-серверы. После получения запроса провайдер ищет в своём кеше запись о соответствии требуемого домена IP-адресу. Если такая запись есть, браузер получит IP-адрес (стрелка 8). По этому адресу браузер обратится к хостингу, на котором расположен сайт, и пользователю откроется нужная страница (стрелка 9). Если запись отсутствует, провайдер перенаправит DNS-запрос на корневые DNS-серверы (стрелка 2).
- 3.Корневые DNS-серверы хранят информацию только о DNS-серверах, ответственных за доменные зоны. Корневой DNS-сервер не может предоставить провайдеру информацию об IP-адресе домена FAQ-REG.RU. Зато он отправит IP-адрес DNS-сервера доменной зоны, в данном случае зоны .RU (стрелка 3).
- 4.Теперь у интернет-провайдера есть IP-адрес DNS-сервера доменной зоны .RU. Поэтому он обращается к этому DNS-серверу и запрашивает IP-адрес домена (стрелка 4).
- 5.DNS-серверы зоны .RU хранят только информацию о DNS-серверах всех доменов в этой зоне, а не их IP-адреса. Поэтому DNS-серверы зоны подскажут Интернет-провайдеру IP-адрес DNS-сервера домена FAQ-REG.RU (стрелка 5).
- 6.Интернет-провайдер получил IP-адрес DNS-сервера домена FAQ-REG.RU. Он обращается к DNS-серверу домена (например, к ns1.hosting.reg.ru) с запросом IP-адреса домена (стрелка 6).
- 7.После получения запроса DNS-сервер сначала проверяет, есть ли у него информация о домене FAQ-REG.RU и искомый IP-адрес для него. В случае успеха DNS-сервер отправит IP-адрес домена интернет-провайдеру (стрелка 7).
- 8.Интернет-провайдер получает IP-адрес домена и сохраняет его у себя в кеше. После этого он отправит браузеру результат DNS-запроса — IP-адрес домена FAQ-REG.RU (стрелка 8).
- 9.Браузер обращается к хостингу по полученному IP-адресу (стрелка 9). Теперь пользователю открывается запрашиваемый сайт FAQ-REG.RU.
Назначение DNS-сервера
- Хранение информации о доменах и предоставление ее по запросам;
- Кэширования DNS-записей из остальных DNS-серверов.
Классификация серверов
Учитывая функции DNS-сервера, их можно поделить на несколько видов. При этом, сервер-преобразователь или «резолвер» (от англ. Resolver, «преобразователь»), непосредственно конвертирующий доменные имена в IP-адреса, может одновременно принадлежать к двум и более типам.
Ниже представлены определения основных типов DNS-серверов.
- Авторитативный — DNS-сервер, который отвечает за определенную зону.
- Первичный (Мастер) — сервер, уполномоченный вносить изменения в зону. Как правило, в зоне находится только один первичный сервер.
- Вторичный (Слейв) — сервер без права применять изменения в зоны, получающий от «мастера» только уведомления об изменениях. В зоне может находиться неограниченное количество слейвов.
- Кэширующий — отвечает за обслуживание пользователей. Он принимает рекурсивные запросы, а затем обрабатывает их с использованием нерекурсивных запросов или передает на вышестоящий сервер. Большинство серверов, работающих непосредственно с пользователями, является именно кэширующими.
- Перенаправляющий (Прокси, Балансирующий) — кэширующий сервер, который не отдает данные напрямую, а перенаправляет запросы на связанную с ним цепь кэширующих серверов. Благодаря этому перераспределяется общая нагрузка и уменьшается вероятность даунтайма.
- Корневой (Рут) — авторитативный сервер в корневой зоне. В мире расположено 13 таких серверов, их домены находятся в зоне root-servers.net.
- Регистрирующий — принимает информацию об обновлениях от пользователей.
Кэширование
Чтобы понимать, как работает DNS-сервер, нужно детально рассмотреть, как в нем происходит процесс кэширования.
При обращениях к любому сайту (даже при переходе на внутренние страницы), серверам необходимо проверять связь домена и IP-адреса. Однако, посещаемый ресурс может храниться довольно далеко, поэтому постоянные запросы на первичный DNS-сервер могут сильно снизить скорость загрузки страниц.
Решить проблему со скоростью обработки запросов позволяет ближайший к компьютеру пользователя DNS-сервер, который становится кэширующим. На нем сохраняется информация о ранее отправленных запросах на IP-адреса. При следующем обращении на один и тот же сайт, данные по его адресу будут поступать оперативно, за счет их наличия в кэше.
Однако, для кэширования нужен источник, с которого будут поступать данные о сайте. Им являются первичные и вторичные DNS-сервера. Это означает, что при регистрации домена владелец сайта должен указывать адрес DNS-сервера, где будет сохранена информация о домене.
Как правило, для работы домена достаточно сохранить свои данные на двух DNS-серверах — первичном и вторичном. Хотя, гораздо лучше указывать большее их количество. Это повысит надежность работы веб-адреса, поскольку при отсутствии доступа к одному DNS-серверу, можно будет обработать запрос на следующем.
Как работает DNS-сервер
Рассмотрим более подробно принцип работы DNS-сервера на примере сайта example.com. Все доменные имена и IP-адреса здесь приведены только для примера.
- Пользователь вводит адрес нужного сайта (www.example.com) в адресную строку браузера и отправляет запрос.
- Запрос, содержащий искомое доменное имя, отправляется серверу-преобразователю имен DNS (резолверу), указанному в настройках операционной системы компьютера для поиска IP-адреса.
- Преобразователь выполняет перенаправление запроса на корневой DNS-сервер, который отдает в ответ сервер зоны доменов верхнего уровня (.com), ответственный за искомый домен.
- Преобразователь еще раз перенаправляет запрос на сервер зоны доменов верхнего уровня (.com), и получает в ответ адрес конкретного NS-сервера, к которому приписан искомый домен (ns1.eternalhost.net).
- Ответственный сервер получает запрос резолвера и отдает IP-адрес (192.0.2.44), соответствующий доменному имени в первоначальном запросе.
- После получения необходимого IP-адреса, преобразователь имен передает это значение браузеру. Вдобавок, он выполняет кэширование полученных данных о сопоставлении доменного имени с IP-адресом, чтобы при последующих аналогичных запросах быстрее на них отвечать.
- С браузера отправляется новый запрос уже по полученному IP-адресу. Веб-сервер example.com возвращает страницу на браузер, после чего она открывается.
Следует понимать, что информация о соответствии доменного имени IP-адресу хранится на сервере имен определенное время и обновляется с определенной периодичностью. Эти параметры могут отличаться, в зависимости от того, как настроены NS-записи и работает DNS.
Когда у веб-ресурса меняется IP-адрес или сервер имен, в базе DNS-сервера может оставаться устаревшая информация, до момента обновления кэша. До этого, при отправлении запроса с именем сайта, пользователям будет открывать старый IP-адрес. Поэтому при переезде ресурса рекомендуется настроить переадресацию.
Кто управляет и поддерживает DNS-сервера?
Когда вы вводите адрес интернет-ресурса в строку браузера, он отправляет запрос на DNS-сервер отвечающий за корневую зону. Таких серверов 13 и они управляются различными операторами и организациями. Например, сервер a.root-servers.net имеет IP-адрес 198.41.0.4 и находится в ведении компании Verisign, а e.root-servers.net (192.203.230.10) обслуживает НАСА.
Каждый из этих операторов предоставляет данную услугу бесплатно, а также обеспечивает бесперебойную работу, поскольку при отказе любого из этих серверов станут недоступны целые зоны интернета. Ранее корневые DNS-серверы, являющиеся основой для обработки всех запросов о доменных именах в интернете, располагались в Северной Америке. Однако с внедрением технологии альтернативной адресации они «распространились» по всему миру, и фактически их число увеличилось с 13 до 123, что позволило повысить надёжность фундамента DNS.
Например, в Северной Америке находятся 40 серверов (32,5%), в Европе – 35 (28,5%), еще 6 серверов располагаются в Южной Америке (4,9%) и 3 – в Африке (2,4%). Если взглянуть на карту, то DNS-серверы расположены согласно интенсивности использования интернет-инфраструктуры.
Зачем прописывать DNS-серверы для домена?
Допустим, вы зарегистрировали домен. Пока никто, кроме вас, об этом не знает. Чтобы о существовании вашего домена узнал Интернет, нужно выбрать и прописать для домена DNS-серверы. Они-то и расскажут другим DNS-серверам Интернета о вашем домене. Так что запоминаем: зарегистрировал домен — пропиши DNS-серверы!
- Какие DNS-серверы прописать для домена?
- Как прописать DNS-серверы?
Прописывают DNS-серверы чаще всего парами. Один из DNS является первичным, а остальные серверы, которых может быть от 1 до 12 для каждого домена, называются вторичными. Это делается для лучшей отказоустойчивости: если выйдет из строя один DNS-сервер, домен и сайт продолжат свою работу.
Почему домены начинают работать не сразу?
DNS-серверы интернет-провайдера обновляются раз в сутки (принцип работы DNS-серверов). Если вы только что прописали или сменили DNS-серверы, придётся подождать 24 часа. Смена DNS-сервера чревата временным отсутствием работающего сайта. После обновления DNS сайт станет доступен. Если сайт не работает — в помощь вам инструкция: Прописал DNS-серверы, но сайт недоступен.
Если вы зарегистрировали домен, но ещё не создали на нём сайт, после обновления DNS-серверов на вашем домене будет открываться парковочная страница с надписью «Домен надёжно припаркован».
Как определить адрес DNS-сервера вашего компьютера
Самый простой и быстрый способ найти адрес DNS-сервер вашего компьютера — через командную строку.
Вы можете сделать это через следующие шаги:
Нажмите на кнопку «Пуск» в нижнем левом углу экрана компьютера.
Из различных вариантов программы, которые отображаются, нажмите кнопку «Выполнить». Небольшое окно откроется в нижней части экрана. Введите команду CMD и нажмите Enter.
Новое окно с черным фоном откроется на экране компьютера. Теперь вам нужно ввести IPCONFIG / все команды в командной строке и нажать клавишу ВВОД.
Вы сразу увидите множество информации, которая появляется в черном окне. Просмотрите данные, пока не найдете строку, содержащую слова «DNS-сервера». Число т.е. IP-адрес, который отображается рядом со словами «DNS-сервера» является ничем иным, как адрес DNS-сервера вашего компьютера.
В большинстве случаев, ваш компьютер использует два адреса DNS-серверов — один предпочтительный сервер DNS-адреса и второй альтернативный сервер DNS-адреса. Оба из них будут отображаться один под другим в окне командной строки, рядом со словами «DNS-серверы».
Альтернативный метод определения адреса DNS-сервера. Существует и другой способ, в котором вы можете найти адреса DNS-серверов вашего компьютера. Вы должны нажать на кнопку «Пуск» и перейти в «Панель управления». В окне панели управления, вы должны дважды щелкнуть на «Сетевые подключения». Это откроет новые окна, которые будут отображаться в Интернете, которые вы сейчас используете. Щелкните правой кнопкой мыши на этом значке и выберите «Свойства» из списка доступных вариантов. В последующем окне, выделите фразу, содержащую слова «Internet Protocol» и нажмите на кнопку с именем команды «Свойства». Новое окно, открывшееся впоследствии при этом, можно просматривать как адреса DNS-серверов в нижней части окна.
Вы можете использовать эти методы, чтобы определить адрес DNS-сервера вашего компьютера. Просто убедитесь, что вы не изменили данные случайно, или же вы можете в конечном итоге столкнуться с проблемами в навигации в Интернете.
Если Вы нашли опечатку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Защита от атак
Атаки на DNS – далеко не новая стратегия хакеров, однако только недавно борьба с этим видом угроз стала принимать глобальный характер.
«В прошлом уже происходили атаки на DNS-сервера, приводящие к массовым сбоям. Как-то из-за подмены DNS-записи в течение часа для пользователей был недоступен известный всем сервис Twitter, – рассказывает Алексей Шевченко, руководитель направления инфраструктурных решений российского представительства ESET. – Но куда опаснее атаки на корневые DNS-сервера. В частности, широкую огласку получили атаки в октябре 2002 года, когда неизвестные пытались провести DDoS-атаку на 10 из 13 DNS-серверов верхнего уровня».
Протокол DNS использует для работы TCP- или UDP-порт для ответов на запросы. Традиционно они отправляются в виде одной UDP-датаграммы. Однако UDP является протоколом без установления соединения и поэтому обладает уязвимостями, связанными с подделкой адресов – многие из атак, проводимых на DNS-сервера, полагаются на подмену. Чтобы этому препятствовать, используют ряд методик, направленных на повышение безопасности.
Одним из вариантов может служить технология uRPF (Unicast Reverse Path Forwarding), идея которой заключается в определении того, может ли пакет с определенным адресом отправителя быть принят на конкретном сетевом интерфейсе. Если пакет получен с сетевого интерфейса, который используется для передачи данных, адресованных отправителю этого пакета, то пакет считается прошедшим проверку. В противном случае он отбрасывается.
Несмотря на то что, данная функция может помочь обнаружить и отфильтровать некоторую часть поддельного трафика, uRPF не обеспечивает полную защиту от подмены. uRPF предполагает, что прием и передача данных для конкретного адреса производится через один и тот же интерфейс, а это усложняет положение вещей в случае нескольких провайдеров. Более подробную информацию о uRPF можно найти здесь.
Еще один вариант – использование функции IP Source Guard. Она основывается на технологии uRPF и отслеживании DHCP-пакетов для фильтрации поддельного трафика на отдельных портах коммутатора. IP Source Guard проверяет DHCP-трафик в сети и определяет, какие IP-адреса были назначены сетевым устройствам.
После того как эта информация была собрана и сохранена в таблице объединения отслеживания DHCP-пакетов, IP Source Guard может использовать ее для фильтрации IP-пакетов, полученных сетевым устройством. Если пакет получен с IP-адресом источника, который не соответствует таблице объединения отслеживания DHCP-пакетов, то пакет отбрасывается.
Также стоит отметить утилиту dns-validator, которая наблюдает за передачей всех пакетов DNS, сопоставляет каждый запрос с ответом и в случае несовпадения заголовков уведомляет об этом пользователя. Подробная информация доступна в репозитории на GitHub.
Какие DNS сервера можно использовать для доступа в интернет?
Для получения IP адреса по имени домена можно использовать следующие DNS сервера:
Google:
8.8.8.8 4.4.4.4
Yandex:
77.88.8.8 77.88.8.1
Заключение
Система доменных имён разработана в еще 80-х годах прошлого века и продолжает обеспечивать удобство работы с адресным пространством интернета до сих пор. Более того, технологии DNS постоянно развиваются, например, одним из значимых нововведений недавнего времени стало внедрение доменных имен на национальных алфавитах (в том числе кириллический домен первого уровня.рф).
Постоянно ведутся работы по повышению надежности, чтобы сделать систему менее чувствительной к сбоям (стихийные бедствия, отключения электросети и т. д.), и это очень важно, поскольку интернет стал неотъемлемой частью нашей жизни, и «терять» его, даже на пару минут, совершенно не хочется.
Кстати, компания 1cloud предлагает своим пользователям VPS бесплатную услугу «DNS-хостинг» – инструмент, упрощающий администрирование ваших проектов за счет работы с общим интерфейсом для управления хостами и ссылающимися на них доменами.
- https://habr.com/post/309018/
- https://www.REG.ru/support/dns/obschaja-informatsija-o-dns-serverah/printsipy-raboty-dns-i-pochemu-domeny-nachinayut-rabotat-ne-srazu
- https://Eternalhost.net/base/domeny/chto-takoe-dns-server
- https://krym-yalta.ru/post_1358508496.html
- https://htmlweb.ru/other/dns.php