Как настроить первичный DNS сервер на CentOS. Forwarders – «пересыльщики» запросов и ускорители разрешения имён

16.05.2019

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

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

Совет администратора! Если возникает проблема с доступом в сеть. Возможно, некорректно работает служба определения dns-адресов, в результате вы будете иметь физический выход в сеть, но без выхода в интернет через браузер. Это можно исправить обычной перезагрузкой компьютера, опытные пользователи могут перезапустить службу и восстановить работу сети по http-протоколу.

Принцип действия DNS

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

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

Подмена ДНС - классическая хакерская атака

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

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

ДНС провайдера

Как мы говорили, для настройки сетевого соединения требуется ДНС адрес провайдера. Обычно их несколько, особенно это касается крупных телекоммуникационных систем, к которым подключается множество пользователей. Обычно в службе поддержки можно узнать первичный и вторичный ДНС, эти сервера дублируют друг друга, когда идет довольно большая нагрузка при подключении пользователей.

Определение ДНС провайдера из своей сети

Проще всего это сделать, когда имеется сеть и выход в интернет, либо то же самое можно сделать от абонента, также обслуживающегося в вашей провайдерской сети. Для этих целей следуйте инструкции:

  • запустите командную строку, нажав в меню «Пуск», затем «Выполнить» и набрав в строке CMD (строчными);
  • в открывшемся окне командной строки наберите ipconfig/all;
  • в отчете вы получите список DNS-адресов;
  • полученные адреса можно физически прописать в настройках сети, в этом случае выход в сеть будет стабильно работать даже при сбоях автоматического обнаружения ДНС-серверов.

Этот способ помогает сделать доступ в сеть более устойчивым, фактически вы назначаете постоянный ДНС-сервер с резервным адресом. Оба сервера будут осуществлять маршрутизацию ваших запросов в сети интернет.

Скрины

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

Отчет после запуска команды ipconfig /all с одним днс-зеркалом

Отчет после запуска команды ipconfig /all с двумя днс-зеркалами

Альтернативные способы поиска ДНС-адресов провайдера

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

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

Однако прежде чем «лезть в дебри» и самостоятельно изменять настройки dns на роутере, нужно разобраться, что это за «зверь» такой - dns, и зачем вообще нужен dns-сервер.

Более подробно данный вопрос мы рассматривали в статье , здесь же остановимся только на основных его «характеристиках».

Итак, DNS (или domain name system) - это один из протоколов, обеспечивающих прикладной уровень компьютерных сетей.

Он был разработан, чтобы заменить чрезмерно длинные и неудобоваримые (IP) доменными именами - лэйблами для соответствующих адресов.

Таким образом, основной задачей DNS сервера является «раздача» доменных имён и присвоение этих лэйблов , подключенных на вверенном ему участке сети.

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

Что такое делегирование?

Когда вы с выходом в интернет, обязанность расшифровки доменных имён для абонентов данной сети ложится на , который объединяет все функциональные узла вашей «локалки».

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

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

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

Соответственно, имеет смысл прописать dns на роутере вручную - т.е. настроить делегирование напрямую, минуя все сервера-посредники.

Какие dns сервера прописать в роутере?

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

Одним из таких «адресов», которые можно внести в настройки dns на роутере является 8.8.8.8

Этот адрес должен решить вопрос стабильности доступа к DNS серверу, однако «выжать» максимум скорости загрузки страниц с его помощью не получится.

Для этого стоит выяснить, какой DNS сервер находится ближе всего к вашему участку всемирной сети и прописать его на роутере.

При этом узнать «оптимальный» dns сервер для роутера можно с помощью специальной программы от Google под названием Namebench.

Скачайте данный софт на свой сетевой компьютер, откройте файл, нажмите кнопку extract и в появившемся окне - кнопку start benchmark.

Эта операция может занять несколько минут.

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

В зависимости от модели роутера, путь к настройкам DNS может варьироваться, однако данная операция всегда осуществляется и искать нужную вкладку следует или в «Общих настройках» или в «Настройках интернет-соединения».

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. показывает возможные значения этого поля.

Значение

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

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"; };