Warum dauert es Sekunden, um die IP-Adresse über DHCP zu erhalten?

24

Warum dauert es aus Neugier oft Sekunden , um die Netzwerkkonfiguration über DHCP abzurufen, wenn die CPU in der Lage ist, Millionen von Vorgängen pro Sekunde zu verarbeiten, und der Ping zum Router einige Millisekunden dauert?

In meiner häuslichen Umgebung mit einem WLAN-Router und ungefähr 5 Geräten ist es nicht selten, dass Zeiten wie 5-10 Sekunden auftreten.

Borek Bernard
quelle

Antworten:

22

Zusätzlich zum tatsächlichen Erwerb der DHCP-Lease vom DHCP-Server (was normalerweise nicht sehr lange dauert), senden einige Server zuerst einen Ping an die zu übermittelnde IP-Adresse, bevor sie diese tatsächlich übermitteln, um zu überprüfen, ob dies noch nicht der Fall ist Wird im Netzwerk verwendet - es dauert einige Sekunden, bis das Zeitlimit abgelaufen ist. Der Client tut dies manchmal auch (um IP-Adressenkonflikte zu vermeiden), wodurch sich die Zeit verlängert. Darüber hinaus registrieren einige Clients auch ihre DNS-Einträge usw.

Dan
quelle
3
Der DHCP-Server bei meiner Arbeit verwendet ARP-Anforderungen, um IP-Konflikte zu erkennen.
Erichui
9

DHCP kann etwas länger dauern, da bei der ersten Anforderung eine Reihe von Transaktionen nicht mit einem einzelnen Server, sondern mit allen Geräten im Netzwerk ausgeführt werden, da eine Broadcast-Nachricht gesendet wird.

Wenn Sie den RFC auf DHCP prüfen,

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

Sie können deutlich sehen, um welche Verhandlungsserie es geht. Zu Beginn sendet der Client DHCPDISCOVER an alle Geräte im LAN. Anschließend geben die Server, auf denen der DHCP-Dienst ausgeführt wird, die Meldung DHCPOFFER zurück. Der Client kann auch warten, bis er Antworten von allen verfügbaren DHCP-Servern erhält, bevor er eine auswählt. Dann sendet es eine DHCPREQUEST mit einer Kennung, die angibt, welchen Server es als IP-Provider ausgewählt hat. Schließlich erhält es DHCPACK mit allen Konfigurationsparametern. Dies ist nur eine Zusammenfassung der "3.1 Client-Server-Interaktion - Zuweisen einer Netzwerkadresse" aus dem RFC.

Meiner Erfahrung nach dauert DHCP lange, hauptsächlich in großen LAN-Umgebungen mit vielen verbundenen Knoten. In einem Heimnetzwerk mit nur einem DHCP-Server (zum Beispiel WIFI-Router) und einem oder zwei PCs ist es ziemlich schnell.

Daniel t.
quelle
In meinem Heimnetzwerk mit einem WLAN-Router und ungefähr 5 Geräten dauert es ungefähr 5-10 Sekunden, was ich für ziemlich langsam halte. Aber danke für die Erklärung.
Borek Bernard
Stellen Sie sicher, dass Sie einen einzigen DHCP-Server haben. Wenn es sich nur um 5 Geräte handelt, möchten Sie möglicherweise IPs für jedes Gerät im DHCP-Server reservieren. Aber wenn Sie neugierig genug sind, können Sie tcpdump verwenden, um die tatsächliche Verhandlung zu betrachten und zu sehen, was die Verzögerung verursacht.
Daniel t.
Abhängig vom DHCP-Server kann dies unabhängig von der Netzwerkaktivität oder der CPU-Geschwindigkeit einige Sekunden dauern. Dies liegt daran, dass der Server zuerst das Netzwerk abfragt, um festzustellen, ob eine Adresse verwendet wird, bevor er sie einem Client anbietet, und mindestens eine Weile warten muss, bis Antworten eingehen. Diese Zeitüberschreitung ist Teil der Verzögerung, die Sie bemerken. Sie tritt auch im leisesten Netzwerk auf.
Sonntag,
2

Zwei Gründe (und Lösungen) habe ich gefunden, als ich schnelle Antworten von meinem DHCP-Server haben wollte.

1) Mein DHCP hat einen Ping der Adresse durchgeführt, die er zuweisen wollte. Dies fügte eine Verzögerung von 3 Sekunden hinzu. Ich habe dies behoben, indem ich die DHCP-Konfiguration geändert habe, um eine Zuordnung von MAC-Adresse zu IP-Adresse zu erhalten. Dies verwendet im Wesentlichen DHCP, um eine statische Adresse zuzuweisen. Dies beseitigte die 3 Sekunden Verzögerung für mich.

2) Ich habe ein isoliertes Netzwerk, aber Sie können dies manchmal bekommen. Es wurde eine DNS-Suche durchgeführt, was für mich zu einer Verzögerung von vielen Sekunden führte, nachdem ich eine IP-Adresse von DHCP erhalten hatte. In der DHCP-Serverkonfiguration gab es Optionen für unsere Domain- und DNS-Server. Nach dem Entfernen der DNS-Optionen und der obigen Änderung erhielt ich sofort Antworten vom DHCP-Server. (**)

Diese Probleme habe ich in meinem Setup gefunden. Ihre Laufleistung kann variieren.

Prost

PFUND

(**) Wenn ich für jedes Mal einen Cent hätte, wenn eine fehlgeschlagene DNS-Suche eine Verzögerung verursachte, die zu einem seltsamen Anstoß führte, der dazu führte, dass ich mir den Kopf kratzte, hätte ich viele, viele Cent.

LazyBrush
quelle
1

Ich weiß nicht, welches Szenario Sie haben, aber in der realen Welt erhalten Sie die IP-Adresse ... usw. von einem alten Server (dhcp-Server ist immer der mit der ältesten Hardware :)) mit vielen Anfragen hinter einer Firewall , ein oder mehrere Router / Switches ... Latenz, CPU-Leistung ... und in einer Windows-Welt ist die DHCP-Implementierung nicht so effizient, wie wir es uns wünschen.

C_Sense
quelle
1
"In einer Windows-Welt ist die DHCP-Implementierung nicht so effizient, wie wir es gerne hätten!" Haben Sie Unterlagen oder Quellen, die Ihre Aussagen bestätigen?
Mfinni
Nein, aber zum Beispiel ... Linux bietet sehr einfach Failover-DHCP-Optionen. Abgesehen von der integrierten Active Directory-Funktionalität in Windows gibt es einige andere Punkte, die als potenzielle Sicherheitsprobleme angesehen werden müssen.
C_Sense
2
Ich denke, dass Sie die Übertreibung wieder auffliegen lassen, die durch jahrelanges Lesen zu vieler Internet-Posts entstanden ist. "Microsoft ist schlecht." "Warum?" "Weil das jeder sagt."
Joeqwerty
Sie können überlappende DHCP-Bereiche auf Windows-DHCP-Servern ausführen. Mit win2k8 R2 gibt es anscheinend auch eine neue Failover-Option. Vielleicht ist Linux besser als das. Nichts davon hat etwas mit "Effizienz" zu tun. Und auf welche "Sicherheitsprobleme" in Windows DHCP beziehen Sie sich? Ich habe Sie nach Quellen gefragt, und stattdessen werfen Sie weitere Ansprüche aus.
mfinni
0

Wenn Sie Leistungsprobleme mit DHCP haben;

  1. Überprüfen Sie die Netzwerklatenz
  2. Sehen Sie sich die DHCP-Aushandlung der Paketobergrenze an. Sie sollten in der Lage sein zu sehen, welche Aktion lange dauert. (Problem kann nicht mit dem DHCP-Server sein, wer wartet auf wen?)
  3. Untersuchen Sie die Auslastung und die Protokolle des DHCP-Servers.
Ein blaues
quelle
Es ist ein Heimnetzwerk-Szenario, ich habe die Frage aktualisiert.
Borek Bernard
ಠ_ಠ BITTE IHR KEINEN SUPERUSER DANN?
Ablue 30.12.10
Vielleicht, weil es mit Networking zu tun hat und hier der beste Ort dafür ist?
Kedare