Synchronizace DNS s DHCP

Z Milan Kerslager
Verze z 28. 9. 2007, 20:36, kterou vytvořil Milan.Kerslager (diskuse | příspěvky) (Založení článku)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Přejít na: navigace, hledání

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.

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;
}

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; };
};

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:

chown named.named /var/named
chown named.named /var/named/test.cz
chown named.named /var/named/10.0.0.0-255
chmod 755 /var/named
chmod 644 /var/named/test.cz
chmod 644 /var/named/10.0.0.0-255