Synchronizace DNS s DHCP

Z Milan Kerslager
Verze z 6. 4. 2009, 20:11, kterou vytvořil Milan.Kerslager (diskuse | příspěvky) (Fix)
(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.

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).