Sommario DHCP... 1 Semplice sessione DHCP:... 2 Configurazione:... 3 DDNS... 8 Creazione manuale chiave per DDNS... 18 DHCP Dynamic Host Configuration Protocol Questo è un servizio di rete che si occupa del rilascio/consegna degli indirizzi IP (rendendo così univoca la macchina in rete) e di tutte le altre configurazioni di rete quali subnet-mask (individua la rete di appartenenza della macchina), Default Gateway (identifica la macchina a cui reindirizzare i pacchetti i cui destinatari non sono all' interno della rete identificata dalla subnet), DNS (risolve i nomi e/o IP all' interno della rete), ed eventualmente di altri parametri come ad esempio gli IP del server WINS, del server NTP, ecc all' interno di una LAN. Per utilizzare questo protocollo sono necessari almeno un server, configurato a dovere, che fornisca il servizio ed almeno un client che lo richieda. Quando un host viene configurato per utilizzare questo protocollo, questo all' avvio oppure all' attivazione dell' interfaccia di rete invia in Broadcast una richiesta DHCP, se vi sono servers che forniscono questo servizio essi risponderanno al client. Quando una rete lavora in DHCP, tutta la rete dovrebbe essere configurata utilizzando il servizio; in quanto il server DHCP non si accorge se una macchina in rete, configurata ad IP statico, utilizza già un IP del range assegnabile, e quindi assegnando ad' un' altra macchina lo stesso IP ( a meno che non si crei una reservation ) genererà un conflitto. Potremmo definire in maniera generica le operazioni di configurazione da effettuare per l attivazione del servizio: Installare il servizio Creare un nuovo Ambito o Scope (primo ed ultimo IP disponibili) e la relativa Subnet ( per gestire più sottoreti occorre usare più Scope ) Configurare per il nuovo Scope eventuali parametri di rete aggiuntivi, Default Gateway, DNS, ecc Definire i tempi di Lease per il nuovo scope, o in maniera generica per tutti gli Scope Definire eventuali Reservations per degli hosts o gruppi di hosts Attivare il servizio e quindi gli Scope Pag. 1 di 19
Il Lease è la durata della prenotazione di un determinato IP da parte del client, prima che ne venga richiesto l' eventuale rinnovo, questo viene fatto prima della scadenza del tempo di Lease. Si inizia la richiesta di rinnovo ( a tempi regolari ) iniziando appena trascorso il 50% del tempo di Lease impostato, trascorso il tempo massimo senza alcuna richiesta di rinnovo l'ip verrà reso, da parte del server, disponibile per un nuovo assegnamento. Solitamente si usano tempi di Lease corti se si collegano spesso in rete nuove macchine, ad esempio dipendenti che restano in azienda da 1 a 5 giorni ( anche se questo aumenterà però il traffico in rete ), tempi lunghi se al contrario ho una rete molto stabile per quel che riguarda la quantità di macchine collegate. Il tempo di lease standard è di 8 gg. Semplice sessione DHCP: Il client setta la sua interfaccia di rete con un indirizzo 0.0.0.0 e manda in broadcast (verso 255.255.255.255) un pacchetto DHCPDISCOVER (il pacchetto non può passare i Router) con il suo MAC e il suo nome, con tempi sempre più lungi 9sec, 13sec, 16sec,... 5min Il/i server/s invia/no in broadcast un pacchetto DHCPOFFER con il MAC del richiedente, e, dopo la verifica sul primo assegnabile dalla sua tabella interna, un IP, una Subnet, il tempo di Lease e l' IP del Server, confermandosi disponibile ad evadere la richiesta Il client,se accetta invia all' IP del Server scelto un pacchetto DHCPREQUEST con l' accettazione dell' IP, e un rifiuto agli altri eventuali server che hanno risposto Il server invia un pacchetto DHCPACK di conferma dell' accettazione da parte del client e aggiorna la sua tabella interna segnando come occupato quell' IP Pag. 2 di 19
Configurazione: In Centos 5.5 i pacchetti relativi al servizio DHCP sono i seguenti, il primo per la parte cleint il secondo per la parte server Partiamo configurando il servizio DHCP. Il file di configurazione è in /etc/dhcpd.conf. In un sistema installato senza aggiornamenti questo file risulta praticamente vuoto. Per averne uno di esempio già potete copiare quello dalla directory di documentazione, utilizzando ad esempio il comando: e poi modificandolo a piacere, oppure possiamo direttamente modificare quello vuoto. Per rispettare la configurazione della rete effettuata con il DNS apportiamo al file di configurazione le seguenti modifiche: Pag. 3 di 19
default lease-time indica il tempo, trascorso il quale, il client deve iniziare ad effettuare la richiesta di rinnovo max-lease-time indica il tempo massimo per cui il server conserverà l associazione, in mancanza di richiesta di rinnovo In questa configurazione diciamo al server: o o Il server DNS è statico e non necessita di aggiornamenti dinamici La subnet della rete è 192.168.1.0/24, ed all interno di questa vengono specificate le seguenti opzioni: Range di IP rilasciabili dal 195 al 200 Il DNS è 192.168.0.187 Il nome del Dominio è tuxdomain.lan Il default GW è 192.168.0.190 Il broadcast è 192.168.0.255 Il tempo di lease è di 180 secondi (bassissimo ma utile per le nostre prove) Il massimo tempo di lease è di 300 secondi (bassissimo ma utile per le nostre prove) La sintassi del file di configurazione può essere testata, prima dell avvio del servizio con il comando dhcpd t, un output come quello seguente è sinonimo di mancanza di errori sintattiche nel file di configurazione: Pag. 4 di 19
Facciamo partire il server: Apriamo un terminale sul server DHCP e diamo il comando tail f per metterci il lettura del flusso delle informazioni che il kernel rilascia, in tal modo potremmo verificare l assegnazione dei parametri di rete da parte del nostro server ad un eventuale client. Diamo il comando (per uscire dal comando usate la sequenza CTRL+C): tail -f /var/log/messages Apriamo un client (ad esempio una macchina virtuale XP, che nel mio caso ha nome pc2 ) e settiamo la configurazione di rete tramite DHCP: Dato l Ok attendiamo il DHCP Discover Pag. 5 di 19
Avremmo potuto usare anche tools come dhcpexplorer per testare la funzionalità del server dhcp Verifichiamo sul client con un ipconfig: Pag. 6 di 19
Verifichiamo il contenuto del file di lease del nostro server: Che difatti contiene i dati passati al client di nome pc2 che è il nome del client XP che ho usato come prova Attenzione a non mettere la macchina VMWare in host only, questo attiverebbe il DHCP di VMWare (che occorrerebbe disabilitare), in questo caso probabilmente la nostra macchina virtuale prenderebbe l indirizzo dal server DHCP di VMWare anziche dal nostro server Linux. Come capire questo? Facciamo un esempio. Attvo il la configurazione tramite DHCP sull host e vedo che prende un indirizzo diverso da quello che avevo specificato nel range di dhcpd (nell esempio successivo il range era 192.168.0.201-192.168.0.205), mentre viene assegnato un indirizzo 192.168.211.129, come mi riporta il client XP: e la stessa cosa mi appare nei log del server: C è la macchina 192.168.211.254 che ha fornito un servizio DHCP. Dall host XP (che ora è sulla stessa rete di questo server DHCP) facciamo prima un ping all IP, ma non preoccupiamoci che risponda oppure no. Pag. 7 di 19
Poi troviamo nella tabella ARP dell host la corrispondenza IP/MAC Andiamo su Internet al seguente indirizzo: http://www.coffer.com/mac_find/ ed inseriamo il MAC appena trovato, il sito dovrebbe riportarci ll produttore a cui è stato assegnato quel MAC.. guarda caso VMWare. DDNS Prepariamoci a fare le modifiche per rendere il nostro DNS dinamico. Alle volte è necessario che il DNS sia dinamico, cioè sia in grado di auto aggiornarsi, ad esempio lavorando assieme ad un servizio DHCP. Il servizio DHCP dovrà essere quindi autorizzato ad effettuare modifiche sui file di zona in base agli IP che rilascia, per far questo è necessario per BIND una aggiuntiva configurazione. Per far si che il server DNS riconosca come autorizzato all aggiornamento il servizio, occorre utilizzare il protocollo dnssec ed una chiave condivisa. Fermiamo i servers DHCP e DNS Apriamo il configuratore del DNS Pag. 8 di 19
La chiave è già stata creata in fase di installazione del servizio, doppio click su di essa per visualizzarla Selezioniamo la zona diretta e premiamo il pulsante Proprietà, dalla finestra aperta selezioniamo dalla finestra di destra Allow-update e premiamo + per aggiungelo alla finestra di sinistra Selezioniamo l opzione appena aggiunta e nella finestra in baso a destra selezioniamo Chiave Named, selezioniamo poi la chiave di nome rndckey, ed infine Aggiungi Pag. 9 di 19
Selezioniamo la chiave, OK Quando diamo Ok, il configuratore potrebbe avvertircidella necessità di spostare i files di zona in una directory che abbia i permessi di scrittura per l utente con cui gira il servizio DNS, rispondiamo Si. Ripetiamo lo stesso procedimento per la zona di ricerca inversa Pag. 10 di 19
Salviamo la configurazione e rispondiamo si alla richiesta di sostituzione/backup dei files Ok, e chiudiamo pure la GUI di configurazione, ed andiamo a vedere come è cambiato il file di configurazione Pag. 11 di 19
Pag. 12 di 19
Andiamo a modificare il file di configurazione del demone dhcpd, per permettere l aggiornamento dinamico delle zone Pag. 13 di 19
Pag. 14 di 19
Verifichiamo di non aver commesso errori nel file di configurazione del DHCP Riavviamo i servizi Apriamo di nuovo sul server, nel caso lo avessimo chiusa, la finestra in flushing dei log del kernel con il comando tail f /var/log/messages Spostiamoci sul client, nel mio caso la macchina XP virtuale e configuriamo la rete, per utilizzare il servizio DHCP. Nel caso lo avessimo fatto già prima, possiamo forzare l aggiornamento della macchina in 3 modi diversi: Riavviare la macchina Riconfigurare la rete con un IP statico e poi riportarla in DHCP Aprire un terminale e usare il comando ipconfig /renew Nel mio caso la macchina era stata riconfigurata con IP statico, quindi provvedo a risettare la configurazione tramite DHCP Pag. 15 di 19
Appena dato il comando osserviamo cosa accade nella finestra dei log sul server Durante l aggiornamento dinamico vengono create due nuovi files di jurnaling questi files hanno estensione jnl e sono inseriti nella directory delle zone Verifichiamo sul client se davvero la configurazione DHCP è passata Apriamo un terminale e proviamo ad interrogare il DNS per vedere se è stato aggiornato. Pag. 16 di 19
In alcuni casi si verificano problemi con i client Windows, gli effetti sono un errore di questo tipo nei log e non viene effettuato l aggiornamento della zona, mentre viene correttamente effettuato quello della zona inversa. Il problema è dovuto al client Windows XP, che cerca di aggiornare direttamente il DNS, mentre noi non lo abbiamo autorizzato. Per ovviare a questo problema è sufficiente togliere il segno di spunta da Registra nel DNS gli indirizzi di questa connessione : Pag. 17 di 19
Creazione manuale chiave per DDNS Abbiamo visto che la chiave per l utilizzo di dnssec è gia presente nel sistema DNS, oppure è facilmente creabile da GUI, ma se avessimo dovuto crearla da terminale? Per farlo sarebbe stato sufficiente utilizzare il comando dnssec-keygen a cifratura b bit_della_chiave n HOST nome_della_chiav ad esempio: Nell esempio sono stati creati due files nel formato: K<nome_chiave>+157+<ID_chiave>.key K<nome_chiave>+157+<ID_chiave>.private Ora dovremmo modificare il named.conf aggiungendo: key nome_della_chiave { algorithm HMAC-MD5; secret chiave_riportata_nel_campo_key_del_file_con_estensione_private ; }; Pag. 18 di 19
E poi, sempre in named.conf, nella parte che definisce la zona modificare l istruzione allowupdate in: {. allow-update {key nome_della_chiave}; } Non resterebbe che configurare il DHCP per utilizzare la chiave, modificando il file di configurazione aggiungendo/modificando alcune righe, come nell esempio sottostante ddns-updates on; ddns-update-style interim; ddns-domainname nome_zona_diretta ; ddns-rev-domainname nome_zona_inversa ; key nome_della_chiave { algorithm HMAC-MD5; secret chiave_riportata_nel_campo_key_del_file_con_estensione_private ; } zone nome_zona_diretta. { primary 127.0.0.1; key nome_della_chiave; } zone nome_zona_inversa. { primary 127.0.0.1; key nome_della_chiave; }.. Questo è solo un esempio di configurazione da cui partire, viene lasciata alla curiosità del lettore l approfondimento. Pag. 19 di 19