Динамическое обновление DNS-сервера BIND при помощи Kea DHCP
Динамическое обновление DNS-сервера BIND при помощи Kea DHCP.
Содержание
1 Ключи
- Создадим ключ на сервере с BIND9:
1tsig-keygen -a HMAC-SHA512 DHCP_UPDATER > /etc/named/keys/dhcp_updater.key
- Файл
/etc/named/keys/dhcp_updater.key
будет иметь следующий вид: - Поправим права доступа:
1chown -R named:named /etc/named/keys
2 Настройка DNS Bind
- Настройка происходит в файле
/etc/named.conf
. - Ключ находится в файле
/etc/named/keys/dhcp_updater.key
. - Подключим ключ:
1include "/etc/named/keys/dhcp_updater.key";
- Разрешим обновление зон:
1zone "local.zone" IN { 2 type master; 3 file "local.zone.db"; 4 allow-update { key DHCP_UPDATER; }; 5 update-policy { 6 grant DHCP_UPDATER wildcard *.local.zone A DHCID; 7 }; 8}; 9 10zone "0.168.192.in-addr.arpa" IN { 11 type master; 12 file "192.168.0.db"; 13 update-policy { 14 grant DHCP_UPDATER wildcard *.0.168.192.in-addr.arpa PTR DHCID; 15 }; 16};
- Сделаем проверку конфигурационного файла:
1named-checkconf
- Перестартуйте сервер DNS:
1systemctl restart named.service
3 Настройка Kea DHCP
3.1 Ключ
- Файл ключа назовём
/etc/kea/tsig-keys.json
:1touch /etc/kea/tsig-keys.json
- Перенесём ключ на сервер Kea DHCP и перепишем его в формате json:
- Сменим владельца:
1chown kea:root /etc/kea/tsig-keys.json
- Поправим права доступа:
1chmod 640 /etc/kea/tsig-keys.json
3.2 Сервис ddns
- Настройка происходит в файле
/etc/kea/kea-dhcp-ddns.conf
. - Файл будет иметь следующий вид:
1{ 2 "DhcpDdns": 3 { 4 "ip-address": "127.0.0.1", 5 "port": 53001, 6 "control-socket": { 7 "socket-type": "unix", 8 "socket-name": "/tmp/kea-ddns-ctrl-socket" 9 }, 10 <?include "/etc/kea/tsig-keys.json"?> 11 12 "forward-ddns" : { 13 "ddns-domains" : [ 14 { 15 "name": "local.zone.", 16 "key-name": "DHCP_UPDATER", 17 "dns-servers": [ 18 { "ip-address": "192.168.0.1" } 19 ] 20 } 21 ] 22 }, 23 24 "reverse-ddns" : { 25 "ddns-domains" : [ 26 { 27 "name": "0.168.192.in-addr.arpa.", 28 "key-name": "DHCP_UPDATER", 29 "dns-servers": [ 30 { "ip-address": "192.168.0.1" } 31 ] 32 } 33 ] 34 }, 35 36 "loggers": [ 37 { 38 "name": "kea-dhcp-ddns", 39 "output_options": [ 40 { 41 "output": "stdout", 42 "pattern": "%-5p %m\n" 43 } 44 ], 45 "severity": "INFO", 46 47 "debuglevel": 0 48 } 49 ] 50 } 51}
- Обратите особое внимание на точку в конце имени зоны, иначе DDNS завершится сбоем и сообщит, что не удалось найти соответствующее полное доменное имя.
- Можно определить несколько DNS-серверов.
- Раздел журналирования оставлен из шаблона.
- Изменим владельца файла:
1chown kea:root /etc/kea/kea-dhcp-ddns.conf
- Проверим файл на наличие возможных синтаксических ошибок:
1kea-dhcp-ddns -t /etc/kea/kea-dhcp-ddns.conf
- Запустим службу ddns:
1systemctl enable --now kea-dhcp-ddns.service
- Проверим статус работы службы:
1systemctl status kea-dhcp-ddns.service
3.3 Сервис dhcp4
- Настройка происходит в файле
/etc/kea/kea-dhcp4.conf
. - Включим динамическое обновление:
- Включаем обновления DDNS.
- Затем мы сообщаем DHCP-серверу, каким будет DNS-суффикс по умолчанию.
- Если клиент предоставляет только своё имя хоста, это вызывает проблемы для DDNS, поскольку он не будет знать, что такое полное доменное имя, и поэтому не будет знать, какую зону обновлять.
- Другими словами, команда
ddns-qualifying-suffix
используется для указания того, какое доменное имя должно быть добавлено к имени хоста. - Можно определить это для каждой подсети.
- Для параметра
ddns-override-client-update
устанавливается значениеtrue
, поскольку мы не хотим, чтобы клиент решал, какие записи обновлять. - Проверим файл на наличие возможных синтаксических ошибок:
1kea-dhcp4 -t /etc/kea/kea-dhcp4.conf
- Перезапустим службу, чтобы изменения вступили в силу:
1systemctl restart kea-dhcp4.service
- Проверим статус:
1systemctl status kea-dhcp4.service