Perché ci vogliono pochi secondi per ottenere l'indirizzo IP tramite DHCP?


24

Per curiosità, perché spesso ci vogliono pochi secondi per ottenere la configurazione di rete tramite DHCP quando la CPU è in grado di elaborare milioni di operazioni al secondo e il ping al router richiede un paio di millisecondi?

Nel mio ambiente domestico con un router WiFi e circa 5 dispositivi, non è raro vedere tempi come 5-10 secondi.

Risposte:


22

Oltre all'effettiva acquisizione del contratto di locazione DHCP dal server DHCP (che in genere non richiede molto tempo), alcuni server eseguiranno prima il ping dell'indirizzo IP che sta per distribuire prima che venga effettivamente distribuito per verificare che non sia già in uso sulla rete: il timeout richiede alcuni secondi. Il client a volte farà lo stesso (di nuovo, per evitare conflitti di indirizzi IP), il che aggiungerà altro tempo. Inoltre, alcuni client registreranno anche le loro voci DNS ecc.


3
Il server dhcp al mio lavoro utilizza richieste ARP per rilevare conflitti IP.
Erichui,

9

Il DHCP potrebbe richiedere un po 'più di tempo perché comporta una serie di transazioni, non con un singolo server ma con tutti i dispositivi sulla rete durante la richiesta iniziale, poiché invia un messaggio broadcast.

Se controlli RFC per DHCP,

http://www.faqs.org/rfcs/rfc2131.html

puoi vedere chiaramente la serie di trattative coinvolte. All'inizio il client invia DHCPDISCOVER a tutti i dispositivi sulla LAN, quindi i server che eseguono il servizio dhcp restituiscono il messaggio DHCPOFFER. Il client potrebbe anche attendere di ottenere risposte da tutti i server dhcp disponibili prima di sceglierne uno. Quindi invia una RICHIESTA DHCP con un identificatore che indica quale server ha scelto come provider IP. Finalmente ottiene DHCPACK con tutti i parametri di configurazione. Questo è solo un riepilogo dell '"3.1 Interazione client-server - allocare un indirizzo di rete" dall'RFC.

Dalla mia esperienza dhcp richiede molto tempo principalmente in grandi impostazioni LAN con molti nodi collegati. In una rete domestica con un solo server dhcp (router WIFI ad esempio) e uno o due pezzi, è piuttosto veloce.


Nella mia rete domestica con un router WiFi e circa 5 dispositivi, ci vogliono circa 5-10 secondi che considero piuttosto lenti. Ma grazie per la spiegazione.
Borek Bernard,

assicurati di avere un singolo server dhcp. Se sono solo 5 dispositivi, potresti voler riservare gli IP a ciascun dispositivo nel server DHCP. Ma se sei abbastanza curioso puoi usare tcpdump per esaminare la negoziazione effettiva e vedere qual è la causa del ritardo.
Daniel t.

A seconda del server DHCP, possono essere necessari diversi secondi indipendentemente dall'attività di rete o dalla velocità della CPU. Questo perché il server richiede innanzitutto alla rete di vedere se un indirizzo è in uso prima di offrirlo a un client e deve attendere almeno un po 'prima che arrivino le risposte. Questo timeout fa parte del ritardo che noti e esisterà anche sulla rete più silenziosa.
ʇsәɹoɈ

2

Due motivi (e soluzioni) che ho trovato quando volevo risposte rapide dal mio server DHCP.

1) Il mio DHCP ha eseguito il ping dell'indirizzo che voleva allocare. Ciò ha aggiunto un ritardo di 3 secondi. Ho rimosso questo modificando la configurazione DHCP per avere una mappatura per l'indirizzo MAC su indirizzo IP. Questo sta fondamentalmente usando DHCP per allocare un indirizzo statico. Questo ha rimosso il ritardo di 3 secondi per me.

2) Ho una rete isolata, tuttavia, potresti ottenerla a volte. È stata eseguita una ricerca DNS, che per me ha comportato un ritardo di molti secondi nell'ottenere un indirizzo IP dal DHCP. Nella configurazione del server DHCP c'erano opzioni per il nostro dominio e server DNS. Dopo aver rimosso le opzioni DNS e sopra le modifiche ho ricevuto risposte immediate dal server DHCP. (**)

Questi problemi erano ciò che ho trovato nella mia configurazione. Il tuo chilometraggio può variare.

Saluti

LIBBRE

(**) Se avessi un penny per ogni volta che una ricerca DNS fallita causava un ritardo che causava uno strano effetto knock-on che mi portava a grattarmi la testa, avrei molti penny.


1

Non so quale scenario hai, ma nel mondo reale ottieni l'indirizzo IP ... ecc. Da un vecchio server (il server dhcp è sempre quello con l'hardware più vecchio :)) con molte richieste, dietro un firewall , uno o più router / switch ... Latenza, alimentazione cpu ... e in un mondo Windows, l'implementazione di dhcp non è efficiente come vorremmo !.


1
"in un mondo Windows, l'implementazione di dhcp non è efficiente come vorremmo !." Hai documentazione o fonti per eseguire il backup di ciò che hai detto qui?
mfinni,

No, ma per esempio .... Linux offre opzioni DHCP di failover in un modo molto semplice. Oltre alla funzionalità integrata di Active Directory in Windows, ci sono altri punti da considerare come potenziali problemi di sicurezza.
C_Sense

2
Io penso che stai rigurgitando l'iperbole raccolto da anni di lettura di troppi post su Internet. "Microsoft non va bene." "Perché?" "Perché lo dicono tutti."
joeqwerty,

È possibile eseguire ambiti DHCP sovrapposti sui server DHCP di Windows. Con win2k8 R2, a quanto pare, c'è anche una nuova opzione di failover. Forse Linux è meglio di così. Niente di tutto ciò ha a che fare con "l'efficienza". E a quali "problemi di sicurezza" nel DHCP di Windows ti riferisci? Ti ho chiesto delle fonti e invece hai lanciato altre richieste.
mfinni,

0

Se si verificano problemi di prestazioni con dhcp;

  1. Controlla la latenza della rete
  2. Guarda la negoziazione del pacchetto dhcp. Dovresti essere in grado di vedere quale azione richiede molto tempo. (il problema potrebbe non essere con il server DHCP, chi è in attesa su chi?)
  3. Esaminare il carico e i registri del server DHCP.

È uno scenario di rete domestica, ho aggiornato la domanda.
Borek Bernard,

ಠ_ಠ NOI CHIEDERE SUPERUSER POI?
Ablue,

Forse perché è legato al networking e qui è il posto migliore per questo?
Kedare,

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.