b'\n_START_ARTICLE_\nDynamic Host Configuration Protocol\n_START_PARAGRAPH_\nIn telecomunicazioni e informatica il Dynamic Host Configuration Protocol (DHCP) (protocollo di configurazione IP dinamica) \xc3\xa8 un Protocollo Applicativo (Ausiliario) che permette ai dispositivi o terminali di una certa rete locale di ricevere automaticamente ad ogni richiesta di accesso, da una rete IP (quale una LAN), la configurazione IP necessaria per stabilire una connessione e operare su una rete pi\xc3\xb9 ampia basata su Internet Protocol, cio\xc3\xa8 interoperare con tutte le altre sotto-reti scambiandosi dati, purch\xc3\xa9 anch\'esse integrate allo stesso modo con il protocollo IP. Il protocollo \xc3\xa8 implementato come servizio di rete ovvero come tipologia di server: ad es. nei sistemi Unix e Unix-like \xc3\xa8 implementato nel demone dhcpd, in quelli basati su Active Directory di Microsoft e/o Windows Server dal servizio server dhcp.\n_START_SECTION_\nGeneralit\xc3\xa0\n_START_PARAGRAPH_\nIn una rete basata sul protocollo IP, ogni calcolatore ha bisogno di un indirizzo IP, scelto in modo tale che appartenga all\'insieme di indirizzi possibili assegnati all\'intera sottorete (cio\xc3\xa8 al Net_ID) a cui \xc3\xa8 collegato e che sia univoco, cio\xc3\xa8 non ci siano altri calcolatori che stiano gi\xc3\xa0 utilizzando quell\'indirizzo._NEWLINE_Il compito di assegnare manualmente gli indirizzi IP ai calcolatori comporta infatti un rilevante onere per gli amministratori di rete, soprattutto in reti di grandi dimensioni o in caso di numerosi computer che si connettono a rotazione solo a ore o giorni determinati. Inoltre gli indirizzi IPv4 disponibili (attualmente usati nella quasi totalit\xc3\xa0 delle reti al mondo) con l\'aumentare dei computer connessi a Internet hanno cominciato a scarseggiare, diminuendo la disponibilit\xc3\xa0 di IP fissi per eventuali configurazioni statiche._NEWLINE_DHCP supporta questo compito automaticamente e in maniera dinamica, cio\xc3\xa8 solo quando richiesto dall\'host. Viene utilizzato soprattutto in reti locali, in particolare su Ethernet. In altri contesti, funzioni simili sono svolte all\'interno di PPP. Una volta ricevuta la configurazione di rete la stazione o computer della rete locale diventa a tutti gli effetti un host (ospite) della rete Internet e pu\xc3\xb2 intraprendere sessioni di navigazione Web e tutti gli altri servizi offerti dalla rete stessa. Infatti, un servizio DHCP \xc3\xa8 svolto anche da un semplice router di casa._NEWLINE_A seconda dell\'implementazione, il server DHCP pu\xc3\xb2 avere tre metodi di allocazione degli indirizzi IP:\n_START_SECTION_\nAllocazione dinamica\n_START_PARAGRAPH_\nUn amministratore di rete riserva un intervallo di indirizzi IP per DHCP e ogni client DHCP sulla LAN \xc3\xa8 configurato per richiedere un indirizzo IP dal server DHCP durante l\'inizializzazione della rete. Il processo request-and-grant utilizza il concetto di lease con un periodo di tempo controllabile, consentendo al server DHCP di recuperare e quindi riallocare gli indirizzi IP non rinnovati.\n_START_SECTION_\nAllocazione automatica\n_START_PARAGRAPH_\nIl server DHCP assegna automaticamente un indirizzo IP a un client richiedente nell\'intervallo definito dall\'amministratore. Questo \xc3\xa8 come nell\'allocazione dinamica, ma il server DHCP mantiene una tabella delle assegnazioni degli indirizzi IP passati, in modo che possa assegnare preferenzialmente a un client lo stesso indirizzo IP precedente.\n_START_SECTION_\nAllocazione manuale (comunemente chiamata allocazione statica)\n_START_PARAGRAPH_\nIl server DHCP emette un indirizzo IP privato dipendente dal MAC address di ciascun client, basato su una mappatura predefinita da parte dell\'amministratore. Questa funzione \xc3\xa8 denominata in vari modi come assegnazione DHCP statica tramite DD-WRT, indirizzo fisso dalla documentazione dhcpd, prenotazione indirizzo da Netgear, prenotazione DHCP o DHCP statico da parte di Cisco e Linksys e prenotazione indirizzo IP o binding indirizzo MAC/IP da vari altri router produttori. Se non viene rilevata alcuna corrispondenza per MAC address del client, il server pu\xc3\xb2 facoltativamente non ricorrere all\'assegnazione dinamica o automatica._NEWLINE_DHCP viene utilizzato per Internet Protocol versione 4 (IPv4), nonch\xc3\xa9 per l\'IPv6. Sebbene entrambe le versioni abbiano lo stesso scopo, i dettagli del protocollo per IPv4 e IPv6 differiscono sufficientemente da poter essere considerati protocolli separati. Per l\'operazione IPv6, i dispositivi possono utilizzare in alternativa l\'autoconfigurazione dell\'indirizzo stateless. Gli host IPv6 possono anche utilizzare l\'indirizzamento locale del collegamento per ottenere operazioni limitate al collegamento di rete locale.\n_START_SECTION_\nComponenti del protocollo\n_START_PARAGRAPH_\nIl Client DHCP \xc3\xa8 un calcolatore che ha bisogno di ottenere un indirizzo IP valido per la sottorete a cui \xc3\xa8 collegato, \xc3\xa8 anche il programma che si occupa di richiedere l\'indirizzo IP e configurarlo._NEWLINE_Il Server DHCP \xc3\xa8 il calcolatore che assegna gli indirizzi IP, \xc3\xa8 anche il processo che svolge questa funzione. Talvolta questa funzione \xc3\xa8 incorporata in un router._NEWLINE_Il DHCP relay \xc3\xa8 il calcolatore (o pi\xc3\xb9 spesso una funzione implementata in un router) che si occupa di inoltrare le richieste DHCP ad un server, qualora questo non sia sulla stessa sottorete. Questo componente \xc3\xa8 necessario solo se un server DHCP deve servire molteplici sottoreti. Deve esistere almeno un DHCP relay per ciascuna sottorete servita. Ogni relay deve essere esplicitamente configurato per inoltrare le richieste a uno o pi\xc3\xb9 server.\n_START_SECTION_\nScadenza e rinnovo degli indirizzi\n_START_PARAGRAPH_\nA questo punto, il client \xc3\xa8 autorizzato a usare l\'indirizzo ricevuto per un tempo limitato, detto tempo di lease. Prima della scadenza, dovr\xc3\xa0 tentare di rinnovarlo inviando un nuovo pacchetto DHCPREQUEST al server, che gli risponder\xc3\xa0 con un DHCPACK se vuole prolungare l\'assegnazione dell\'indirizzo. Questi sono normali pacchetti IP unicast scambiati tra due calcolatori che hanno indirizzi validi. Se il client non riesce a rinnovare l\'indirizzo, torner\xc3\xa0 allo stato iniziale cercando di farsene attribuire un altro.\n_START_SECTION_\nIdentificazione e autenticazione dei client\n_START_PARAGRAPH_\nIl client si identifica verso il server attraverso un campo client-id dei pacchetti DHCP. Questo campo ha normalmente come valore l\'indirizzo MAC della scheda di rete per cui si richiede l\'indirizzo, ma pu\xc3\xb2 anche essere configurato manualmente. Questa \xc3\xa8 l\'unica forma di autenticazione disponibile per DHCP, ed \xc3\xa8 piuttosto debole, in quanto utilizza un dato che viene inviato in broadcast sulla rete locale, e quindi pu\xc3\xb2 essere facilmente trovato da qualunque altro calcolatore connesso alla stessa rete. Per controllare l\'accesso a una rete esistono metodi pi\xc3\xb9 solidi che, per\xc3\xb2, richiedono un supporto da parte degli switch a cui sono collegati gli utenti, come IEEE 802.1x._NEWLINE_Un server dovrebbe cercare di assegnare allo stesso client sempre lo stesso indirizzo IP su ciascuna sottorete, ma non ci sono garanzie che questo sia possibile, a meno che un indirizzo non sia associato esclusivamente a un client._NEWLINE_Il server pu\xc3\xb2 utilizzare il campo client-id per decidere quale indirizzo assegnare al client, o quali altri parametri passargli, o anche di non rispondere per nulla alla richiesta del client._NEWLINE_La sicurezza, in termini di accesso ad una rete, non \xc3\xa8 assicurata da indirizzi IP statici ma dall\'implementazione di policy di autenticazione sia lato dominio che, eventualmente, firewall: l\'utilizzo di indirizzi dinamici non ha alcun riflesso sulla sicurezza essendo un servizio base che facilita enormemente l\'aggiunta di risorse client non dovendo ricorrere ogni volta a configurazione specialistica fosse pure solo l\'inserimento dei parametri di connessione fisica alla rete. Come detto la connessione logica deve essere gestita attraverso le autorizzazioni di autenticazione._NEWLINE_A parte i client nel senso di utenti vi sono invece servizi e risorse che tipicamente devono essere indirizzati staticamente: stampanti, router, server, sistemi di registrazione o sorveglianza, ecc.\n_START_SECTION_\nIdentificazione del server\n_START_PARAGRAPH_\nIl server si identifica verso il client con il proprio indirizzo IP. Un client potrebbe quindi decidere di accettare indirizzi solo da un server gi\xc3\xa0 noto._NEWLINE_Qualunque calcolatore collegato a una sottorete potrebbe fare da server DHCP per i calcolatori di quella sottorete, o da relay verso un server DHCP arbitrario. \xc3\x88 quindi possibile che un calcolatore configurato male o deliberatamente per fini illeciti offra abusivamente indirizzi IP, creando malfunzionamenti alla rete e/o gravi problemi di sicurezza._NEWLINE_Un calcolatore che abbia ricevuto l\'indirizzo IP da un server DHCP mal configurato non sar\xc3\xa0 in grado di utilizzare la rete._NEWLINE_Se invece il server DHCP abusivo \xc3\xa8 configurato per scopi illeciti, le conseguenze possono essere anche peggiori: esso, infatti, pu\xc3\xb2 offrire indirizzi che sa essere inutilizzati, oppure su una sottorete IP diversa da quella ufficiale, evitando cos\xc3\xac di generare conflitti con il server ufficiale, e indicare s\xc3\xa9 stesso come default gateway. Dovr\xc3\xa0 poi ridirigere le connessioni effettuate dai client verso il gateway ufficiale utilizzando IP masquerading. A questo punto, potr\xc3\xa0 intercettare e sniffare tutto il traffico generato dai client, che potrebbero non accorgersi facilmente della differenza._NEWLINE_Per prevenire questi rischi, alcuni switch offrono una funzionalit\xc3\xa0 detta "DHCP snooping", per cui analizzano tutti i pacchetti DHCP che li attraversano, fermando quelli che non sono originati da server autorizzati.\n_START_SECTION_\nInoltro DHCP\n_START_PARAGRAPH_\nNelle piccole reti, in cui viene gestita una sola subnet IP, i client DHCP comunicano direttamente con i server DHCP. Tuttavia, i server DHCP possono anche fornire indirizzi IP per pi\xc3\xb9 sottoreti. In questo caso, un client DHCP che non ha ancora acquisito un indirizzo IP non pu\xc3\xb2 comunicare direttamente con il server DHCP utilizzando il routing IP, perch\xc3\xa9 non ha un indirizzo IP con router, non conosce l\'indirizzo IP di un router e non conosce l\'indirizzo IP del server DHCP._NEWLINE_Per consentire ai client DHCP su sottoreti non direttamente servite dai server DHCP di comunicare con i server DHCP, \xc3\xa8 possibile installare agenti di inoltro DHCP su queste sottoreti. Il client DHCP trasmette sul collegamento locale; il relay agent riceve la trasmissione e la trasmette a uno o pi\xc3\xb9 server DHCP utilizzando l\'unicast. Il relay agent memorizza il proprio indirizzo IP nel campo GIADDR del pacchetto DHCP. Il server DHCP utilizza GIADDR per determinare la sottorete su cui il relay agent ha ricevuto la trasmissione e assegna un indirizzo IP su quella sottorete. Quando il server DHCP risponde al client, invia la risposta all\'indirizzo GIADDR, usando ancora l\'unicast. Il relay agent quindi ritrasmette la risposta sulla rete locale._NEWLINE_In questa situazione, la comunicazione tra il relay agent e il server DHCP, utilizza in genere la porta 67 UDP di origine e di destinazione.\n_START_SECTION_\nAffidabilit\xc3\xa0\n_START_PARAGRAPH_\nIl DHCP garantisce l\'affidabilit\xc3\xa0 in diversi modi: rinnovo periodico, rebinding e failover. Ai client DHCP vengono assegnati leasing che durano per un certo periodo di tempo. I client iniziano a provare di rinnovare il leasing una volta che la met\xc3\xa0 dell\'intervallo di lease \xc3\xa8 scaduto. Lo fanno inviando un messaggio DHCPREQUEST in unicast al server DHCP che ha concesso il leasing originale. Se il server \xc3\xa8 inattivo o irraggiungibile, non risponder\xc3\xa0 al DHCPREQUEST. Tuttavia, in questo caso il client ripete il DHCPREQUEST di volta in volta, quindi se il server DHCP viene ripristinato o diventa nuovamente raggiungibile, il client DHCP riuscir\xc3\xa0 a contattarlo e rinnovare il contratto di locazione._NEWLINE_Se il server DHCP \xc3\xa8 irraggiungibile per un lungo periodo di tempo, il client DHCP tenter\xc3\xa0 di riassociare, trasmettendo il suo DHCPREQUEST piuttosto che in unicast. Una volta trasmesso, il messaggio DHCPREQUEST raggiunger\xc3\xa0 tutti i server DHCP disponibili. Se qualche altro server DHCP \xc3\xa8 in grado di rinnovare il leasing, lo far\xc3\xa0 in questo momento._NEWLINE_Affinch\xc3\xa9 il rebinding funzioni, quando il client contatta con successo un server DHCP di backup, quel server deve disporre di informazioni accurate sull\'associazione del client. Mantenere informazioni vincolanti precise tra due server \xc3\xa8 un problema complicato; se entrambi i server sono in grado di aggiornare lo stesso database di lease, deve esistere un meccanismo per evitare conflitti tra gli aggiornamenti sui server indipendenti. Una proposta per l\'implementazione di server DHCP fault-tolerant \xc3\xa8 stata inviata alla Internet Engineering Task Force, ma mai formalizzata._NEWLINE_Se il rebinding fallisce, il lease alla fine scadr\xc3\xa0. Quando il lease scade, il client deve smettere di utilizzare l\'inidirizzo IP a esso concesso nel suo leasing. A quel punto riavvier\xc3\xa0 il processo DHCP dall\'inizio trasmettendo un messaggio DHCPDISCOVER. Dal momento che il leasing \xc3\xa8 scaduto, accetter\xc3\xa0 qualsiasi indirizzo IP offerto. Una volta che ha un nuovo indirizzo (presumibilmente da un server DHCP diverso) sar\xc3\xa0 di nuovo in grado di utilizzare la rete. Tuttavia, poich\xc3\xa9 il suo indirizzo IP \xc3\xa8 cambiato, tutte le connessioni in corso verranno interrotte.'