Привязать настройку DNS-сервера
Обновлено: 21.11.2024
Если вы планируете настроить контроллер домена (DC) Samba Active Directory (AD) с использованием серверной части BIND9_DLZ, вам необходимо сначала установить и настроить DNS-сервер BIND.
Ниже описано, как настроить базовую установку BIND, которую можно использовать в качестве серверной части Samba AD DC.
Samba AD несовместим с другими DNS-серверами, даже если они поддерживают обновления tkey-gss, поскольку части Samba (например, RPC-сервер управления DNS и присоединение к домену) предполагает, что реплицированные записи DNS в базе данных AD такие же, как и записи, предоставляемые через DNS. Точно так же безопасность системы зависит от ACL для каждой записи DNS в AD. |
Если вы переходите с внутреннего DNS-сервера на DNS-сервер Bind9, вам также необходимо прочитать Change_the_DNS_Back_End_of_a_Samba_AD_DC. |
Список поддерживаемых версий BIND см. в разделе Настройка модуля BIND9_DLZ.
Вы не можете запустить BIND в измененной корневой среде (chroot), так как BIND9_DLZ должен иметь доступ к Файлы базы данных Samba Active Directory (AD) напрямую. |
Установка пакета
Рекомендуется устанавливать BIND с помощью пакетов, поставляемых с дистрибутивом. Выберите этот режим установки, чтобы упростить установку и автоматически получать доступные обновления. Подробнее об установке пакетов см. в документации по диспетчеру пакетов дистрибутива.
Убедитесь, что ваш поставщик пакетов скомпилировал BIND, используя следующие параметры:
- --with-gssapi=yes или --with-gssapi=/usr (или аналогичный) для безопасных динамических обновлений DNS с помощью Kerberos
- --with-dlopen динамически загружаемые зоны (DLZ)
Чтобы перечислить параметры сборки:
Компиляция и установка BIND
Используйте этот режим установки, если вы опытный пользователь и знаете, как компилировать программное обеспечение.
Скачивание исходников
Компиляция BIND
- Передайте по крайней мере следующие параметры в команду configure:
- Для сборки и установки запустите:
Добавление пользователя и группы для BIND
В целях безопасности не запускайте BIND от имени пользователя root.
Чтобы создать именованную группу с помощью GID 25:
Чтобы создать именованную учетную запись с UID 25 , основной группой named , домашним каталогом /var/named/ и без действительной оболочки:
Подробнее см. справочные страницы useradd (8) и groupadd (8).
Настройка файла named.conf
Чтобы найти каталог, BIND использует для чтения файл named.conf:
В предыдущем примере BIND считывает конфигурацию из файла /etc/named.conf.
Ниже приведен базовый файл конфигурации:
Подробнее об используемых параметрах и опциях см. справочную страницу named.conf (5).
Предыдущий пример не содержит конфигурации BIND9_DLZ, необходимой для настройки DNS-сервера Samba AD. Подробнее о настройке модуля см. в разделе BIND9_DLZ DNS Back End.
Вы не должны добавлять записи прямой или обратной зоны домена AD в файлы named.conf, эти зоны сохраняются динамически в AD. |
Загрузка списка корневых серверов DNS
Создание файла зоны localhost
- Создайте зону пересылки localhost в файле /var/named/master/localhost.zone:
- Разрешите пользователю BIND читать файл зоны:
Создание файла зоны 0.0.127.in-addr.arpa
- Создайте обратную зону 0.0.127.in-addr.arpa в файле /var/named/master/0.0.127.zone:
Установка необходимых пакетов
Вам необходимо установить следующие пакеты:
Прежде чем продолжить, вам необходимо подготовить контроллер домена в новом домене или присоединиться в качестве контроллера домена к существующему домену. или обновите существующий внутренний DNS-сервер до BIND9_DLZ. Различные необходимые файлы будут созданы только при выполнении одного из предыдущих действий. |
Настройка файлов named.conf
В дистрибутивах на основе Debian у вас есть 5 файлов Bind9:
Из них нужно настроить только два или три.
Если вы используете только ipv4, отредактируйте: /etc/default/bind9 и Изменить:
Второй файл /etc/bind/named.conf не нуждается в изменении, так как он просто содержит ссылки на другие файлы named.conf:
Третий файл /etc/bind/named.conf.options — это тот, который вам нужно настроить для Active Directory и установить ACL по умолчанию для Bind9.
Четвертый файл /etc/bind/named.conf.local требует добавления одной строки для ссылки на другой файл, предоставленный Samba:
Последний файл /etc/bind/named.conf.default-zones не требует никаких изменений.
Чтобы запустить демон BIND от имени указанного пользователя, запустите
В качестве альтернативы для запуска демона можно использовать инструменты операционной системы, такие как systemctl или service . Подробности смотрите в документации к вашему дистрибутиву.
Включите автоматический запуск демона при загрузке системы. Подробнее см. в документации к дистрибутиву. |
Вы должны убедитесь, что вы никогда не перезагружаете Bind9, вы должны проверить файлы инициализации и изменить перезагрузку на перезагрузку, вы также должны проверить /etc/logrotate.d/named и т. д. |
Следующие примеры запрашивают службу DNS на локальном компьютере ( 127.0.0.1 ):
Система доменных имен поможет вам достичь желаемого в Интернете. Убедитесь, что вы знаете, что это такое и как его установить, настроить и протестировать.
Система доменных имен (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.
DNS (сокращение от Domain Name System) – это служба, которая преобразует IP-адрес в доменное имя и наоборот. В среде с ограниченным количеством машин Linux мы можем делать записи в файле /etc/hosts для связывания IP-адреса с именем, но когда у вас большая инфраструктура с большим количеством систем/ ресурсов, /etc/hosts работать не будет. Для таких сценариев мы реализуем BIND (DNS) в нашей среде.
BIND или Berkeley Internet Name Domain — наиболее широко используемое программное обеспечение с открытым исходным кодом, которое реализует протоколы DNS для Интернета, что дает нам возможность реализовать преобразование IP-адреса в доменное имя и наоборот.
В этом руководстве мы научимся внедрять сервер BIND (DNS) в нашей локальной среде. Но прежде чем мы это сделаем, есть некоторые записи DNS, о которых нам нужно знать. Хотя существует ряд записей DNS, мы обсудим только некоторые важные из них, которые будут использоваться в этом руководстве.
Записи DNS
Запись используется для сопоставления имени хоста с IP-адресом
Запись NS (сервер имен) идентифицирует полномочный DNS-сервер для зоны
Запись MX (почтовый обменник) указывает почтовый сервер, отвечающий за прием почты в зоне
Запись CN (каноническое имя) указывает псевдоним одного имени для другого имени,
Запись PTR (указатель) — это обратная запись DNS, т. е. от IP-адреса к имени хоста
Запись SOA (Start of Authority) содержит информацию об этих зонах DNS и других записях DNS.
Теперь давайте начнем с установки и настройки DNS/BIND
Сценарий
В нашем сценарии нам нужен DNS-сервер и клиентский компьютер для тестирования
IP-адрес 192.168.1.100 IP-адрес 192.168.1.101
Установка
Во-первых, мы установим пакет BIND с помощью следующей команды
$ yum install bind bind-utils
После того, как эти пакеты будут установлены, мы перейдем к части настройки.
Примечание. Прежде чем мы перейдем к настройке, убедитесь, что вы можете пропинговать свой сервер по имени хоста. Если нет, откройте файл /etc/hosts и сделайте следующую запись
Конфигурация
Основной файл конфигурации BIND — /etc/named.conf, и именно здесь мы будем выполнять большую часть настроек. Теперь откройте файл конфигурации и прокомментируйте следующие строки,
Это позволит нашему DNS-серверу прослушивать все IP-адреса, затем мы добавим нашу сеть в файл, чтобы клиенты из нашей сети могли запрашивать DNS
Далее, если вы также используете подчиненный сервер, упомяните об этом также (необязательно) (настройка master-slave будет обсуждаться в следующем руководстве)
разрешить передачу < 192.168.1.110; >; (ведомый IP-адрес)
Теперь мы будем создавать файлы нашей зоны.
Создание записей зон
зона "ltechlab.com" IN типа master;
файл "fwd.ltechlab.com.db";
разрешить обновление < нет; >;
>;
«мастер» — это основной DNS,
‘allow-update’ не будет, это основной DNS.
Теперь мы также создадим запись для обратной зоны в «named.conf»
зона "1.168.192.in-addr.arpa" Тип IN master;
файл "1.168.192.db";
разрешить обновление < нет; >;
>;
1.168.192.in-addr.arpa — это имя обратного просмотра,
мастер для первичного DNS,
1.168.192.db — это файл обратного просмотра,
allow-update — будет установлено значение none, так как это основной DNS.
Наша конфигурация для «named.conf» завершена, теперь мы создадим файлы зон для нашего сервера BIND.
Создание файлов зоны
Аналогичным образом мы создадим файл обратной зоны с именем «1.168.192.db» в папке «/var/named» со следующим содержимым
После создания этих файлов зоны мы перезапустим наш сервер BIND
служба с именем перезапуска или
системная перезагрузка с именем.служба
Теперь мы проверим наши файлы зон.
Проверка зон
сервер имен 192.168.1.100
Или измените запись DNS в /etc/sysconfig/network-scripts/ifcfg-e.
DNS1=192.168.1.100
и перезапустите сетевые службы
сервисный перезапуск сети или
системный перезапуск сети
Мы успешно получили ответ на наш запрос. Теперь давайте проверим, нормально ли работает наша реверсивная зона
ПРИМЕЧАНИЕ. Если вы получаете сообщение об ошибке при выполнении команды «DIG» на клиентской машине, установите на машине пакет «bind-utils».
Вот и все, мы успешно создали наш DNS-сервер с помощью BIND и вскоре опубликуем руководство по настройке Master-Slave. Если у вас есть какие-либо вопросы/комментарии, укажите их в поле для комментариев ниже.
Если вы считаете, что мы помогли вам или просто хотите поддержать нас, обратите внимание на следующее: -
Система доменных имен, или DNS, как ее чаще называют, переводит или преобразовывает доменные имена в IP-адреса, связанные с этим доменом. DNS — это причина, по которой вы можете найти свой любимый веб-сайт по имени, а не вводить IP-адрес в браузере. В этом руководстве показано, как настроить главную систему DNS и один клиент.
Вот сведения о системе для примера, используемого в этой статье:
Конфигурация DNS-сервера
Установите пакеты привязки с помощью sudo:
Файл конфигурации /etc/named.conf входит в состав пакета bind и позволяет настроить DNS-сервер.
Отредактируйте файл /etc/named.conf:
Найдите следующую строку:
Добавьте IP-адрес вашего главного DNS-сервера следующим образом:
Найдите следующую строку:
Добавьте диапазон локальной сети. В примере системы используются IP-адреса в диапазоне 192.168.1.X. Это указывается следующим образом:
Укажите прямую и обратную зоны. Файлы зон — это просто текстовые файлы, которые содержат информацию DNS, такую как IP-адреса и имена хостов, в вашей системе. Файл прямой зоны позволяет преобразовывать имя хоста в его IP-адрес. Файл обратной зоны делает обратное. Он позволяет удаленной системе преобразовывать IP-адрес в имя хоста.
Найдите следующую строку в нижней части файла /etc/named.conf:
Здесь вы укажете информацию о файле зоны непосредственно над этой строкой следующим образом:
forward.fedora.local и файл reverse.fedora.local — это просто имена файлов зоны, которые вы будете создавать. Их можно назвать как угодно.
Создайте файлы зоны
Создайте файлы прямой и обратной зоны, которые вы указали в файле /etc/named.conf:
Добавьте следующие строки:
Все, что выделено жирным шрифтом, относится к вашей среде. Сохраните файл и выйдите. Затем отредактируйте файл reverse.fedora.local:
Добавьте следующие строки:
Все, что выделено жирным шрифтом, также относится к вашей среде. Сохраните файл и выйдите.
Вам также потребуется настроить SELinux и правильно указать владельца файлов конфигурации.
Настройте брандмауэр:
Проверьте конфигурацию на наличие синтаксических ошибок
Ваша конфигурация действительна, если не возвращаются никакие выходные данные или ошибки.
Проверьте файлы прямой и обратной зон.
Вы должны увидеть ответ OK:
Включить и запустить службу DNS
Настройка файла resolv.conf
Отредактируйте файл /etc/resolv.conf:
Найдите текущую строку или строки сервера имен. В примере системы кабельный модем/маршрутизатор служит сервером имен, поэтому в настоящее время это выглядит так:
Это необходимо изменить на IP-адрес главного DNS-сервера:
Сохраните изменения и выйдите.
К сожалению, есть одно предостережение, о котором следует помнить. NetworkManager перезаписывает файл /etc/resolv.conf при перезагрузке системы или перезапуске сети. Это означает, что вы потеряете все внесенные вами изменения.
Чтобы этого не произошло, сделайте /etc/resolv.conf неизменяемым:
Если вы хотите вернуть его обратно и разрешить повторную перезапись:
Тестирование DNS-сервера
Есть несколько вещей, на которые следует обратить внимание, чтобы убедиться, что DNS-сервер работает правильно. Очевидно, что возврат результатов важен, но это само по себе не означает, что DNS-сервер на самом деле выполняет всю работу.
Поля QUERY, ANSWER и AUTHORITY вверху должны быть ненулевыми, как в нашем примере:
И в поле SERVER должен быть указан IP-адрес вашего DNS-сервера:
Если вы впервые запускаете команду dig, обратите внимание, что выполнение запроса заняло 830 миллисекунд:
Если вы запустите его снова, запрос будет выполняться намного быстрее:
Конфигурация клиента
Конфигурация клиента будет намного проще.
Установите утилиты привязки:
Отредактируйте файл /etc/resolv.conf и настройте главный DNS как единственный сервер имен:
Вот как это должно выглядеть:
Сохраните изменения и выйдите. Затем сделайте файл /etc/resolv.conf неизменяемым, чтобы предотвратить его перезапись и возврат к настройкам по умолчанию:
Тестирование клиента
Вы должны получить те же результаты, что и на DNS-сервере:
Убедитесь, что в выходных данных SERVER указан IP-адрес вашего DNS-сервера.
Теперь ваш DNS-сервер готов к использованию, и теперь все запросы от клиента должны проходить через ваш DNS-сервер!
Вот так:
Курт Уорфилд
6 комментариев
AquaL1te
Хорошо! Но я предпочитаю НСД 🙂
Я думаю, что домен верхнего уровня .local не является хорошим примером, поскольку он в основном используется для сред Zeroconf (например, DNS-SD / MDNS), как указано в RFC 6762. Это может привести к странному поведению в сетях, где используются оба механизма разрешения имен.
Тем не менее, это хорошая статья, описывающая элементарную настройку локального DNS-сервера с доменом для внутренней сети.
Для домашней сети dnsmasq проще использовать для предоставления локальных DNS-серверов, поскольку единственный файл, который необходимо отредактировать для предоставления сопоставлений имени хоста/ipaddr, — это файл /etc/hosts на машине, которая будет использоваться в качестве DNS-сервера, который dnsmasq считывается при запуске и сразу может быть DNS-преобразователем для клиентов для любого хоста в этом файле, а resolv.conf для примера, используемого в посте, будет просто
nameserver 192.168.1.160
nameserver 192.168.1.1
для разрешения локальных хостов из локального DNS и всего, что не входит в локальный DNS, как обычно.
Для домашней сети dnsmasq проще, так как нужно редактировать только один файл, а пользователи домашних сетей, еще не использующие локальный DNS, уже знакомы с редактированием /etc/hosts.
Кроме того, вероятно, лучше перенастроить параметры сетевого сервера имен в NetworkManager (или сети), чем вручную редактировать resolv.conf.
Однако хорошая четкая статья.
Может ли быть подготовлена дополнительная статья об изменениях, необходимых для настройки служб DNS для IPV6, поскольку Fedora поставляется с включенным по умолчанию ipv6, а именно с ipv6 возникает большинство головных болей.
Читайте также: