Linux - 2/2 - Installare un Server DHCP su Linux Centos

Vediamo invece l'integrazione fra DHCP e DNS.

Supponiamo di aver installato il tutto in base al seguente tutorial

Prima di tutto creiamo una chiave che è utilizzata per autorizzare il servizio DHCP per parlare con il servizio DNS

dnssec-keygen -a hmac-md5 -b 256 -n USER dyndns

Vengono creati due file che iniziano per Kdyndns.

Il file che finisce con l'estensione .private l'ultima riga dovrebbe contenere la seguente stringa:

Key: QvVkTnvBcXy4ssmKHSwmADZ2LQtYxeusl+VqHzDl5jQ=


A questo punto è necessario abilitare il Servizio DNS di utilizzare la chiave precedente per aggiornare i record DNS. Modificare il file named.conf mettendo nella sezione generale:

key dyndns {
                   algorithm HMAC-MD5;
                   secret "QvVkTnvBcXy4ssmKHSwmADZ2LQtYxeusl+VqHzDl5jQ=";
                   };

Cerchiamo ogni zona che vogliamo venga gestita con dynami update:

allow-update { key dyndns; };

Verificare che il daemon named abbia le giuste permission nelle zone che deve gestire.

Adesso abilitiamo il servizio DHCP a gestire il dynamic update:

update-static-leases on; #da utilizzarsi solo se vogliamo ip statici

key dyndns {
                   algorithm hmac-md5;
                   secret QvVkTnvBcXy4ssmKHSwmADZ2LQtYxeusl+VqHzDl5jQ=;
                   }

zone 244.168.192.in-addr.arpa {
             primary 127.0.0.1;
             key dyndns;
             }
zone example.com {
             primary 127.0.0.1;
             key dyndns;
             }


notare che la chiave è chiamata dyndns e sono definite le zone che verranno gestite con i Dynamic Update.

Se adesso vogliamo gestire il caso di singoli hostsi usano le opzioni ddns-hostname e ddns-domainname.

Ecco il caso di un singolo host:

host server2 {
                    hardware ethernet 00:00:00:23:45:EF;
                    fixed-address 192.168.1.11;
                    option host-name "web1.example.com";
                    option domain-name "example.com";
                    ddns-hostname "web1";
                    ddns-domainname "example.com";
                    }

Ecco invece il caso di un range di IP:

subnet 192.168.1.0 netmask 255.255.255.0 {
                    option subnet-mask 255.255.255.0;
                    option broadcast-address 192.168.1.255;
                    option routers 192.168.1.1;
                    default-lease-time 600;
                    max-lease-time 604800;
                    option domain-name "example.com";
                    option domain-name-servers 192.168.1.1, 192.168.1.2;
                    option time-offset 7200;
                    option ntp-servers 192.168.1.1;
                    range 192.168.1.100 192.168.1.200;
                    ddns-hostname concat("dhcp", binary-to-ascii(10, 8, "-", leased-address));
                    ddns-domainname "example.com";
                    }

E' stata usata la funzionalità di creazione dei nomi host in base a delle regole ben precise. Usando la funzionalità dhcpd-eval