Почитав недавние топики про DynDNS решил написать краткую инструкцию по связке DHCP с DNS.
В любой локалке рано или поздно появляется необходимость прописывать прямую и обратную зону. Можно конечно указать в обратной зоне запись вида:
Но это не выход, более красиво будет выглядеть запись вида %username%.isp.net.
В принципе с любого биллинга можно генерировать конфиги для dhcp, этот шаг упустим, перейдем к сути.
 
Первое что нам необходимо — это сгенерировать ключ для обновления
Посмотрим что он нам нагенерил:
Далее приводим dhcpd.conf до подобного вида:
Переходим к редактирования DNS-сервера.
Редактируем bind, добавляем в конфиг:
p.s. т.к. у меня два вьюва настроено на внутреннюю сетку и на внешнюю, Вам необходимо будет чуть подрихтовать конфиг под себя.
Попробуем динамическое обновление через nsupdate
Должны появиться файлики .jnl.
Подводные камни с которыми можно столкнуться:
— Обращать внимание на точки в описании зон
— При chroot-е обращать внимание на наличие нужных файлов в chroot-ed структуре
— Обращать внимание на владельца файлов зон
— используйте named-checkzone
В любой локалке рано или поздно появляется необходимость прописывать прямую и обратную зону. Можно конечно указать в обратной зоне запись вида:
$GENERATE 0-255 $ PTR pptp-$.isp.net. Но это не выход, более красиво будет выглядеть запись вида %username%.isp.net.
В принципе с любого биллинга можно генерировать конфиги для dhcp, этот шаг упустим, перейдем к сути.
Первое что нам необходимо — это сгенерировать ключ для обновления
vpn:/opt/nodeny# dnssec-keygen -a HMAC-MD5 -b 128 -n USER DHCP_UPDATER
Kdhcp_updater.+157+05518
vpn:/opt/nodeny#Посмотрим что он нам нагенерил:
vpn:/opt/nodeny# cat Kdhcp_updater.+157+05518.key 
DHCP_UPDATER. IN KEY 0 3 157 X/Vl6yCJ9xz3UE+FDV7gNQ==Далее приводим dhcpd.conf до подобного вида:
ddns-updates on;
update-static-leases on;
ddns-domainname "status.ks.ua";
ddns-update-style interim;
ignore client-updates;
update-static-leases true;
default-lease-time 3600;
max-lease-time 3600;
key DHCP_UPDATER {
 algorithm HMAC-MD5;
 secret X/Vl6yCJ9xz3UE+FDV7gNQ==;
}
local-address 10.1.1.1;
zone internal.status.ks.ua. { primary 10.1.1.1; key DHCP_UPDATER; }
zone 1.1.10.in-addr.arpa. { primary 10.1.1.1; key DHCP_UPDATER; }
zone 2.1.10.in-addr.arpa. { primary 10.1.1.1; key DHCP_UPDATER; }
Переходим к редактирования DNS-сервера.
Редактируем bind, добавляем в конфиг:
 key DHCP_UPDATER {
 algorithm HMAC-MD5.SIG-ALG.REG.INT;
 secret "X/Vl6yCJ9xz3UE+FDV7gNQ==";
 };
zone "internal.status.ks.ua" {
 type master;
 file "int/internal.status.ks.ua" ;
 allow-update { key DHCP_UPDATER; };
 };
 zone "1.1.10.in-addr.arpa" { 
 type master;
 file "int/10.1.1.rev" ;
 allow-update { key DHCP_UPDATER; };
 };
 zone "2.1.10.in-addr.arpa" { 
 type master;
 file "int/10.1.2.rev" ;
 allow-update { key DHCP_UPDATER; };
 };
p.s. т.к. у меня два вьюва настроено на внутреннюю сетку и на внешнюю, Вам необходимо будет чуть подрихтовать конфиг под себя.
Попробуем динамическое обновление через nsupdate
; nsupdate -d [this file]
key DHCP_UPDATER X/Vl6yCJ9xz3UE+FDV7gNQ==
zone internal.status.ks.ua
update add virtual 86400 A 10.1.2.105
send
zone 2.1.10.in-addr.arpa
update add 105 86400 PTR zigmund.internal.status.ks.ua.
send
Должны появиться файлики .jnl.
Подводные камни с которыми можно столкнуться:
— Обращать внимание на точки в описании зон
— При chroot-е обращать внимание на наличие нужных файлов в chroot-ed структуре
— Обращать внимание на владельца файлов зон
— используйте named-checkzone