Динамическое обновление dns сервером dhcp linux

Введение

В больших сетях очевидна необходимость использования сервера DHCP для автоматического назначения IP-адресов компьютерам, при этом возникает необходимость поддержания соответствия имён компьютеров и назначенных им адресов. При этом:

  • устанавливаемая на клиентских машинах служба SSSD умеет сообщать контроллеру домена о своём IP-адресе;
  • входящий в дистрибутив Astra Linux сервер DHCP isc-dhcp-server имеет возможность автоматически сообщать доменному серверу DNS (DNS-сервер BIND9) о назначаемых клиентам адресах.

Таким образом обновление адресов можно выполнять либо по инициативе клиентских машин, либо централизованно с помощью DHCP-сервера.

Настройка обновления с клиентских машин (SSSD)

Для включения обновления в файл конфигурации службы SSSD /etc/sssd/sssd.conf в секцию с параметрами домена FreeIPA следует добавить опции:

[domain/. ] . # Включить обновление прямых записей (A/AAAA записей) dyndns_update = true # Включить обновление обратных записей (PTR записей) dyndns_update_ptr = true # Интервал обновления в секундах. По умолчанию - 0, и обновление выполняется только один раз при запуске службы SSSD. # Если интервал менее 60 секунд, то обновление выполняется раз в 60 секунд. # Если адрес после предыдущего обновления не изменялся - обновление не выполняется. dyndns_refresh_interval = 60

Авторизация по ключам Kerberos для такого обновления настраивается автоматически при установке сервера и клиентов FreeIPA.

При установке клиента можно использовать ключ —enable-dns-updates, автоматически задающий нужные настройки:

однако при этом будет добавлена только опция dyndns_update = true (однократное обновление A/AAAA записей при запуске системы при условии обнаружения изменений). Обновление PTR записей выполняться не будет.

Настройка централизованного обновления через сервер DHCP

Создание ключей

Создать ключ для сервера DHCP. Ключ будет автоматически сохранен в файле /etc/bind/rndc.key:

Настройка сервера DNS FreeIPA

Запустить WEB-интерфейс управления сервера FreeIPA и в свойствах необходимой ПРЯМОЙ зоны в разделе «Политика обновления BIND» добавить запись:

grant rndc-key wildcard * ANY;

В свойствах соответствующей ОБРАТНОЙ зоны в том же разделе «Политика обновления BIND» добавить запись:

grant rndc-key wildcard * PTR;

Сохранить изменения и перезапустить службы FreeIPA:

Настройка сервера DHCP

Установить DHCP-сервер в соответствии с инструкциями.

В файле настроек /etc/default/isc-dhcp-server указать интерфейс, через который должна работать служба:

Отредактировать файл конфигурации /etc/dhcp/dhcpd.conf (в примере подразумевается домен samdom.example.com и сеть 10.0.2.0/24 с адресом сервера FreeIPA/DNS 10.0.2.102):

ddns-updates on;
ddns-update-style standard;
include «/etc/bind/rndc.key»;
ddns-domainname «»;
update-static-leases on;

option domain-name «samdom.example.com«;
option domain-search «samdom.example.com«;

Читайте также:  Kali linux через rufus

option domain-name-servers 10.0.2.102;
option dhcp-server-identifier 10.0.2.102;
#Следующая строка нужна только если используется Samba с WINS
#option netbios-name-servers 10.0.2.102;

default-lease-time 129600;
max-lease-time 1296000;
authoritative;

server-name «ipa.samdom.example.com«;
server-identifier 10.0.2.102;

#Эта подсеть должна соответствовать подсети вашей локальной сети, обращенной к устройству Ethernet.
Subnet 10.0.2.0 netmask 255.255.255.0 option broadcast-address 10.0.2.255;
option subnet-mask 255.255.255.0;
option routers 10.0.2.1;
pool range 10.0.2.10 10.0.2.100;
allow known-clients;
allow unknown-clients;
max-lease-time 86400;
default-lease-time 43200;
>
zone samdom.example.com. primary 127.0.0.1;
key «rndc-key»;
>
zone 2.0.10.in-addr.arpa. primary 127.0.0.1;
key «rndc-key»;
>
>

В отладочных целях можно задать заведомо маленький диапазон адресов:

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

На клиентах обновить и проверить адрес можно командами:

После внесения изменений в конфигурационные файлы необходимо перезапускать сервис DHCP:

Если после неудачного запуска причина неудачного запуска устранена, а сервер всё равно не может стартовать, сообщая, что он уже запущен, следует удалить вручную файл /var/run/dhcpd.pid.

Установка клиентов с включением автоматического обновления

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

  • client — имя клиентского компьютера;
  • somedom.example.com — имя домена;
  • client.somedom.example.com — полное доменное имя компьютера.

Эти команды должны быть выполнены до ввода компьютера в домен.

Проверка успешности настройки

Проверить работу динамического обновления можно запустив отдельный компьютер, настроенный на получение сетевого адреса по DHCP.
После включения такого компьютера и получения им адреса этот компьютер станет доступен по имени.
Например, для компьютера с именем client можно попробовать для проверки следующие команды:

Источник

Записки IT специалиста

Настраиваем динамическое обновление DNS-сервера BIND 9 при помощи ISC DHCP

Ранее мы рассматривали как создать отказоустойчивые конфигурации DNS и DHCP на базе открытых решений от ISC. Сегодня мы дополним цикл завершающей статьей, в которой расскажем, как настроить автоматическое обновление зон DNS-сервера на основе выданных DНСP-сервером адресов. Это полезно для больших сетей, где пользователи активно взаимодействуют друг с другом, так как для обращения к узлу будет достаточно знать его сетевое имя. Всю остальную необходимую информацию нам предоставит DNS-сервер, а DHCP-сервера будут следить за ее актуальностью.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Читайте также:  Ubuntu или linux программирование

В рамках данной статьи мы будем подразумевать, что у вас уже есть настроенные и нормально функционирующие BIND 9 и ISC DHCP и будем в дальнейшем опираться на конфигурации, описанные в статьях:

Перед тем, как продолжать настройку рекомендуем внимательно с ними ознакомиться на предмет расположения файлов и настроек. Все инструкции актуальны для текущих выпусков операционных систем Debian и Ubuntu.

Общая схема сети

Чтобы вам было легче ориентироваться в адресах и настройках мы привели ниже общую схему сети. В ней мы будем использовать диапазон адресов 192.168.72.0/24 и домен interface31.lab. В данной сети у нас развернуты отказоустойчивые конфигурации DNS и DHCP, и мы добавили на схему все важные узлы.

dynamic-dns-bind-and-isc-dhcp-001.png

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

Настройка первичного DNS-сервера BIND 9

Прежде всего убедимся, что файлы зоны находятся в /var/lib/bind, это важно, так как AppArmor блокирует для службы named возможность записи в другие расположения. Если это не так, то просто скопируйте файлы зон в /var/lib/bind.

Затем откроем файл /etc/bind/named.conf.local и в самом начале добавим строку:

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

Теперь приведем описания зон к следующему виду. Для прямой:

zone "interface31.lab" type master; 
file "/var/lib/bind/db.interface31.lab";
allow-transfer < 192.168.72.9; >;
allow-update < key rndc-key; >;
>;
zone "72.168.192.in-addr.arpa" type master; 
file "/var/lib/bind/db.192.168.72";
allow-transfer < 192.168.72.9; >;
allow-update < key rndc-key; >;
>;

Обращаем внимание на опцию allow-update, которая разрешает обновлять зоны предъявителю RNDC-ключа и опцию file, которая обязательно должна указывать на расположение файлов зон в /var/lib/bind.

Проверяем отсутствие ошибок в конфигурации:

И перезапускаем службу DNS-сервера:

Более никаких настроек DNS-сервера не требуется.

Настройка DHCP-серверов ISC DHCP

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

Прежде всего скопируем с первичного DNS-сервера файл RNDC-ключа /etc/bind/rndc.key и поместим его в /etc/dhcp, затем установим на него следующие права:

chown root:root /etc/dhcp/rndc.key
chmod 640 /etc/dhcp/rndc.key

После этого откроем /etc/dhcp/dhcpd.conf и найдем в нем опцию ddns-update-style, которую заменим следующим блоком:

ddns-updates on;
ddns-update-style interim;
ignore client-updates;
update-static-leases on;

Данные опции включают динамическое обновление DNS и предписывают делать это в том числе и для статических записей. Это общие настройки сервера, сохраняем изменения и входим.

Читайте также:  Linux calculate directory size

Теперь будем настраивать непосредственно область, настройки которой в нашем случае хранятся в файле /etc/dhcp/dhcpd.d/subnet.conf. Прежде всего добавим в самое его начало строки:

include "/etc/dhcp/rndc.key";

zone interface31.lab. primary 192.168.72.8;
key rndc-key;
>

zone 72.168.192.in-addr.arpa. primary 192.168.72.8;
key rndc-key;
>

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

Ниже, в секцию subnet добавляем следующие опции:

option domain-name "interface31.lab"; 
option domain-search "interface31.lab";

Проверяем конфигурацию на ошибки:

dhcpd -t -cf /etc/dhcp/dhcpd.conf

И перезапускаем DHCP-сервер:

systemctl restart isc-dhcp-server

Затем выполняем аналогичные настройки на втором сервере.

На этом настройка закончена. Проверить работу мы можем после получения клиентом адреса выполнив DNS-запрос по его имени хоста:

Либо с явным указанием DNS-сервера, которому направляем запрос:

 nslookup WIN10LAB 192.168.72.9

dynamic-dns-bind-and-isc-dhcp-002.png

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

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Подпишись на наш Telegram-канал

Или подпишись на наш Телеграм-канал:

Источник

Динамическое обновление dns сервером dhcp linux

controls {
inet 0.0.0.0 port 953 allow { 127.0.0.1; ваш_сервер;} keys { rndc-key; dnsupdater; };
};

Добавить заметку
Версия для печати
Последние заметки
18.04 Перевод шифрованного раздела на LUKS2 и более надёжную функцию формирования ключа
31.03 Пример правил nftables с реализацией port knoсking для открытия доступа к SSH
27.02 Обновление сертификатов oVirt
20.11 Решение проблемы со шрифтами в Steam после выставления времени после 2038 года
18.11 Раскладка клавиатуры для ввода символов APL
10.09 Настройка СУБД Postgresql для аутентификации пользователей через Active Directory
09.09 Настройка СУБД PostgreSQL 13 под управлением Pacemaker/Corosync в Debian 11
08.09 Создание виртуальных машин с помощью Qemu KVM
25.07 Создание программ под SynapseOS
24.07 Случайная задержка в shell-скрипте, выполняемом из crontab (без башизмов)
RSS | Следующие 15 записей >>

PostgresPro

Inferno Solutions

Источник

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