Определить список корневых DNS-серверов с помощью консольных команд

Обновлено: 22.11.2024

По умолчанию экземпляр Amazon EC2, связанный с виртуальным частным облаком Amazon (Amazon VPC), при запуске запрашивает адрес DNS-сервера с использованием протокола динамической конфигурации хоста (DHCP). Ответ DHCP возвращает адреса DNS-серверов, записанные в локальный файл /etc/resolv.conf. Внесенные вручную изменения в файл resolv.conf с пользовательскими адресами DNS-серверов теряются при перезапуске экземпляра. Метод, который вы используете для решения этой проблемы, зависит от вашего дистрибутива Linux. Дополнительную информацию о VPC и DNS-серверах см. в разделе DNS-сервер Amazon.

Разрешение

Важно! Перед изменением инстанса Amazon EC2 создайте резервную копию с помощью образа машины Amazon (AMI) или моментального снимка Amazon Elastic Block Store (Amazon EBS). Изменение сетевых конфигураций экземпляра может сделать его недоступным.

Amazon Linux, Amazon Linux 2

Используйте один из следующих вариантов для настройки инстанса Amazon EC2. Если вы примените оба варианта, то DNS-серверы, указанные в файле ifcfg-eth0, будут иметь приоритет (вариант 2).

Чтобы работал любой вариант, для параметра PEERDNS в файле ifcfg-eth0 должно быть задано значение yes. Установка для параметра PEERDNS значения no означает, что DNS-серверы, указанные в файлах ifcfg-* или предоставленные DHCP, игнорируются.

<р>1. Отредактируйте или создайте файл /etc/dhcp/dhclient.conf.

Примечание. Для редактирования этого файла у вас должны быть привилегии пользователя root. Либо станьте пользователем root с помощью sudo -i, либо выполните все команды с помощью sudo.

<р>2. Добавьте команду supersede в файл, чтобы переопределить серверы доменных имен. В следующем примере замените xxx.xxx.xxx.xxx IP-адресом DNS-сервера или серверов, которые вы хотите использовать для экземпляра:

После предыдущей модификации файл resolv.conf обновляется при перезагрузке экземпляра и содержит только те DNS-серверы, которые вы указали в файле dhclient. Для получения дополнительной информации о команде supersede см. dhclient.conf(5) на справочной странице Linux.

<р>3. Задайте для параметра PEERDNS значение yes в файлах конфигурации каждого интерфейса (/etc/sysconfig/network-scripts/ifcfg-*).

<р>4. Перезагрузите экземпляр EC2.

<р>1. Чтобы переопределить значения DNS-серверов в файле /etc/dhcp/dhclient.conf, укажите пользовательские DNS-серверы в файлах конфигурации для каждого интерфейса (/etc/sysconfig/network-scripts/ifcfg-*).

Например, в следующем примере показан файл /etc/sysconfig/network-scripts/ifcfg-eth0 из экземпляра Amazon Linux, модифицированный для включения двух настраиваемых DNS-серверов (DNS1 и DNS2):

<р>2. Задайте для параметра PEERDNS значение yes в файлах конфигурации каждого интерфейса (/etc/sysconfig/network-scripts/ifcfg-*).

Убунту 16.04

<р>1. Отредактируйте или создайте файл /etc/dhcp/dhclient.conf.

Примечание. Для редактирования этого файла у вас должны быть привилегии пользователя root. Либо станьте пользователем root с помощью sudo -i, либо выполните все команды с помощью sudo.

<р>2. Добавьте команду supersede в файл, чтобы переопределить серверы доменных имен. В следующем примере замените xxx.xxx.xxx.xxx IP-адресом DNS-сервера или серверов, которые вы хотите использовать для экземпляра:

После этого изменения файл resolv.conf обновляется при перезагрузке экземпляра и содержит только те DNS-серверы, которые вы указали в файле dhclient. Дополнительные сведения о команде supersede см. в dhclient.conf(5) на справочной странице Linux.

<р>3. Перезагрузите экземпляр.

Убунту 18.04

По умолчанию в Ubuntu 18.04 пакет netplan.io обрабатывает конфигурацию сетевого интерфейса, а служба systemd-resolved обрабатывает DNS-запросы, используя преобразователь-заглушку. IP-адрес резолвера-заглушки находится в файле /etc/resolv.conf.

В свою очередь, файл /etc/resolv.conf является символической ссылкой на файл /run/systemd/resolve/stub-resolv.conf. Оператор supersede в файле /etc/dhcp/dhclient.conf может работать неправильно, если для файла /etc/resolv.conf верно одно из следующих условий:

  • Файл не является символической ссылкой в ​​вашем экземпляре.
  • Этот файл представляет собой символическую ссылку, указывающую на другой файл, например /run/systemd/resolve/resolv.conf.

Любое из этих условий указывает на изменение конфигурации Ubuntu 18.04 по умолчанию.

Выполните следующие шаги, чтобы переопределить значения DNS-сервера:

<р>1. Netplan обычно хранит файлы конфигурации в каталоге /etc/netplan. Создайте файл с именем /etc/netplan/99-custom-dns.yaml и заполните его следующими строками. Не забудьте заменить IP-адреса DNS-серверов-заполнителей вашими предпочтительными адресами:

После этих изменений вы по-прежнему будете видеть IP-адрес заглушки в файле /etc/resolv.conf. Это ожидаемо. IP-адрес резолвера-заглушки является локальным для вашей операционной системы, и в фоновом режиме преобразователь-заглушка использует DNS-серверы, указанные в предыдущем файле 99-custom-dns.yaml.

<р>2. Перезагрузите экземпляр.

<р>3.Запустите команду systemd-resolve, чтобы убедиться, что система правильно получает IP-адреса предполагаемых DNS-серверов:

RHEL 7.5

По умолчанию служба NetworkManager управляет файлом resolv.conf. Затем служба заполняет файл DNS-серверами, предоставленными DHCP. Запретите NetworkManager управлять файлом resolv.conf, чтобы файл resolv.conf игнорировал DNS-серверы, предоставляемые DHCP.

<р>1. Отредактируйте или создайте файл /etc/dhcp/dhclient.conf.

Примечание. Для редактирования этого файла у вас должны быть привилегии пользователя root. Либо станьте пользователем root с помощью sudo -i, либо выполните все команды с помощью sudo.

<р>2. Добавьте команду supersede в файл, чтобы переопределить серверы доменных имен. В следующем примере замените xxx.xxx.xxx.xxx IP-адресом DNS-сервера или серверов, которые вы хотите использовать для экземпляра:

После этого изменения файл resolv.conf обновляется при перезагрузке экземпляра и содержит только те DNS-серверы, которые вы указали в файле dhclient. Дополнительные сведения о команде supersede см. в dhclient.conf(5) на справочной странице Linux.

<р>3. Задайте для параметра PEERDNS значение yes в файлах конфигурации каждого интерфейса (/etc/sysconfig/network-scripts/ifcfg-*).

<р>4. Перезагрузите экземпляр.

<р>1. Создайте файл /etc/NetworkManager/conf.d/disable-resolve.conf-managing.conf со следующим содержимым:

<р>2. Перезагрузите экземпляр и заполните файл /etc/resolv.conf вручную.

Отображает информацию, которую можно использовать для диагностики инфраструктуры системы доменных имен (DNS). Прежде чем использовать этот инструмент, вы должны ознакомиться с тем, как работает DNS. Инструмент командной строки nslookup доступен только в том случае, если у вас установлен протокол TCP/IP.

Инструмент командной строки nslookup имеет два режима: интерактивный и неинтерактивный.

Если вам нужно найти только один фрагмент данных, мы рекомендуем использовать неинтерактивный режим. В качестве первого параметра введите имя или IP-адрес компьютера, который вы хотите найти. В качестве второго параметра введите имя или IP-адрес сервера имен DNS. Если вы опустите второй аргумент, nslookup использует сервер имен DNS по умолчанию.

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

Прерывайте интерактивные команды в любой момент, нажав CTRL+B.

Выйти, набрав exit.

Рассматривайте встроенную команду как имя компьютера, добавляя перед ней escape-символ ( \ ). Нераспознанная команда интерпретируется как имя компьютера.

Синтаксис

Параметры

< td>nslookup set retry
Параметр Описание
nslookup exit Выход из Инструмент командной строки nslookup.
nslookup finger Подключается к серверу finger на текущем компьютере.
nslookup help Отображает краткий обзор подкоманд.
nslookup ls Выводит информацию для домена DNS.< /td>
nslookup lserver Изменяет сервер по умолчанию на указанный домен DNS.
корень nslookup Изменяет сервер по умолчанию на сервер для корня пространства доменных имен DNS.
сервер nslookup Изменяет сервер по умолчанию на указанный домен DNS.
nslookup set Изменяет параметры конфигурации, влияющие на работу поиска.
nslookup set all Выводит текущие значения параметров конфигурации.
класс набора nslookup Изменяет запрос й класс. Класс определяет группу протокола информации.
nslookup set d2 Включает или выключает режим исчерпывающей отладки. Печатаются все поля каждого пакета.
nslookup set debug Включает или выключает режим отладки.
nslookup set domain Изменяет имя домена DNS по умолчанию на указанное имя.
nslookup set domain Изменяет порт сервера DNS-имен TCP/UDP по умолчанию на указанное значение.
nslookup set querytype Изменяет тип записи ресурса для запроса.
nslookup set recurse Указывает DNS-серверу запрашивать другие серверы, если у него нет информации.
Устанавливает количество попыток.
nslookup set root Изменяет имя используемого корневого сервера для запросов.
nslookup set search Добавляет имена доменов DNS в список поиска доменов DNS к запросу, пока не будет получен ответ. Это применимо, когда набор и запрос поиска содержат по крайней мере одну точку, но не заканчиваются завершающей точкой.
nslookup set srchlist Изменяет доменное имя DNS по умолчанию и список поиска.
nslookup set timeout Изменяет начальное количество секунд ожидания ответа на запрос.
тип набора nslookup Изменяет ресурс тип записи для запроса.
nslookup set vc Указывает, использовать или не использовать виртуальный канал при отправке запросов на сервер.
представление nslookup Сортирует и перечисляет выходные данные предыдущей подкоманды или команд ls.

Примечания

Если computerTofind является IP-адресом, а запрос относится к типу записи ресурса A или PTR, возвращается имя компьютера.

Если computerTofind является именем и не имеет точки в конце, к имени добавляется доменное имя DNS по умолчанию. Это поведение зависит от состояния следующих подкоманд set: domain, srchlist, defname и search.

Если вы введете дефис (-) вместо computerTofind, командная строка перейдет в интерактивный режим nslookup.

Если запрос на поиск завершается неудачно, инструмент командной строки выводит сообщение об ошибке, в том числе:

Система доменных имен поможет вам достичь желаемого в Интернете. Убедитесь, что вы знаете, что это такое и как его установить, настроить и протестировать.

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

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

Как работает DNS

Когда клиент запрашивает информацию у сервера имен, он обычно подключается к порту 53, после чего сервер имен разрешает запрошенное имя.

Дополнительные ресурсы по Linux

Откуда DNS получает IP-адреса?

Вы можете задаться вопросом, как DNS получает IP-адрес соответствующего имени хоста или доменного имени. Как DNS выполняет поиск среди разных IP-адресов и правильно связывает ваше доменное имя? Кто хранит эти сопоставления между доменными именами и IP-адресами?

Рабочий процесс DNS показывает, как происходит взаимодействие внутри DNS и как он разрешает адреса.

Прямой и обратный поиск

Зона прямого просмотра использует имя домена для поиска IP-адресов, тогда как зона обратного просмотра использует IP-адреса для поиска имени домена.

Установить и настроить DNS

BIND – это служба сервера имен, отвечающая за преобразование доменного имени в IP-адрес на DNS-серверах под управлением Linux.

Пакет BIND предоставляет указанную службу. Он считывает конфигурацию из файлов /etc/named и /etc/named.conf. После установки этого пакета вы можете приступить к настройке DNS.

Настройте файл /etc/named.conf

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

Вот значения из приведенного выше файла:

  • 192.168.25.132 — адрес DNS-сервера
  • любой — соответствует каждому IP-адресу

Определите прямую и обратную зоны

Определите прямую и обратную зоны в файле /etc/named.conf или /etc/named.rfc1912.zones (зоны можно определить в любом из этих файлов). В этом примере я добавляю сведения об определении зоны в файл /etc/named.rfc1912.zones.

Создать файлы прямой и обратной зоны

Вам также необходимо создать файлы прямой и обратной зон в каталоге /var/named.

Примечание. По умолчанию файл named.conf включает каталог /var/named для проверки файлов зон. Примеры файлов зон named.localhost и named.loopback создаются во время установки пакета BIND.

Добавьте IP-адрес сервера имен в /etc/resolv.conf

Во-первых, вы должны отключить обработку DNS с помощью NetworkManager, поскольку он динамически обновляет файл /etc/resolv.conf с настройками DNS из своих активных профилей подключения. Чтобы отключить это и разрешить редактирование /etc/resolv.conf вручную, вы должны создать файл (например, 90-dns-none.conf) от имени пользователя root в каталоге /etc/NetworkManager/conf.d/, который содержит следующее:

Сохраните файл и перезагрузите (перезапустите) NetworkManager.

После перезагрузки NetworkManager он не будет обновлять файл /etc/resolv.conf .Теперь вы можете вручную добавить IP-адрес сервера имен в файл /etc/resolv.conf.

[ Будьте готовы, если что-то пойдет не так. Прочтите Введение в устранение неполадок DNS. ]

Запустить/перезапустить и включить указанную службу

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

Проверьте разрешение имени DNS

Вы установили пакет BIND, настроили именованные файлы, создали зоны поиска и перезапустили службу, чтобы настройки вступили в силу. Теперь используйте команды nslookup и dig, чтобы проверить, правильно ли работает DNS, и убедитесь, что вы получаете ожидаемые результаты.

  • nslookup – это программа для запроса серверов доменных имен в Интернете.
  • dig — это инструмент для опроса DNS-серверов. Он выполняет поиск DNS и отображает ответы, возвращенные сервером имен.

Запрос с помощью nslookup

Запрос с копанием

[ Сеть выходит из-под контроля? Ознакомьтесь с бесплатной книгой «Сетевая автоматизация для всех» от Red Hat. ]

Подведение итогов

Из этой статьи вы узнали, что такое DNS и как он работает. Кроме того, теперь вы знаете, что такое зоны прямого и обратного просмотра и как они работают. Вы также узнали, как установить пакет BIND, который отвечает за настройку DNS в системе и настройку именованных файлов и зон поиска. Наконец, вы узнали две команды, nslookup и dig , для запроса разрешений DNS.

Команда dig в Linux используется для сбора информации DNS. Это расшифровывается как Domain Information Groper и собирает данные о серверах доменных имен. Команда dig полезна для устранения проблем с DNS, но также используется для отображения информации DNS.

Это руководство поможет вам понять и использовать команду dig в Linux.

  • Система под управлением Linux
  • Учетная запись пользователя с правами sudo или root
  • Доступ к окну терминала/командной строке

Установите dig в Linux (необязательно)

Большинство современных систем Linux включают команду dig.

Убедитесь, что он установлен, проверив версию программного обеспечения. Для этого откройте командную строку и введите следующее:

Система должна ответить числовым кодом. Если система не может найти указанную команду, установите dig, введя следующее:

Дебиан/Убунту:

CentOS/RedHat:

После завершения установки проверьте установку с помощью следующей команды:

Дополнительную информацию о CentOS и RHEL см. в нашей статье Как установить dig в CentOS 7 и 8.

копать синтаксис

Команда dig используется следующим образом:

[server] — имя хоста или IP-адрес, на который направляется запрос
[name] — DNS (сервер доменных имен) сервера для запроса
[type] — тип записи DNS получить. По умолчанию (или если оставить это поле пустым) dig использует тип записи A

Распространенные типы записей DNS:

  • A – запись адреса, которая напрямую сопоставляет имя хоста с IP-адресом.
  • MX — почтовый обмен, который сопоставляет агенты передачи сообщений для домена.
  • SIG – запись подписи, используемая в протоколах шифрования.

Узнайте о других типах, обратившись к нашему полному списку в разделе «Объяснение типов записей DNS».

Команда dig разрешает имя хоста, прежде чем приступить к запросу сервера имен.

Как использовать команду dig с примерами

Давайте рассмотрим основные способы использования команды dig.

Поиск DNS

Команда dig позволяет искать доменное имя. Чтобы выполнить поиск DNS, откройте терминал и введите:

Вы должны увидеть примерно следующее:

Самый важный раздел — это раздел ОТВЕТЫ:

  • В первом столбце указано имя запрашиваемого сервера.
  • Второй столбец — это время жизни, установленный период времени, после которого запись обновляется.
  • В третьем столбце указан класс запроса. В данном случае "IN" означает "Интернет".
  • В четвертом столбце отображается тип запроса. В данном случае "A" означает запись A (адрес).
  • В последнем столбце отображается IP-адрес, связанный с доменным именем.

Другие строки можно перевести следующим образом:

В первой строке отображается версия команды dig.

В разделе HEADER отображается информация, полученная от сервера. Флаги относятся к формату ответа.

Псевдосекция OPT отображает дополнительные данные:

  • EDNS – система расширений для DNS, если она используется.
  • Флаги – пусто, поскольку флаги не указаны.
  • UDP – размер пакета UDP.

В разделе ВОПРОС отображаются отправленные данные запроса:

  • Первый столбец – это запрашиваемое доменное имя.
  • Второй столбец — это тип (IN = Интернет) запроса.
  • Третий столбец указывает запись (A = адрес), если не указано иное

В разделе СТАТИСТИКА показаны метаданные о запросе:

  • Время запроса – количество времени, которое потребовалось для ответа.
  • SERVER — IP-адрес и порт отвечающего DNS-сервера. Вы можете заметить адрес обратной связи в этой строке — это относится к локальной настройке, которая транслирует адреса DNS.
  • WHEN — метка времени запуска команды.
  • MSG SIZE rcvd — размер ответа от DNS-сервера.

Указать DNS-сервер

По умолчанию dig использует локальную конфигурацию, чтобы решить, какой сервер имен запрашивать. Используйте следующую команду, чтобы указать сервер домена Google:

Терминал выводит следующий вывод:

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

ЛЮБОЙ вариант

Чтобы вернуть все результаты запроса, используйте следующее:

Примечание. Любой другой тип записи можно заменить на ЛЮБУЮ опцию. Сюда входят тип MX (обмен почтой), тип A (адрес), тип SIG (подпись) и т. д. Существует множество различных типов записей DNS. Если вы не уверены, оставьте поле типа пустым.

Краткий ответ

Чтобы отобразить только IP-адрес, связанный с доменным именем, введите следующее:

На выходе отображается содержимое, как на изображении ниже:

Подробный вариант ответа

Запустите +noall +answer с командой dig, чтобы получить доступ к подробной информации в разделе ответы:

В приведенном ниже примере показан ожидаемый результат.

Вариант трассировки

Опция +trace перечисляет каждый отдельный сервер, через который проходит запрос, до конечного пункта назначения. Используйте этот параметр команды, чтобы определить IP-адрес, с которого теряется трафик.

Вывод должен быть похож на показанный ниже:

Обратный поиск DNS

Чтобы найти доменное имя по его IP-адресу, введите следующее:

На выходе отображается содержимое, как на изображении ниже:

Параметр -x позволяет указать IP-адрес вместо имени домена. Это можно комбинировать с другими вариантами:

В приведенном ниже примере показан ожидаемый результат.

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

Пакетный режим для чтения имен хостов из файла

Чтобы найти несколько записей, начните с создания файла для хранения доменных имен:

См. пример на изображении ниже:

Добавьте несколько интересных веб-сайтов, как показано на изображении ниже:

Сохраните файл и выйдите. Теперь укажите файл с помощью параметра -f в команде dig:

См. пример вывода команды ниже:

Примечание. Параметр +short позволяет управлять результатами. Вместо этого можно использовать любой другой вариант.

Постоянная настройка параметров по умолчанию

Информацию, отображаемую программой dig, можно изменить в файле ~/.digrc. Откройте файл для редактирования с помощью следующей команды:

Добавьте следующие строки:

См. пример на изображении ниже:

Запишите файл (ctrl – o) и выйдите (ctrl – x).

Запустите команду dig еще раз:

Вы должны видеть только команду ответов, как если бы вы вручную добавили +noall и +answer .

Примечание. Если вам нужна программа dig в Windows, обратитесь к нашей статье Как установить Dig в Windows.

Теперь вы должны быть знакомы с командой dig в Linux. Эта команда может помочь вам найти дополнительную информацию о серверах доменных имен.

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

Служба доменных имен (DNS) — это интернет-служба, которая сопоставляет IP-адреса и полные доменные имена (FQDN) друг с другом. Таким образом, DNS избавляет от необходимости запоминать IP-адреса. Компьютеры, на которых работает DNS, называются серверами имен. Ubuntu поставляется с BIND (Berkley Internet Naming Daemon), наиболее распространенной программой, используемой для поддержки сервера имен в Linux.

В командной строке терминала введите следующую команду для установки DNS:

Очень полезным пакетом для тестирования и устранения проблем с DNS является пакет dnsutils. Очень часто эти инструменты уже установлены, но для проверки и/или установки dnsutils введите следующее:

Существует множество способов настройки BIND9. Некоторые из наиболее распространенных конфигураций — это кэширующий сервер имен, первичный сервер и вторичный сервер.

При настройке в качестве кэширующего сервера имен BIND9 найдет ответ на запрос имени и запомнит ответ при повторном запросе домена.

В качестве основного сервера BIND9 считывает данные для зоны из файла на своем хосте и является авторитетным для этой зоны.

В качестве вторичного сервера BIND9 получает данные зоны от другого сервера имен, уполномоченного для зоны.

Обзор

Файлы конфигурации DNS хранятся в каталоге /etc/bind. Основной файл конфигурации — /etc/bind/named.conf , который в макете, предоставляемом пакетом, включает только эти файлы.

  • /etc/bind/named.conf.options: глобальные параметры DNS
  • /etc/bind/named.conf.local: для ваших зон
  • /etc/bind/named.conf.default-zones: зоны по умолчанию, такие как localhost, его реверс и корневые ссылки

Раньше корневые серверы имен описывались в файле /etc/bind/db.root . Теперь это предоставляется файлом /usr/share/dns/root.hints, поставляемым с пакетом dns-root-data, и упоминается в файле конфигурации named.conf.default-zones выше.

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

Кэширующий сервер имен

Конфигурация по умолчанию действует как сервер кэширования. Просто раскомментируйте и отредактируйте /etc/bind/named.conf.options, чтобы установить IP-адреса DNS-серверов вашего провайдера:

Примечание

Замените 1.2.3.4 и 5.6.7.8 IP-адресами фактических серверов имен.

Чтобы включить новую конфигурацию, перезапустите DNS-сервер. Из командной строки терминала:

Информацию о тестировании кэширующего DNS-сервера см. в разделе dig.

Основной сервер

Файл зоны пересылки

Чтобы добавить зону DNS в BIND9, превратив BIND9 в основной сервер, сначала отредактируйте файл /etc/bind/named.conf.local:

Вы должны увеличивать серийный номер каждый раз, когда вносите изменения в файл зоны. Если вы вносите несколько изменений перед перезапуском BIND9, просто увеличьте серийный номер один раз.

Теперь вы можете добавить записи DNS в конец файла зоны. Дополнительные сведения см. в разделе Общие типы записей.

Примечание

Многие администраторы предпочитают использовать дату последнего редактирования в качестве серийного номера зоны, например 2020012100, что равно ггггммддсс. (где ss — серийный номер)

После внесения изменений в файл зоны необходимо перезапустить BIND9, чтобы изменения вступили в силу:

Файл обратной зоны

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

Отредактируйте /etc/bind/named.conf.local и добавьте следующее:

Примечание

Замените 1.168.192 первыми тремя октетами сети, которую вы используете. Также назовите файл зоны /etc/bind/db.192 соответствующим образом. Он должен соответствовать первому октету вашей сети.

Теперь создайте файл /etc/bind/db.192:

После создания файла обратной зоны перезапустите BIND9:

Дополнительный сервер

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

Во-первых, на основном сервере необходимо разрешить передачу зоны. Добавьте параметр «разрешить передачу» в примеры определений прямой и обратной зон в файле /etc/bind/named.conf.local:

Примечание

Замените 192.168.1.11 на IP-адрес вашего вторичного сервера имен.

Перезапустите BIND9 на основном сервере:

Затем на вторичном сервере установите пакет bind9 так же, как и на первичном. Затем отредактируйте /etc/bind/named.conf.local и добавьте следующие объявления для зон Forward и Reverse:

Примечание

Замените 192.168.1.10 на IP-адрес вашего основного сервера имен.

Перезапустите BIND9 на вторичном сервере:

В /var/log/syslog вы должны увидеть что-то похожее на следующее (некоторые строки были разделены, чтобы соответствовать формату этого документа):

Примечание

Примечание. Зона передается только в том случае, если Серийный номер на основной зоне больше, чем на дополнительной. Если вы хотите, чтобы ваш основной DNS-сервер уведомлял другие вторичные DNS-серверы об изменениях зоны, вы можете добавить также-notify < ipaddress; >; в /etc/bind/named.conf.local, как показано в примере ниже:

Примечание

Каталог по умолчанию для файлов неавторизованных зон — /var/cache/bind/ . Этот каталог также настроен в AppArmor, чтобы позволить демону named писать в него. Дополнительную информацию о AppArmor см. в разделе Безопасность — AppArmor.

В этом разделе рассматривается диагностика проблем с конфигурациями DNS и BIND9.

Тестирование

resolv.conf

Первым шагом в тестировании BIND9 является добавление IP-адреса сервера имен в преобразователь хостов. Первичный сервер имен должен быть настроен так же, как и другой хост для двойной проверки. Подробную информацию о добавлении адресов серверов имен к сетевым клиентам см. в разделе Конфигурация DNS-клиентов. В конце строка вашего сервера имен в /etc/resolv.conf должна указывать на 127.0.0.53, и у вас должен быть параметр поиска для вашего домена. Что-то вроде этого:

Чтобы проверить, какой DNS-сервер использует ваш локальный преобразователь, выполните:

Примечание

Вам также следует добавить IP-адрес вторичного сервера имен в конфигурацию клиента на случай, если основной станет недоступен.

Если вы установили пакет dnsutils, вы можете проверить свои настройки с помощью утилиты поиска DNS: dig:

После установки BIND9 используйте команду dig для интерфейса loopback, чтобы убедиться, что он прослушивает порт 53. Из командной строки терминала:

В выводе команды вы должны увидеть строки, подобные приведенным ниже:

Если вы настроили BIND9 в качестве кэширующего сервера имен, «выкопайте» внешний домен, чтобы проверить время запроса:

Обратите внимание на время запроса в конце вывода команды:

После второго раскопа должно быть улучшение:

Теперь, чтобы продемонстрировать, как приложения используют DNS для разрешения имени хоста, используйте утилиту ping для отправки эхо-запроса ICMP:

именная контрольная зона

Отличный способ проверить файлы зон — использовать утилиту named-checkzone, установленную вместе с пакетом bind9. Эта утилита позволяет убедиться в правильности конфигурации перед перезапуском BIND9 и внесением изменений.

Чтобы проверить наш пример файла зоны пересылки, введите в командной строке следующее:

Если все настроено правильно, вы должны увидеть примерно такой результат:

Аналогично, чтобы проверить файл зоны Reverse, введите следующее:

Вывод должен быть похож на:

Примечание

Серийный номер вашего файла зоны, вероятно, будет другим.

Быстрая регистрация временных запросов

С помощью инструмента rndc вы можете быстро включать и выключать ведение журнала запросов без перезапуска службы или изменения файла конфигурации.

Чтобы включить ведение журнала запросов включить, выполните:

Точно так же, чтобы отключить его, запустите:

Журналы будут отправляться в syslog и по умолчанию отображаться в /var/log/syslog:

Примечание

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

Ведение журнала

BIND9 имеет множество доступных параметров настройки ведения журналов, но два основных – это канал и категория, которые определяют, куда направляются журналы и какая информация регистрируется. соответственно.

Если никакие параметры ведения журнала не настроены, конфигурация по умолчанию:

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

Нам нужно настроить канал, чтобы указать, в какой файл отправлять сообщения, и категорию. В этом примере категория будет регистрировать все запросы. Отредактируйте /etc/bind/named.conf.local и добавьте следующее:

Примечание

Параметр debug может иметь значение от 1 до 3. Если уровень не указан, по умолчанию используется уровень 1.

Поскольку демон named запускается от имени пользователя bind, необходимо создать каталог /var/log/named и изменить владельца:

Теперь перезапустите BIND9, чтобы изменения вступили в силу:

Вы должны увидеть, что файл /var/log/named/query.log заполнен информацией о запросе. Это простой пример параметров ведения журнала BIND9. Подробные сведения о дополнительных параметрах см. в разделе Дополнительная информация.

Распространенные типы записей

В этом разделе рассматриваются некоторые наиболее распространенные типы записей DNS.

Запись: эта запись сопоставляет IP-адрес с именем хоста.

Запись CNAME: используется для создания псевдонима существующей записи A. Вы не можете создать запись CNAME, указывающую на другую запись CNAME.

Запись MX: используется для определения адреса электронной почты. Должен указывать на запись A, а не на CNAME .

Запись NS: используется для определения того, какие серверы обслуживают копии зоны. Он должен указывать на запись A, а не на CNAME. Здесь определяются первичный и вторичный серверы.

Дополнительная информация

DNS and BIND – популярная книга, выпущенная уже в пятом издании. Теперь также есть книга DNS и BIND на IPv6.

Читайте также: