Synchronizace DNS s DHCP
Pokud netrváte na striktním pojmenování počítačů a máte obavu, že byste neudrželi záznamy v definici interní domény a příslušných reverzních záznamů v požadovaném stavu, můžete se spolehnout na jejich automatickou aktualizaci. Celé to funguje tak, že DHCP server přečte z žádosti stanice o přidělení IP adresy její jméno (ve Windows je to jméno počítače nastavené ve vlastnostech sítě), vybere volnou IP adresu a založí příslušný záznam zmíněného jména do DNS.
Konfigurace DHCP démona
Nejprve je potřeba DHCP serveru sdělit, že jeho úkolem bude kromě přidělování IP adres provádět také dynamické aktualizace DNS záznamů. Proto do jeho konfiguračního souboru /etc/dhcpd.conf
přidáme:
ddns-update-style interim; # typ chování DHCP serveru ddns-updates on; # zapnutí dynamických aktualizací allow client-updates; # na žádost klienta provedeme aktualizaci DNS záznamu use-host-decl-names on; # a použijeme k tomu jméno, které nám pošle
Pokud chceme do DNS zapisovat i statické DHCP záznamy (tj. záznamy, ve kterých je pevně definována vazba MAC adresa s IP adresou), přidáme ještě:
update-static-leases on;
Zkontrolujeme ještě, jestli se v konfiguračním souboru /etc/dhcpd.conf
neobjevuje volba ignore client-updates;, protože ta žádosti klientů o dynamické aktualizace DNS vypíná.
Přestože se budeme pohybovat v lokální síti, kde nemusí hrozit bezpečnostní rizika, zabezpečíme tuto automatickou aktualizaci pomocí klíčů. Dále musíme dovolit DNS serveru zápis do souborů nesoucích definici domény a reverzních záznamů:
$ dnssec-keygen -a HMAC-MD5 -b 128 -n USER DHCP_UPDATER $ chown named /var/dns/test.cz /var/dns/10.0.0.0-255
Klíč naleznete v souboru, který vznikne v aktuálním adresáři (vzniknou 2, ale obsahují stejný klíč). Klíč zapíšeme do konfiguračního souboru DHCP serveru (/etc/dhcpd.conf
):
key DHCP_UPDATER { algorithm HMAC-MD5; secret "pp64cBcj+qhy5WmKjz4/WQ=="; } zone test.cz. { primary 127.0.0.1; key DHCP_UPDATER; } zone 0.0.10.in-addr.arpa. { primary 127.0.0.1; key DHCP_UPDATER; }
Konfigurace DNS démona
Stejný klíč prozradíme DNS serveru (/etc/named.conf
), aby přijímal žádosti o změnu zóny (tj. opravíme sekce deklarující doménu test.cz a reverzní doménu):
key "DHCP_UPDATER" { algorithm "HMAC-MD5"; secret "pp64cBcj+qhy5WmKjz4/WQ=="; }; zone "test.cz" IN { type master; file "test.cz"; allow-update { key "DHCP_UPDATER"; }; }; zone "0.0.10.in-addr.arpa" { type master; file "10.0.0.0-255"; allow-update { key DHCP_UPDATER; }; };
Otestování
Správnou funkci můžeme ověřit jednak výpisem zóny po přidělení IP adresy stanici pomocí DHCP (příkazem dig test.cz AXFR
) nebo pomocí řádkového nástroje nsupdate
, kde se pokusíme nějaký záznam do DNS zavést (parametr přepínače -k
je soubor, kde je uložen klíč vygenerovaný příkazem dnssec-keygen
):
$ nsupdate -d -k Kdhcp_updater.+157+63843.private update add test.test.cz 16200 IN A 10.0.0.222 {Enter} update delete test.test.cz {Enter} quit
Příkaz nsupdate
poskytuje interaktivní rozhraní, takže druhý řádek obsahuje text, který musíte do promptu vložit. Složené závorky naznačují, že máte stisknout po odeslání na prázdném řádku podruhé klávesu Enter, abyste dali najevo, že vstup již skončil a má se provést požadovaná akce.
Aby DNS server mohl na žádost DHCP serveru provést změny v zóně a zároveň si vést žurnál o změnách, musí adresář se zónovými soubory i zónové soubory samotné patřit uživateli named. Proto umisťujeme soubory do adresáře /var/named/data
(resp. /var/named/chroot/var/named/data
).