...

Dns что это за программа

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

Если на первом месте стоит отказоустойчивость и доступность сайта в любое время, то лучшим решением будут платные DNS. Платные сервисы также подходят, если злоумышленники DDoS-ят ваши серверы имен.

Если не хотите зависеть от сторонних компаний и самостоятельно управлять DNS, ваш выбор — собственные серверы имен. Ответственность за их работоспособность лежит на вас.

Если не хочется решать вопросы размещения и настройки, а кратковременные отказы не критичны, то ваш выбор — бесплатные DNS или DNS провайдера.

Что такое DNS-сервер, его виды

DNS-сервер (NS, Name Server, сервер имён) отвечает за преобразование доменного имени в IP-адрес. С помощью IP-адреса браузер открывает запрошенный сайт.

Пример преобразования домена в IP-адрес
firstvds.ru → 80.87.203.35

Для размещения DNS-серверов существует несколько вариантов:

  • ДНС-серверы хостинг-провайдера
  • Собственные ДНС-серверы
  • Бесплатные DNS-хостинги
  • Платные DNS-хостинги
  • CDN-прокси (в режиме DNS)

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

Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей

DNS-сервер провайдера

При покупке сервера хостинги могут предоставлять бесплатные серверы имён (как первичные, так и вторичные). Этот вариант подходит для тех, кто не хочет «заморачиваться»: при добавлении домена в панели управления остальные параметры настраиваются автоматически (так это работает на нашем хостинге).

Главный недостаток — хостинги предоставляют DNS-сервисы с базовой функциональностью. Они справляются с основой задачей (трансляция домена в IP), но дополнительная функциональность (API, IPv6, DDNS, Geo Routing) отсутствует или урезана.

Все клиенты используют общие серверы имен. Если на NS одного из клиентов заказана сильная DDoS-атака, то сбои в работе могут испытывать все остальные клиенты. Несмотря на это, хостинги стараются защитить свои DNS от DDoS.

Плюсы:

  • Простота настройки
  • Нет необходимости следить за состоянием ДНС-сервера
  • Бесплатно

Минусы:

  • Услуга может быть доступна не на всех хостингах
  • Невозможность использования API
  • Возможны сбои в работе

Собственный DNS-сервер

Подходит для обладателей виртуальных и тех, кто хочет купить выделенный сервер. Клиент размещает DNS на своем сервере, обычно на одном сервере с сайтом.

Настройка с помощью панели. Большинство панелей управления поддерживают настройку серверов имён. Клиенты FirstVDS используют панель ISPmanager, в которой есть такая возможность.

Самостоятельная настройка. Настроить серверы имён можно и без панели управления. Для этого достаточно установить программу DNS-сервера (например, BIND) и создать конфигурационный файл по образцу.

DNS-сервер и защита от DDoS. Если вы пользуетесь услугами защиты от DDoS, размещать DNS-сервис и сайт на одном сервере не рекомендуется. Cервисы защиты от DDoS могут блокировать весь UDP-трафик в случае сильных атак, и клиенты не могут получить доступ к серверу имен — сайт будет недоступен по доменному имени. В этом случае DNS следует располагать на отдельном сервере.

Плюсы:

  • Независимость от сторонних ресурсов
  • Возможность настройки DNS под себя и использования собственных скриптов
  • Бесплатно

Минусы:

  • Требуется 2 IP-адреса
  • Сложность настройки
  • Самостоятельная поддержка работоспособности
  • Возможны проблемы в случае использования DDoS-защиты

Регистраторы требуют, чтобы для каждого домена было минимум два сервера имён: первичный (master) и как минимум один вторичный (slave). В качестве адресов должны быть указаны два разных IP-адреса.

Чтобы удовлетворить это требование, к серверу подключают дополнительный IP-адрес. Основный адрес указывают в качестве первичного NS, а дополнительный адрес — в качестве вторичного NS.

Бесплатные DNS-хостинги

В интернете можно найти множество ресурсов, предлагающих бесплатные DNS-сервера.

Бесплатный DNS-хостинг — хорошее решение, если вы не имеете возможности администрировать DNS-сервер самостоятельно. Но будьте внимательны: часто в условиях бесплатных сервисов прописывается отказ от ответственности. Могут присутствовать ограничения по количеству доменов, по количеству запросов в месяц. Может быть запрещено размещение коммерческих проектов. Хорошо изучите условия выбранного сервиса.

Плюсы:

  • Бесплатно
  • Возможность найти сервис, который подходит по условиям и возможностям

Минусы:

  • Не отвечают за работоспособность
  • API отсутствует или неудобен в использовании
  • Ограничения выделяемых ресурсов

Платные DNS-хостинги

Платные DNS-хостинги, в отличие от бесплатных, гарантируют уровень сервиса и предоставляют набор дополнительных возможностей. Такой ДНС-хостинг позиционируется как отказоустойчивый и высокодоступный. У него есть перенос уже действующих настроек с других серверов и полноценный API для которого написано множество готовых рецептов.

Плюсы:

  • Отказоустойчивость
  • Полноценный API
  • Дополнительная функциональность

Минусы:

Зачем нужен API на DNS-хостинге

Самый распространенный способ применения — создание отказоустойчивой системы. Например, у нас есть два сервера. Сервер А — основной, на нем расположен сайт, к которому обращаются посетители. Сервер Б — резервный, на нем хранится актуальная копия (реплика) основного сайта.

Представим, что мы арендуем платный ДНС-сервер. Если сайт работает в штатном режиме, то данные отдаются с сервера А. На сервере Б работает скрипт, который проверяет доступность сайта на сервера А. Если он перестает работать, то скрипт по API обращается к ДНС-хостингу и пишет в А-запись IP-адрес сервера Б. Сайт продолжает работать с резервного сервера.

Поскольку переключение происходит с минимальными задержками, посетители не заметят переключения.

CDN-прокси

Особняком стоят CDN-прокси (Content Distribution Network), которые можно использовать и как DNS. CDN-прокси ускоряют работу сайта благодаря кэшированию данных на распределённой сети серверов. Сайт отдается клиенту с ближайшего к нему сервера. Также CDN может фильтровать вредоносные запросы (защищать сайт от DDoS).

CDN-сети имеют серьёзный недостаток: IP-адрес для доменов, размещённых в CDN, присваивается случайным образом. Т.е. попасть на сайт или сервер напрямую по IP-адресу будет невозможно.

Кроме этого, сайт может быть заблокирован на территории РФ. IP-адреса сайтов с запрещенным контентом попадают в черный список Роскомнадзора и блокируются провайдерами (и это не редкость для CDN-сетей). Если вашему домену случайным образом достанется один из таких адресов, то сайт окажется недоступным. По этой причине необходимо внимательно подходить к выбору CDN-провайдера и заранее узнавать об IP-адресах, находящихся в черных списках, и возможных проблемах с ними.

Не рекомендуем использовать CDN-прокси для сайтов, аудитория которых находится в России.

Плюсы:

  • Повышение скорости отдачи контента
  • Защита от вредоносных запросов
  • Удобство работы
  • Отказоустойчивость

Минусы:

  • IP-адреса могут быть в черных списках Роскомнадзора
  • Стоимость

DNS сервер BIND (теория)

Основная цель DNS — это отображение доменных имен в IP адреса и наоборот — IP в DNS. В статье я рассмотрю работу DNS сервера BIND (Berkeley Internet Name Domain, ранее: Berkeley Internet Name Daemon), как сАмого (не побоюсь этого слова) распространенного. BIND входит в состав любого дистрибутива UNIX. Основу BIND составляет демон named, который для своей работы использует порт UDP/53 и для некоторых запросов TCP/53.

Основные понятия Domain Name System

image

Исторически, до появления доменной системы имен роль инструмента разрешения символьных имен в IP выполнял файл /etc/hosts, который и в настоящее время играет далеко не последнюю роль в данном деле. Но с ростом количества хостов в глобальной сети, отслеживать и обслуживать базу имен на всех хостах стало нереально затруднительно. В результате придумали DNS, представляющую собой иерархическую, распределенную систему доменных зон. Давайте рассмотрим структуру Системы Доменных Имён на иллюстрации:

Доменная структура DNS представляет собой древовидную иерархию, состоящую из узлов, зон, доменов, поддоменов и др. элементов, о которых ниже пойдет речь. «Вершиной» доменной структуры является корневая зона. Настройки корневой зоны расположены на множестве серверов/зеркал, размещенных по всему миру и содержат информацию о всех серверах корневой зоны, а так же отвечающих за домены первого уровня (ru, net, org и др). Информация о серверах корневой зоны расположена на данном сайте корневых серверов. Настройки корневой зоны всегда доступны тут. Серверы корневой зоны обрабатывают и отвечают на запросы, выдавая информацию только о доменах первого уровня (то есть отвечают на любые запросы, как на нерекурсивные)! Итак, уже много раз повторилось слово зона. Пора этот термин объяснить.

Зона — это любая часть дерева системы доменных имен, размещаемая как единое целое на некотором DNS-сервере. Зону, для бОльшего понимания, можно назвать «зоной ответственности». Целью выделения части дерева в отдельную зону является передача ответственности (Делегирование) за эту ветвь другому лицу или организации. На иллюстрации, примеры зон выделены синим градиентом (зона name., зона k-max.name. со всем подчиненными ресурсами, www.openoffice.org со всем подчиненными поддоменами и ресурсами). На иллюстрации выделены не все зоны, а лишь некоторые для общего понимания и представления. В каждой зоне имеется, по крайней мере, один авторитетный сервер DNS, который хранит ВСЮ информацию о зоне, за которую он отвечает.

Домен — это именованная ветвь или поддерево в дереве имен DNS, то есть это определенный узел, включающий в себя все подчиненные узлы. Следующая цитата из книги Linux Network Administrators Guide хорошо проясняет картину относительно разницы между зоной и доменом:

Таким образом, пространство имен раздроблено на зоны ( zones), каждая из которых управляется своим доменом. Обратите внимание на различие между зоной (zone) и доменом (domain): домен groucho.edu затрагивает все машины в университете Groucho Marx, в то время как зона groucho.edu включает только хосты, которые работают в непосредственно компьютерном центре, например в отделе математики. Хост в отделе физики принадлежат другой зоне, а именно physics.groucho.edu.

Каждый узел в иерархии DNS отделен от своего родителя точкой. Если провести аналогию с файловой системой Linux, система доменных имен имеет похожую структуру, за тем исключением, что разделитель в файловой системе — слэш, а в DNS — точка. А так же DNS адрес читается справа налево (от корневого домена к имени хоста) в отличии от пути в файловой системе Linux. Доменное имя начинается с точки (корневого домена) и проходит через домены первого, второго и если нужно третьего и т.д. уровней и завершается именем хоста. Т.о. доменное имя полностью отражает структуру иерархии DNS. Часто (я бы сказал — всегда в повседневной жизни), последняя точка (обозначение корневого домена) в доменном имени опускается (то есть в браузере мы вводим не k-max.name., а k-max.name). Итак, разобрав структуру доменного имени, мы незаметно подошли к понятию FQDN.

FQDN (англ. Fully Qualifed Domain Name, полностью определённое имя домена) — это имя домена, однозначно определяющее доменное имя и включающее в себя имена всех родительских доменов иерархии DNS, в том числе и корневого. Своеобразный аналог абсолютного пути в файловой системе. Давайте разберем вышесказанное на примере имени домена mail.k-max.name:

mail.k-max.name. | | | | | | | | | +-корневой домен | | | +---домен первого уровня | | +------точка, разделяющая домены/части FQDN | +---------домен второго уровня +---------------поддомен/домен третьего уровня, возможно - имя хоста

Различие между FQDN и обычным доменным (неFQDN) именем появляется при именовании доменов второго, третьего (и т. д.) уровня. Для получения FQDN требуется обязательно указать в доменном имени домены более высокого уровня (например, mail является доменным именем, однако FQDN имя выглядит как mail.k-max.name.). Максимальный размер FQDN — 255 байт, с ограничением в 63 байта на каждое имя домена.

Поддомены, коротко говоря, это — подчиненные домены. По большому счету, все домены в интернете являются подчиненными за исключением корневого. Например домен k-max является поддоменом домена name, а name, в свою очередь — поддоменом корневого домена.

Итак, на схеме выше мы рассмотрели корневой домен, следующим в иерархии идут домены первого/верхнего уровня, они же TLD, они же Top-Level Domain. К данным доменам относятся национальные домены (ru., ua. и др) и общие домены (com., net., и др). Существуют так же специализированные домены, которые не опубликованы в системе DNS, но используются программами (домен .onion используется анонимной сетью Tor для перехвата и последующей маршрутизации обращений к скрытым сервисам этой сети). Еще есть т.н. зарезервированные доменные имена, определенные в RFC 2606 (Reserved Top Level DNS Names — Зарезервированные имена доменов верхнего уровня) определяет названия доменов, которые следует использовать в качестве примеров (например, в документации), а также для тестирования. К таким именам относятся например example.com, example.org и example.net, а также test, invalid и др. Ниже по иерархии, как видно, идут домены третьего уровня и т.д. Заканчивается доменная иерархия — именами хостов, которые задаются соответствующими ресурсными записями или хостовыми записями.

Ресурсные записи

Ресурсная запись — это то, собственно ради чего в конечном счете и существует DNS. Ресурсная запись — это единица хранения и передачи информации в DNS. Каждая такая запись несет в себе информацию соответствия какого-то имени и служебной информации в DNS, например соответствие имени домена — IP адреса.

Запись ресурса состоит из следующих полей:
  • имя (NAME) — доменное имя, к которому привязана или которому «принадлежит» данная ресурсная запись, либо IP адрес. При отсутствии данного поля, запись ресурса наследуется от предыдущей записи.
  • Time To Live (TTL) — дословно «время жизни» записи, время хранения записи в кэше DNS (после указанного времени запись удаляется), данное поле может не указываться в индивидуальных записях ресурсов, но тогда оно должно быть указано в начале файла зоны и будет наследоваться всеми записями.
  • класс (CLASS) — определяет тип сети, (в 99,99% случаях используется IN (что обозначает — Internet). Данное поле было создано из предположения, что DNS может работать и в других типах сетей, кроме TCP/IP)
  • тип (TYPE) — тип записи синтаксис и назначение записи
  • данные (DATA) — различная информация, формат и синтаксис которой определяется типом.
  • ; — Вводит комментарий
  • # — Также вводит комментарии (только в версии BIND 4.9)
  • @ — Имя текущего домена
  • ( ) — Позволяют данным занимать несколько строк
  • * — Метасимвол (только в поле имя)
k-max.name. 86400 IN A 81.177.139.65
ftp 86400 IN CNAME www.k-max.name.

При подготовке материала использовались источники:
https://timeweb.com/ru/community/articles/kak-vybrat-dns-server-1
https://habr.com/ru/articles/137587/

Оцените статью