Что такое DNS-сервер и как он работает. Как настроить первичный DNS сервер на CentOS

DNS определяет два типа серверов: первичные и вторичные. Первичный сервер - это сервер, накапливающий файл о зоне, на которую он имеет полномочия. Он несет ответственность за создание, эксплуатацию и изменения зонового файла. Зоновый файл накапливается на локальном диске.

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

DNS в Интернете

DNS – это протокол, который может быть использован в различных платформах. В Интернете пространство доменных имен (дерево) разделяется на три различных секции: родовой домен, домен страны и инверсный домен.

Родовой домен

Родовой домен определяет регистрацию хоста (generic domain) в соответствии с его родовой природой. Эти уровни связаны с типами организаций, как это, например, приведено для США в табл. 3.1.

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

В таблице первый уровень в секции родового домена позволяет семь возможных трехсимвольных уровней. Эти уровни соотнесены с типами организаций так, как перечислено в табл. 3.1.

Домены страны

Секция домены страны придерживается того же формата, что и родовые домены, но использует двухсимвольные сокращения страны (например, ru для России) вместо трехсимвольной организационной структуры первого уровня. Аббревиатуры второго уровня могут быть организационными или могут более детально определять национальную принадлежность. Россия (ru), например, использует аббревиатуры отдельных городов (например, spb.ru). Адрес gut.spb.ru может быть расшифрован как Государственный университет телекоммуникаций, Санкт-Петербург, Россия.

Инверсный домен

Инверсный домен использует отражение адреса в имя. Это может понадобиться, например, когда сервер получил запрос от клиента на выполнение определенной задачи. Поскольку сервер имеет файл, который содержит список полномочных клиентов, сервер перечисляет только IP-адреса клиентов (извлекая их из полученного пакета). Чтобы определить, есть ли клиент в разрешенном списке, сервер может запросить DNS-сервер об отображении адреса в имя.



Этот тип запроса называется инверсным запросом, или запросом указателя. Для того чтобы обработать запрос указателя, инверсный домен добавляет к пространству доменных имен узел первого уровня, называемый arpa (по историческим причинам). Второй уровень также именует одиночный узел in-addr (для инверсного адреса). Остаток домена определяет IP-адреса.

Сервер, который обрабатывает инверсный домен, - также иерархический. Это означает, что часть адреса, содержащая сетевой номер (netid), должна быть более высокого уровня (в данном примере это 132), чем часть адреса подсети (subnetid), в данном примере 45; а часть адреса подсети должна быть более высокого уровня, чем адрес хоста (hostid). Такая конфигурация делает вид домена инверсным, если сравнивать с родовым доменом и доменом страны.

Распознавание имен

Отображение имени в адрес или адреса в имя называется "распознавание имя-адрес".

Распознаватель (resolver)

Протоколы DNS разработаны как приложение сервер-клиент. Хост, который нуждается в отображении адреса в имя или имени в адрес, вызывает DNS клиента, который называется распознавателем. Распознаватель получает доступ к ближайшему серверу DNS с запросом на отображение. Если сервер имеет информацию, он выполняет запрос распознавателя; в противном случае он либо отсылает распознаватель к другим серверам, либо сам запрашивает другие сервера для того, чтобы обеспечить эту информацию.

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



Отображение имен в адреса

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

Если имя домена от родовой секции, распознаватель получает доменное имя, такое как kafedra.gut.edu. Запрос посылается распознавателем к местному DNS-серверу для распознавания. Если местный сервер не распознает запроса, он либо отсылает распознаватель к другому серверу, либо запрашивает другой сервер напрямую.

Если имя домена из секции доменов стран, распознаватель получает доменное имя, такое как kafedra.gut.spb.ru. Процедура та же самая.

Отображение адресов в имена

Клиент может послать IP-адрес на сервер для того, чтобы отобразить доменное имя. Это называется PTR-запрос. Для подобного запроса DNS использует инверсный домен. Однако IP-адрес запроса должен быть реверсирован, и должны быть прикреплены две метки, in-addr или arpa, чтобы создать доступный домен с помощью инверсной доменной секции. Например, если распознаватель получил IP-адрес 132.34.45.121, распознаватель вначале инвертирует адрес, а затем добавляет две метки перед посылкой. Посылаемое имя домена - 121.45.34.132.in-addr.arpa. Оно получается с помощью локальной DNS и распознается.

Рекурсивное распознавание

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

Итерационное распознавание

Если клиент не запрашивает рекурсивный ответ, отображение может быть сделано итерационно. Если сервер имеет разрешенное имя, он посылает ответ. Если нет, он возвращает клиенту IP-адрес сервера, который, как он предполагает, может ответить на запрос. Клиент повторяет запрос второму серверу. Если вновь адресованный сервер может распознать запрос, он отвечает IP-адресом; в противном случае он возвращает IP-адрес нового сервера клиенту. Теперь клиент должен повторить запрос третьему серверу. Этот процесс называется итерационным, потому что клиент повторяет один и тот же запрос к множеству серверов.

Кэширование

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

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

При первом из них полномочный сервер всегда добавляет кусок информации для отображения так называемого "времени жизни" (TTL – time to live). Оно определяет время в секундах, в течение которого принимающий сервер может кэшировать информацию. После истечения этого времени отображение недействительно, и любой запрос может быть опять послан к полномочному серверу.

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

DNS-сообщения

DNS имеет два типа сообщения: запрос и отклик. Оба типа имеют один и тот же формат. Сообщение запроса содержит заголовок, запись запроса, ответную запись, запись полномочий и дополнительные записи (рис. 4.1).

Рис. 4.1. Сообщение запроса и записи

Заголовок

Оба сообщения, запрос и отклик, имеют один и тот же формат заголовка с несколькими полями с установленными нулями для сообщений отклика. Заголовок 12 байт и его формат показан в (табл. 4.2).

Поля заголовков – следующие:

Идентификация . Это 16-битовое поле применяется клиентом для того, чтобы сравнить отклик с запросом. Клиент использует различный номер идентификации каждый раз, когда он посылает запрос. Сервер дублирует этот номер в соответствующем отклике.

Флаги . Это 16-битовое поле, содержащее субполя, показано на (рис. 4.2).

Рис. 3.2. Поле флагов

Короткое описание субполей каждого флага дано ниже.

1. QR (query/response) - запрос/ответ . Это однобитовое субполе, которое определяет тип сообщения. Если оно равно 0, сообщение является запросом. Если оно равно 1, то сообщение - ответ.

2. OpCode (код операции) . Это 4-битовое субполе, которое определяет тип запроса или ответа (0 - тип стандартный, 1 - тип инверсный и 2 - сервер запрашивает состояние).

4. TC (truncated - усеченное) . Это однобитовое поле. Когда оно установлено (значение 1), это означает, что ответ был более чем 512 байт и усечен до 512. Применяется, когда DNS пользуется услугой UDP.

5. RD (recursiondesired – желательна рекурсия) . Это однобитовое субполе. Когда оно установлено (значение 1), это означает, что клиенту желателен рекурсивный ответ. Он устанавливается в сообщении запроса и повторяется в ответном сообщении.

6. RA (recursion available - рекурсия возможна) . Однобитовое субполе. Когда оно установлено в ответе, это означает, что возможен рекурсивный ответ. Устанавливается только в ответном сообщении.

7. Reserved (резервные) . Это трехбитовое субполе с установленными нулями.

8. rCode (r-код) . Это 4-битовое поле, которое показывает состояние ошибки в ответе. Конечно, только полномочный сервер может сделать такую оценку.

Таблица 4.2. показывает возможные значения этого поля.

Значение

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

DNS – аббревиатура, образованная от Domain Name System. С английского языка на русский это переводится как «Система доменных имен», изменяющая их в IP-адреса. А днс-сервер хранит в базе данных соответствующие адреса.

Работа осуществляется таким образом: браузер, переходя на сайт, обращается к ДНС-серверу, чтобы узнать искомый адрес. Server определяет сайт, посылает ему запрос и передает полученный ответ обратно пользователю.

Как узнать, включен ли DNS-сервер на компьютере

Текущие настройки DNS-server определяются так:

  1. «Панель управления» -> «Сеть и интернет» -> «Просмотр состояния сети и задач». Выделить свое подключение по сети, перейти в панель «Общее», затем — в свойства.
  2. Зайти в свойства «Протокола Интернета версии 4 (TCP/IPv4)».
  3. Открыть вкладку «Общие». Если активирован пункт использования следующих адресов DNS-серверов, значит, он находится в рабочем режиме.

Повторить предыдущие шаги, активировать «Использовать DNS-сервер». После этого потребуется указание первичного DNS-сервера, а затем вторичного.

Как настроить/изменить DNS

При изменении или дополнительной настройке не потребуется совершать много действий. Необходимо использовать окно, открытое ранее, зайти в пункт «Дополнительно». Здесь производится детальная наладка обращения к DNS-серверам. В Windows 7 это все возможно настроить самостоятельно. Поэтому вопрос, как самим изменить dns-сервер, не вызовет проблем.

Еще для управления доступны DNS-суффиксы. Рядовому пользователю они не требуются. Эта настройка, помогающая удобно разделять ресурсы, создана для провайдеров.

На wi-fi роутере

При использовании роутера в опциях ДНС необходимо выставить его IP-адрес. Чтобы выполнить эти манипуляции, потребуются включенные DNS-relay и DHCP-server.

Интерфейс роутера предназначен для проверки и последующих детальных настроек. Сначала необходимо проверить ДНС в WAN-порте. DNS-relay активируется в параметрах LAN-порта.

На компьютере

Настройка ДНС-сервера в Windows 10 схожа с аналогичной ситуацией в ранних версиях ОС. Сначала нужно выбрать свойства «Протокола интернета версии 4 (TCP/IPv4)». Перейти в дополнительные опции и настроить список серверов.

Настройка сервера ДНС на компьютере и на ноутбуке одинаковая.

На планшете

В зависимости от установленной «операционки» действия несколько различаются, но их все объединяют следующие моменты:

  • Открыть меню «Wi-Fi», находящееся в «Настройках».
  • Зайти в свойства текущего подключения к интернету.
  • Кликнуть «Изменить сеть», после – «Показать дополнительные параметры».
  • Пролистать до пункта ДНС-серверов, потом их прописать.

На смартфоне

Так как сейчас особой разницы между операционными системами телефона и планшета нет, чтобы настроить нужные dns-серверы, достаточно знать инструкции, описанные выше.

Возможные ошибки и как их исправить

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

Что делать, если сервер не отвечает или не обнаружен

Чаще всего эта неполадка возникает при серверном отключении или сбившихся настройках. Для этого нужно открыть «Панель управления», перейти в «Систему и безопасность», затем — «Администрирование». Кликнуть на «Службы», найти «ДНС-клиент» и дважды щелкнуть по нему. В строке состояния отмечается команда «Выполняется». В ином случае нужно выбрать автоматический тип запуска из выпадающего списка выше.

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

Неправильно разрешает имена

При такой ошибке необходимо проверить правильность параметров своего DNS-server. А лучше просто прибегнуть к смене адреса dns-сервера, чтобы избавиться от возникшей проблемы.

Также неполадки возможны на серверах оператора, и решается задача тем же способом – изменением ДНС.

Для неискушенного пользователя существует список качественных и бесплатных servers:

Адреса: 8.8.8.8; 8.8.4.4

Как и все сервисы Google, качественно выполняет свои задачи, но обладает известным минусом – собирает и хранит статистику пользователя. Несмотря на это, server не имеет никакого доступа к персональным данным, поэтому волноваться о безопасности не стоит.

Если хочется узнать подробнее о server-работе, существует официальная документация на информационном сайте.

OpenDNS

Адреса: 208.67.222.222; 208.67.220.220

Популярный server ввиду наличия большого ассортимента фильтров и защиты от кражи персональных данных. Основные функции выполняются бесплатно, но есть возможность приобретения премиум доступа, позволяющего создать «заблокированную сетевую среду» и повысить скорость соединения.

DNS.WATCH

Адреса: 84.200.69.80; 84.200.70.40

Не требует регистрации для использования, обеспечивает более серьезный уровень. Единственный минус – низкая скорость.

Norton ConnectSafe

Адреса: 199.85.126.10; 199.85.127.10

Тоже не «просит» предварительную регистрацию, надежно хранит данные пользователя. Создан разработчиками антивируса Norton, не требуя себе дополнительной рекламы.

Level3 DNS

Адреса: 4.2.2.1; 4.2.2.2

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

Comodo Secure DNS

Адреса: 8.26.56.26; 8.20.247.20

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

OpenNIC DNS

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

Ввиду своего огромного покрытия позволяет удобно исследовать интернет в любой точке мира.

DHCP-сервер: что это и в чем его особенности

Больше всего подходит для сеток с наличием большого количества компьютеров по причине передачи своих сетевых настроек всем подключенным устройствам.

Такой server позволяет администратору задать диапазон хостов серверов и избежать большой траты времени на детальную оптимизацию.

Работает он только с настройками IP-адресов и самими адресами.

Заключение

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

Руководство для системных администраторов

4. Установка BIND

Запуск вторичного DNS-сервера

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

Мы копируем файлы /etc/named.conf, db.cache и db.127.0.0 на машину wormhole.movie.edu, а затем редактируем файл настройки, как описано выше. Файл настройки на узле wormhole.movie.edu выглядит теперь следующим образом:

options { directory "/var/named"; };

Служба сетевых имен (Domain Name System – DNS) – это глобальная распределенная база данных, построенная на основе иерархической структуры доменов. Для работы DNS использует протокол TCP или UDP через 53 порт. Традиционно запросы и ответы отправляются в виде одной UDP датаграммы. Если ответ больше 512 байт или происходит синхронизация данных между базами DNS-серверов, то используется протокол TCP.

Служба DNS предполагает, что каждый компьютер подключается к глобальной сети из какого-либо домена Internet. При этом каждый домен имеет сервер имён (NS – nameserver, он же DNS-сервер для конкретного домена), который ведет базу данных всех хостов в своем домене и обрабатывает запросы об именах хостов. Когда домен становится слишком большим для управления из одной точки, часть прав может быть делегирована субдоменам (поддоменам), что позволяет уменьшить нагрузку на DNS-сервер.

Как и большинство сервисных служб Internet, служба DNS работает по технологии «клиент-сервер».

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

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

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

Существует три разновидности таких серверов:

Первичный DNS-сервер (ведущий, master или primary).

Вторичный DNS-сервер (ведомый, slave или secondary).

Кэширующий DNS-сервер (caching-only).

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

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

За каждую зону DNS отвечают не менее двух серверов: один является первичный, остальные – вторичные.

Первичный сервер содержит оригинальные файлы с базой данных DNS для своей зоны. Вторичные серверы получают эти данные по сети от первичного сервера и периодически запрашивают первичный сервер на предмет обновления данных (признаком обновления данных служит увеличение серийного номера в записи SOA). При возникновении изменений данных на первичном сервере, вторичный сервер запрашивает «передачу зоны» («zone transfer») - т.е. базы данных требуемой зоны. Передача зоны происходит с помощью протокола TCP, порт 53 (в отличие от запросов клиентов, которые направляются на UDP порт 53).


Изменения в базу данных DNS могут быть внесены только на первичном сервере. Вторичные серверы повышают надежность работы первичных DNS-серверов (исключают возможность нарушения работы сети в случае их отказа) и берут на себя часть нагрузки по обслуживанию запросов.

С точки зрения обслуживания клиентских запросов первичный и вторичные серверы выдают идентичные ответы. На практике рекомендуется, чтобы первичный и вторичные серверы находились в разных сетях – для увеличения надежности обработки запросов на случай, если сеть одного из серверов становится недоступной. Серверы DNS не обязаны находиться в том домене, за который они отвечают.

Следует также отметить, что вторичный сервер необязательно получает данные непосредственно с первичного сервера; источником данных может служить и другой вторичный сервер. В любом случае сервер-источник данных для данного вторичного сервера называется «главным» («master»).