DDNS
DHCP DNS по шагам
Конечно, man dhcpd.conf всё покажет.. Но так быстрее ;-))
Сгенерировать ключ
[root@server ddns]# dnssec-keygen -a HMAC-MD5 -b 128 -n USER DHCP_UPDATER Kdhcp_updater.+157+46827 [root@server ddns]#
Посмотрим что он нам нагенерил:
[root@server ddns]# cat Kdhcp_updater. 157 46827.key DHCP_UPDATER. IN KEY 0 2 157 EgxIOyQglf4KAUF7lgu9yA== [root@server ddns]#
Прописать в dhcpd.conf
ddns-update-style interim; authoritative; option netbios-scope ""; key DHCP_UPDATER { algorithm HMAC-MD5.SIG-ALG.REG.INT; secret EgxIOyQglf4KAUF7lgu9yA==; }; zone local.zone. { primary 127.0.0.1; key DHCP_UPDATER; } zone 0.168.192.in-addr.arpa. { primary 127.0.0.1; key DHCP_UPDATER; }
Задать время аренды побольше:
default-lease-time 604800; max-lease-time 1814400;
/etc/named.conf
key DHCP_UPDATER { algorithm HMAC-MD5.SIG-ALG.REG.INT; secret EgxIOyQglf4KAUF7lgu9yA==; }; zone "local.zone" IN { type master; file "local.zone.db"; allow-update { key DHCP_UPDATER; }; }; zone "0.168.192.in-addr.arpa" IN { type master; file "192.168.0.db"; allow-update { key DHCP_UPDATER; }; };
Сделаем «рыбу» для прямой и реверсной зоны:
$ORIGIN . $TTL 86400 ; 1 day local.zone IN SOA ns.local.zone. postmaster.domain.org. ( 200216887 ; serial 28800 ; refresh (8 hours) 7200 ; retry (2 hours) 604800 ; expire (1 week) 86400 ; minimum (1 day) ) NS ns. $ORIGIN local.zone. ns A 192.168.0.202 $ORIGIN . $TTL 86400 ; 1 day 0.168.192.in-addr.arpa IN SOA ns.local.zone. postmaster.domain.org. ( 2001105141 ; serial 28800 ; refresh (8 hours) 14400 ; retry (4 hours) 3600000 ; expire (5 weeks 6 days 16 hours) 86400 ; minimum (1 day) ) NS ns.
И попробуем динамическое обновление через nsupdate
; nsupdate -d [this file] key DHCP_UPDATER EgxIOyQglf4KAUF7lgu9yA== zone local.zone update add virtual 86400 A 192.168.0.105 send zone 0.168.192.in-addr.arpa update add 254 86400 PTR server.local.zone. send
Должны появиться файлики .jnl.
Подводные камни
- При chroot-е обращать внимание на наличие нужных файлов в chroot-ed структуре
- Обращать внимание на владельца файлов зон
- Обращать внимание на точки в описании зон
- named-checkzone — её не зря придумали! ;-)
Ещё один вариант
>>Триплеты в живут одном месте - в конфиге dhcp-сервера. >>Прямые/обратные зоны обновляает опять же dhcp. >> Всё работает в таком виде уже достаточно давно. %) > Ну опиши, а то у меня в последний раз от ddns осталось очень > неприятное послевкусие. Возможно, вызванное dhcpd, пропатченным > ходить в openldap, что приводило к феерическим эффектам... А чего тут описывать? %) Ниже выжимка из работающего конфига: --- dhcpd.conf --- ddns-update-style interim; deny client-updates; update-static-leases true; authoritative; shared-network VLAN0002 { deny bootp; deny duplicates; subnet 192.168.2.0 netmask 255.255.255.0 { option domain-name "lan"; option domain-name-servers 192.168.254.254, 192.168.253.254; option routers 192.168.2.254; option broadcast-address 192.168.2.255; default-lease-time 36000; max-lease-time 72000; # dynamic updates ddns-updates on; ddns-domainname "dpt.lan"; ddns-rev-domainname "in-addr.arpa"; deny client-updates; key ns1.lan { algorithm hmac-md5; secret "<GENERATED-SECRET-KEY>"; }; zone dpt.lan. { primary 192.168.254.254; key ns1.lan; } zone 2.168.192.in-addr.arpa. { primary 192.168.254.254; key ns1.lan; } host dpt-002-001 { fixed-address 192.168.2.1; hardware ethernet 00:60:B0:70:2D:8A; ddns-hostname "dpt-host1"; } pool { range 192.168.2.100 192.168.2.200; allow unknown clients; allow known clients; } } } --- dhcpd.conf --- В конфиге bind9 описаны зоны: zone "dpt.lan" { type master; file "dpt.lan"; allow-query { LAN; }; allow-transfer { SLAVES_INT; }; allow-update { key ns1.lan; }; }; zone "2.168.192.in-addr.arpa" { type master; file "192.168/002"; allow-query { LAN; }; allow-transfer { SLAVES_INT; }; allow-update { key ns1.lan; }; }; ну и присутствует тот же key ns1.lan. И всё. Для хостов, прописанных в dhcpd.conf, в зоны dpt.lan и 2.168.192.in-addr.arpa dhcpd посылает bind'у апдэйты, содержащие ddns-hostname. Для win-хостов, получивших адреса из пула, в зоны заносятся имена, которые сообщает клиент.
Обновление dns записей для статично прописанных хостов
Для включения обновления dns записей для статично прописанных хостов dhcpd.conf нужно добавить:
update-static-leases on;
Для любителей веревки и мыла :) samba_pdc + ddns + dhcp - с хранением всех данных в LDAP http://www.lissyara.su/?id=1487