Wir haben Schulungsräume, in denen normalerweise Windows XP installiert ist (über PXE). Die "normale" DNS / DHCP-Infrastruktur sind Windows-Server. Der Schulungsraum verfügt über ein eigenes VLAN (anders als die Windows-Server). Daher ist wahrscheinlich ein IP-Helfer für DHCP-Anforderungen auf dem Cisco-Router aktiv, mit dem alle PCs aus diesem Raum verbunden sind.
Jetzt wollten wir stattdessen einige der PCs auf Linux konvertieren. Die Idee war: Setzen Sie unseren eigenen Laptop mit einem DHCP-Server in das VLAN des Raumes und überschreiben Sie die "normale" DHCP-Antwort. Die Idee war, dass dies funktionieren sollte, da ein direkt angeschlossener DHCP-Server in diesem VLAN eine schnellere Antwortzeit haben sollte als der "normale" DHCP-Server, der sich einige Hops von diesem VLAN entfernt befindet.
Es stellte sich heraus, dass dies nicht funktionierte. Wir mussten die Lease manuell auf dem ursprünglichen DHCP-Server freigeben, damit sie funktioniert.
Auf dem Laptop hat der Client die IP angefordert und "unser" DHCP hat NACKs an die Windows-IP-Anforderung gesendet, bevor wir unsere eigene Antwort angeboten haben.
Alte Frage: Warum hat das nicht wie erwartet geklappt? Was bringt den PC dazu, sein altes Leasingverhältnis wiederherzustellen?
Update 08.08.2012:
Das Regain-Problem wurde im DHCP-RFC erläutert. Dies erklärt nun, warum der PC seinen alten Mietvertrag wiedererlangt.
Jetzt geben wir die IP vom Windows-DHCP-Server frei, bevor wir es erneut versuchen.
Nochmal - der Windows-DHCP-Server gewinnt.
Ich vermute, dass es einen Algorithmus für den DHCP-Client gibt, der die "beste" DHCP-Antwort für den Client ermittelt. Die neue Frage lautet:
Wie wählt der Kunde die "beste" Antwort?