Posso avere più server DHCP su una rete?


86

Questa è una domanda canonica sui server DHCP ridondanti.

È possibile avere più di un server DHCP sulla stessa LAN? Quali sono le implicazioni nel fare questo?

  1. Cosa succede se è disponibile più di un server DHCP? Come fanno i miei clienti a sapere quale utilizzare?
  2. Come posso avere server DHCP che forniscono indirizzi a più di una sottorete \ segmento di rete?
  3. Come posso configurare più server DHCP per fornire indirizzi per la stessa sottorete.

1
L'idea alla base di questa domanda è quella di dare una risposta definitiva a tutte le domande "Come posso avere più di un server DHCP" che fanno impazzire i nostri utenti più regolari. Si spera che diventerà una delle nostre risposte canoniche ( meta.serverfault.com/questions/1986/… )
Rob Moir,

2
RTFM? tools.ietf.org/html/draft-ietf-dhc-failover-12#section-5.3 (e rfc 3074) già definiscono questo comportamento e linux dhcpd lo implementa manpages.ubuntu.com/manpages/precise/en/man5/ ...
Dani_l,

2
@Dani_l forse dovresti seguire il link 'domanda canonica' nella domanda e forse anche rivedere gli autori delle risposte alla mia domanda qui prima di dirmi che devo RTFM.
Rob Moir,

2
Non ti sto dicendo di leggere il manuale. Sottolineo semplicemente che esiste un manuale. La domanda è canonica, ma, ove applicabile, credo che dovrebbe includere riferimenti a procedure "ufficiali", se esistono. In questo caso, esiste un IETF / RFC, ed è ufficiale quanto più possibile.
Dani_l,

Risposte:


97

Sto assumendo una conoscenza di base di ciò che fa DHCP e di come configurare il tuo server DHCP preferito in questa risposta, ma prima di parlare di più server DHCP sulla stessa rete, prima di tutto ricapitoliamo rapidamente come i client ricevono gli indirizzi IP dal DHCP al livello più elementare.

Il DHCP su una rete semplice funziona utilizzando il principio DORA.

  • Rilevamento: il client trasmette un messaggio sul segmento di rete locale a cui è connesso, per scoprire i server DHCP disponibili.

  • Offerta: un server DHCP opportunamente configurato riceve una richiesta da un client e gli offre un indirizzo dal suo pool di indirizzi disponibili.

  • Richiesta: il cliente risponde all'offerta, richiedendo l'indirizzo ricevuto nell'Offerta.

  • Riconoscimento: il server riconosce la richiesta, contrassegnando l'indirizzo come utilizzato nel suo pool di indirizzi e informa il cliente per quanto tempo è valido il contratto di locazione degli indirizzi e qualsiasi altra informazione necessaria.

Qualsiasi dispositivo su un segmento di rete può essere un server DHCP; non deve essere il router o il controller di dominio o qualsiasi altro dispositivo "speciale" sulla rete.

Quando i dispositivi sulla tua rete richiedono per la prima volta un indirizzo IP o raggiungono la fine dei loro contratti di locazione (o li costringi a verificare che il loro contratto di locazione sia ancora valido), trasmetteranno semplicemente una richiesta per un server DHCP e accetteranno un'offerta dal primo Server DHCP per rispondere . Questo è importante da ricordare quando esaminiamo le opzioni per più server DHCP di seguito.

Più server DHCP PT 1: Spanning di più subnet.

Se si dispone di più VLAN o segmenti di rete fisica separati in diverse sottoreti e si desidera fornire un servizio DHCP ai dispositivi in ​​tutte quelle sottoreti, esistono due modi per farlo.

  1. Se lo switch router / layer 3 che li separa può fungere da agente di inoltro BOOTP / DHCP, è possibile continuare a mantenere tutti i server DHCP in una o due parti centrali della rete e configurare i server DHCP per supporta più intervalli di indirizzi. Per supportare ciò, il router o lo switch di livello 3 devono supportare le specifiche dell'agente di inoltro BOOTP descritte nella sezione 4 della RFC 1542 .

  2. Se il router non supporta gli agenti di inoltro BOOTP RFC 1542 o se alcuni dei segmenti di rete sono geograficamente distribuiti su collegamenti lenti, sarà necessario posizionare uno o più server DHCP in ciascuna sottorete. Questo server DHCP "locale" soddisferà solo i requisiti del proprio segmento locale e non vi sarà alcuna interazione tra esso e altri server DHCP. Se questo è ciò che desideri, puoi semplicemente configurare ciascun server DHCP come server autonomo, con i dettagli del pool di indirizzi per la propria sottorete e non preoccuparti di altri server DHCP su altre parti della rete. Questo è l'esempio più basilare di avere più di un server DHCP sulla stessa rete.

Più server DHCP PT 2: server DHCP che servono lo stesso segmento di rete.

Quando la maggior parte delle persone chiede "più server DHCP sulla stessa rete", ciò che di solito chiedono è questo; desiderano che più server DHCP emettano lo stesso intervallo di indirizzi di rete ai client, per suddividere il carico tra più server o per fornire ridondanza se un server è offline.

Questo è perfettamente possibile, anche se richiede un po 'di pensiero e pianificazione.

Da un punto di vista del "traffico di rete", il processo DORA descritto all'inizio di questa risposta spiega come più di un server DHCP può essere presente su un segmento di rete; il client trasmette semplicemente una richiesta di individuazione e il primo server DHCP che risponde a un'offerta è il "vincitore".

Dal punto di vista del server, ogni server avrà un pool di indirizzi che può emettere ai client, noto il suo ambito di indirizzi. I server DHCP che servono la stessa sottorete non dovrebbero avere un singolo ambito "condiviso", ma piuttosto dovrebbero avere un ambito "diviso".

In altre parole, se si dispone di un intervallo di indirizzi DHCP da inviare ai client da 192.168.1.100 a 192.168.1.200, entrambi i server devono essere configurati per servire parti separate di tale intervallo, quindi il primo server potrebbe utilizzare parti di tale ambito da Da 192.168.1.100 a 192.168.1.150 e il secondo server emetterebbe quindi da 192.168.1.151 a 192.168.1.200.

Dividi l'ambito DHCP, mostrando le esclusioni

Le implementazioni più recenti di Microsoft del DHCP hanno una procedura guidata per rendere più semplice la suddivisione dell'ambito in questo modo, descritta in un articolo Technet che potrebbe valere la pena guardare anche se non si utilizza l'implementazione di Microsoft DHCP, in quanto illustra i principi di cui si parla qui abbastanza bene e questa risposta è già abbastanza lunga.

Dividere l'ambito di applicazione - best practice

Una cosa che sentirai menzionata come best practice è la regola 80/20 per la divisione di un ambito DHCP, il che significa che un server servirà l'80% degli indirizzi in tale ambito e l'altro server DHCP, che è effettivamente "riservato" servirà il 20% degli indirizzi.

L'idea alla base della divisione degli indirizzi 80/20 è perché l'80% degli indirizzi disponibili dovrebbe sperare essere adeguato per tutti gli indirizzi necessari su una sottorete e i contratti di leasing DHCP vengono generalmente emessi per diversi giorni; pertanto, se il server DHCP principale si arresta per alcune ore, è improbabile che oltre il 20% delle macchine su quella sottorete debba rinnovare i propri indirizzi durante i tempi di inattività, rendendo sufficiente il pool di indirizzi del 20%.

Questo è ancora un consiglio ragionevole, ma presuppone due cose:

  1. Che puoi risolvere qualsiasi problema con il tuo server DHCP "principale" abbastanza rapidamente da evitare di esaurire il piccolo pool di indirizzi sul tuo server DHCP di riserva.
  2. Che non sei interessato al bilanciamento del carico.

In questi giorni (come puoi vedere dai miei esempi) tendo a preferire 50/50 divisioni, che penso siano una risposta più realistica ai punti di cui sopra.

Un'altra cosa da considerare quando si creano gli ambiti sui server DHCP è configurare l'intero ambito in ciascun server ed escludere l'intervallo fornito dall'altro server DHCP. Ciò ha il vantaggio di "autocertificare" le informazioni DHCP per la sottorete completa su ciascun server DHCP, il che migliorerà la chiarezza per chiunque cerchi di capire cosa sta succedendo, e anche nel caso in cui uno dei server DHCP sia offline per qualche volta, è possibile riconfigurare temporaneamente l'intervallo di esclusione sull'altro server per consentirgli di recuperare il gioco.

Combinando queste idee

Infine, vale la pena ricordare che è possibile combinare i principi discussi sopra: è possibile posizionare tutti i server DHCP in uno o più VLAN "server centrali" e utilizzare gli agenti di inoltro BOOTP su tutti i router per inviare tutte le richieste DHCP da un server molto grande e segmentato rete a un servizio DHCP centralizzato (che è quello che faccio, vedi sotto). Oppure puoi avere server DHCP distribuiti su tutta la tua rete, con un server DHCP "principale" nella sua sottorete locale e un server DHCP "riservato" su un segmento di rete "vicino" che fornisce una piccola quantità di indirizzi come backup - potresti persino avere due server DHCP nei propri segmenti di rete configurati per fornire un intervallo di indirizzi 80/20 l'uno per l'altro. La scelta più sensata dipenderà da come le tue reti fisiche e logiche si mappano l'una con l'altra.

Server DHCP che servono ambiti divisi su più subnet


3
In caso di divisione degli ambiti: tenere presente che le prenotazioni DHCP devono essere impostate su entrambe le metà. Mantenerli sincronizzati può essere una seccatura se devi effettuare aggiornamenti frequenti.
Tonny,

4
È possibile elaborare tecniche per garantire che il server DHCP di riserva non venga colpito finché il server DHCP principale è in esecuzione? Da quanto posso leggere, se esiste un'eguale probabilità di ottenere una risposta da entrambi i server, il server di riserva esaurirebbe statisticamente gli indirizzi, non appena il numero totale di contratti di locazione supera il doppio della dimensione del pool di riserva. Ciò presumibilmente rende inutile il server di riserva per i nuovi client, quando il server DHCP principale è inattivo ... giusto?
Niels B.

3
@NielsB. se stai facendo qualcosa come una divisione 80/20, puoi impostare un ritardo nella risposta del server di riserva ( blogs.technet.com/b/teamdhcp/archive/2009/01/22/… ). Non mi preoccupo di questo dato che uso una divisione 50/50, ma funzionerà.
Rob Moir,

13

Ho adottato questo approccio alcuni anni fa per una rete di dimensioni medio-piccole (500 utenti) con notevoli vantaggi. DHCP ha cessato di essere un singolo punto di errore. Associando in modo permanente indirizzi MAC e IP, abbiamo assicurato che entrambi i server DHCP fornissero la stessa risposta a ciascuna richiesta DHCP. Conoscere l'indirizzo IP di ogni risorsa di rete ha anche semplificato l'amministrazione della rete e il DNS potrebbe funzionare sullo stesso database. Il sistema utilizzava Internet Software Corporation BIND e DNS, e gli script associati possono essere scaricati all'indirizzo https://web.archive.org/web/20121031051901/http://www.pearbright.com/index.php/download/25- dns-dhcp-download .

Un'alternativa sarebbe utilizzare il vero failover DHCPD ISC: https://kb.isc.org/article/AA-00502/0/A-Basic-Guide-to-Configuring-DHCP-Failover.html


2
Il PO ha specificamente chiesto una risposta esplicativa a questa domanda. Potresti voler rivedere la tua risposta per espanderla.
Brent Pabst,

3
A prima vista, sebbene questa risposta sia breve e non mostrerò mai più dettagli in una serie canonica di domande e risposte, ho pensato che fosse abbastanza buona in quanto menziona un metodo leggermente diverso di ridondanza DHCP.
Rob Moir,

1
@DJ Pon3 Sono d'accordo: eseguo una configurazione simile al tuo grande DHCP multi-sito (meno VLAN però) e utilizzo lo stesso approccio di Peter Talbot per 3/4 di quelle VLAN.
Tonny,

1
Il collegamento è interrotto ora :(
Sergey Vlasov
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.