DHCP Hochverfügbar
Diese Seite beschreibt die verschiedenen Optionen, die Vergabe von IP-Adressen per DHCP "hochverfügbar" zu machen. Denn ohne IP-Adressen geht in einem LAN nichts und wer keine statischen Adressen pflegen will, wird um DHCP nicht herum kommen. Also müssen wir überlegen, was ein ungeplanter Ausfall aber auch eine geplante Wartung für die Funktion bedeutet und wie wir damit umgehen.
DHCP Server installieren
Die Einrichtung eines DHCP-Servers unter Windows ist schon seit vielen Jahren eine einfache Aufgabe:
- DHCP-Rolle addieren
Die Rolle kann auf einem Member-Server oder Domain Controller installiert werden - DHCP-Server "autorisieren
Ein Server, der Active Directory Mitglied ist, stellt ein DHCP-Server seine Funktion nur bereit, wenn er von einem Administrator autorisiert wurde. Nur DHCP-Server auf einem Arbeitsgruppen-Server können DHCP ohne Autorisierung anbietet aber erkennen, wenn es schon einen anderen DHCP-Server gibt - Scope einrichten
In der einfachsten Variante richten Sie dann einen einfachen Scope ein und konfigurieren z.B. die Optionen für "Default Gateway", DNS-Server und DNS-Zone - Optional DHCP-Relay und weitere Scopes
Die benötigen Sie, wenn Sie mehrere VLANs mit entsprechend unterschiedlichen Subnetzen betreiben und ein Router die Pakete umsetzt. Die meisten Router können auch DHCP-Relay sein, d.h. empfangen die DHCP-Anfragen im jeweiligen Subnetz und leiten Sie mit Angabe des Subnetzes an den DHCP-Server weiter, der dann aus dem passenden Scope eine IP-Adresse anbietet.
Im Grund macht auch eine Fritz!Box zuhause nichts anderes. Sie verteilt IP-Adressen und weitere Informationen (Gateway, DNS-Server) per DHCP an die Clients. Wenn hier die Fritz!Box ausfällt, dann ist auch der Internet-Anschluss weg und im Homeoffice gibt es normal keine Hochverfügbarkeit.
In einem komplexen Firmennetzwerk ist dies aber keine Option und wenn der DHCP-Server nicht mehr antwortet, dann werden die bestehenden Clients zwar weiter funktionieren, so lange sie ihre IP-Adresse noch behalten dürfen aber neue Clients kommen nicht mehr ins Netzwerk.
Übrigens: Bei IPv6 braucht es nicht zwingend einen DHCP-Server. Der Client wartet einfach auf ein Paket eines Routers um das "Netzwerk" zu kennen und eine Host-Adresse kann er sich aus den 2^64 Varianten selbst bestimmen. DNS kann eine Multicast-Adresse sein.
Bei IPv4 gibt es aber solche ein "Auto Config"-Verfahren nicht und ohne DHCP-Angebot wird der Client vermutlich eine IP-Adresse aus dem besonderen Bereich 169.254.0.0/16 auswählen. Damit kommt er natürlich nicht weiter.
Leasedauer
Ein Client, der aber schon eine IPv4-Adresse per DHCP bekommen hat, weiß auch die Gültigkeitsdauer dieser "Leihe" und nutzt die Adresse bis zum Ablauf der Gültigkeit einfach immer weiter. er versucht natürlich die Adresse immer wieder zu verlängern aber einige Zeit kann er sich damit schon über Wasser halten. Damit stellt sich natürlich auch die Frage nach der passenden "Lease-Dauer". Je länger die Lease-Dauer ist, desto weniger Clients werden bei einem längeren Ausfall des DHCP-Servers davon betroffen sein. Genau genommen merken nur die Clients den Ausfall, bei denen die Lease-Dauer abgelaufen ist oder die neu eingeschaltet wurden und eine ganz neue Adresse beziehen müssen. Aber was ist nun dir richtige Dauer? Dazu schauen wir uns ein paar Aspekte an.
- Knappe IP-Adressen
Wenn Sie in einem Subnetz schon viele Clients haben und es immer wieder wechselnde Endgeräte gibt, dann ist eine kürzere Lease-Dauer interessant. So werden IP-Adressen wieder in den Pool als "Frei" zurückgegeben, wenn der Client - Pseudo-statisch
Eine zu kurze Zeit kann aber auch bedeute, dass ein über Nacht ausgeschalteter Client am morgen wieder eine andere Adresse bekommt. Das kann eine Auswertung und Logs u.a. erschweren. Vielleicht möchten Sie schon, dass ein Client zumindest ein paar Tage, z.B. auch nach einem langen Osterwochenende die alte Adresse weiter nutzt. Dann wäre eine Lease-Dauer von vielleicht 8 Tage interessant, was zufällig auch der Windows 2012R2 Default ist. - DHCP-Last
Wer eine Lease-Dauer von wenigen Minuten einstellt, zwingt die Clients zu sehr häufigen "Renew"-Pakete. Das wird einen normalen DHCP-Server nicht überlasten aber wenn der Server zum patchen nicht verfügbar ist, dann stört dies. Die minimale Dauer von Windows 2012R2 DHCP ist 1 Minute. - DHCP als Endpunkt-Datenbank
Der DHCP-Server speichert sich die Zuordnung der per DHCP vergebenen Adressen anhand der MAC-Adresse des Client und der IP-Adresse. Je länger die Lease-Dauer ist, desto länger können Sie z.B. Anhand einer MAC-Adresse ein früheres Gerät identifizieren. Wobei ein DHCP-Server kein Netzwerkmanagement ersetzt, welches sich auch merkt, an welchen Switch-Ports welche MAC-Adressen gelernt wurden. - Statische Reservierungen
Ein Sonderfall sind dauerhafte Reservierungen, die sie im DHCP-Server hinterlegen können. Damit bekommt ein Client mit einer MAC-Adresse immer wieder die gleiche Adresse. So können Sie mittels DHCP quasi "statische" Adressen auch an Server verteilen. Dann ist aber die Funktion von DHCP erst recht wichtig.
Bedenken Sie bei der Lease-Dauer auch die Intervalle, bei denen ein Client seine IP-Adresse erneuert.
Lease | Beschreibung |
---|---|
0-50% |
Keine Aktivität des Clients. Das bedeutet aber auch, dass eine Konfigurationsänderung so lange nicht vom Client übernommen wird. |
50-87,5% |
RENEW Client erbittet Verlängerung vom gleichen DHCP Server der bestehenden IP-Adrese. |
87,5-100% |
DISCOVER Client fragt per Broadcast nach beliebigen DHCP-Server, der ihm eine IP-Adresse anbietet aber nutzt seine Adresse weiter |
100%+ |
Der Client hat keine IP-Adresse mehr und versucht als "0.0.0.0" weiter per DISCOVER eine IP-Adresse zu erhalten |
Wenn also ein Lease z.B. 4 Tage gültig ist, dann macht der Client erst nach 2 Tagen die ersten RENEW-Versuche, am Tag 3 dann ein Discover und nach 4 Tagen arbeitet er nicht mehr. Bei einem DHCP-Ausfall nach 47h bedeutet dies, dass Sie immer noch bis zu 2 Tage "Restlaufzeit" des Clients haben. Die "Überlebenszeit" für bestehende Clients ist also nicht die Lease-Dauer sonder nur 50% davon. Neue Clients bekommen bei einem DHCP-Ausfalls natürlich keine neue Adressen und sind sofort betroffen.
Über verschiedene Subnetze und VLANs können Sie mit unterschiedlichen Werten für die Lease-Dauer die Verfügbarkeit unter Berücksichtigung der Freigabe anpassen, z.B.
Servernetz: sehr lange Leasedauer von mehreren Tagen oder Wochen, kombiniert mit Reservierungen ClientNetz: mehrere Tage Gäste-WLGäste-WLAN: z.B. 1 Tag, damit die Adresse nicht lange belegt wird
Windows DHCP schlägt eine Lease-Dauer von 8 Tagen vor, was für die meisten Firmen auch passen sollte. Wer bis zu 4 Tage keine IP-Adressen per DHCP verteilen kann, sollte sein Betriebskonzept überprüfen.
DHCP vergibt ja nicht nur IP-Adressen, sondern kann auch umfangreiche Konfigurationsdaten verteilen, z.B. Provisioning-Informationen für Telefone u.a. DHCP ist also schon wichtig und ein Single Server ist für eine Firma vielleicht zu wenig. Wenn sie keinen "Small Business Server" betreiben, dann haben Sie ja meist auch zwei oder mehr Domain Controller und zwei DNS-Server. Größere Firmen haben im Netzwerk dann auch zwei Router, die sich die Arbeit "IP-Routing" aber auch "DHCP-Relay" teilen können etc.
- Deep dive on DHCP Lease Time and Client Behavior
https://www.linkedin.com/pulse/deep-dive-dhcp-lease-time-client-behavior-lasya-gayathri-muramalla-yohhc
Rogue Server
Ohne weitere Konfiguration kann quasi jeder Mitarbeiter einfach einen Router oder Client an einem Switch anschließen. Nur mit 802.1x und eingeschränkt per MAC-Adressen können Sie solche fremden Geräte den Zugang erschweren. Wenn Sie aber einmal im LAN sind, dann können Sie sich nicht nur per DHCP eine IP-Adresse besorgen, sondern sogar selbst DHCP-Server spielen. Sie glauben gar nicht, wie oft Mitarbeiter bei Kunden z.B. einem LTE-Router einfach mal angeschlossen haben oder einen eigenen WLAN-AccessPoint aufbauen wollten, der dann IP-Adressen im LAN angeboten hat.
Im Nachhinein können Sie die Fehler relativ schnell finden, da Sie auf einem Client mit einer falschen IP-Adresse per "IPCONFIG /ALL" zuerst die abweichende IP-Adresse erkennen und über die IP-Adresse des DHCP-Servers auch dessen MAC-Adresse und darüber dann wieder den Switch-Port ermitteln können. Das dauert aber Zeit und erfordert entsprechende Kenntnisse und Zugänge. Da ist es besser, die DHCP-Server-Funktion auf den Switchports komplett zu unterbinden. Ein besserer Switch kann z.B. ein DHCPOFFER anhand des Paketinhalts erkennen und solche Paket von einem Client-Port abblocken. Ein Client darf dann nur noch ein DHCPDISCOVER und ein DHCPREQUEST senden.
Diese Funktion wird häufig "DHCP Snooping" genannt.
Eine solche Konfiguration gehört aber auch zum zuverlässigen Betrieb einer DHCP-Umgebung.
Sollten Sie eine Umgebung ohne Active Directory nutzen, dann können Sie dennoch zwei Windows DHCP Server betreiben. Sie sollten dann aber sicherstellen, dass die Rogue-Erkennung deaktiviert ist.
Das geht über einen Eintrag in der Registrierung des DHCP-Servers:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DHCPServer\Parameters] "DisableRogueDetection"=dowrd:00000001
Achtung:
Damit entfernen Sie wissentlich die Schutzfunktion des
DHCP-Servers, in einer Umgebung mit einem AD-Forest nur dann
aktiv zu werden, wenn er autorisiert ist.
- Cisco Chapter: Configuring DHCP Features and IP Source Guard
https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst2960/software/release/12-2_55_se/configuration/guide/scg_2960/swdhcp82.html#wp1058243 - HP ProCurve 5400zl Switch Base System - How to Configure
DHCP Snooping
https://support.hpe.com/hpesc/public/docDisplay?docId=emr_na-c03361057 - Finding and remediating rogue access points on the Microsoft
corporate network
https://www.microsoft.com/insidetrack/blog/finding-rogue-access-points-on-the-microsoft-corporate-network/ - MiMit Tools unautorisierte DHCP-Server finden
https://www.computerweekly.com/de/ratgeber/Mit-Tools-unautorisierte-DHCP-Server-finden - Stand-alone DHCP-Server plus DHCP-Server in Domäne gleich
Problem?!
https://blog.ppedv.de/post/stand-alone-dhcp-server-plus-dhcp-server-in-domne-gleich-problem - Disabling rogue server detection to avoid DHCP server
activation in windows
https://www.markwilson.co.uk/blog/2008/10/disabling-rogue-server-detection-to-avoid-dhcp-server-activation-in-windows.htm
DHCP und Dubletten
Sie können aber nicht einfach mal so zwei DHCP-Server installieren, denn schon bei der Konfiguration der Scopes sollten Sie sich die Frage stellen, welcher Server denn nun welche IP-Adressen verteilt, ob sich die Server die Arbeit wirklich beide aktiv teilen können oder sie vielleicht eher einen Aktiv/Passiv-Betrieb konfigurieren. Auf jeden Fall müssen Sie verhindern, dass ein DHCP-Server eine IP-Adresse anbietet, die schon ein anderer Client vom anderen DHCP-Server bekommen hat. Schon das DHCP-Protokoll ist aber darauf eingerichtet und jede DHCP-Zuweisung besteht aus vier Paketen
- DHCPDISCOVER Client -> Broadcast
Der Client hat noch keine IP-Adresse und sendet mit der IP-Adresse 0.0.0.0 und seiner MAC-Adresse einen MAC-Level Broadcast (FF:FF:FF:FF:FF:FF:FF) ins Netzwerk, welcher von allen DHCP-Servern oder DHCP-Relay-Agenten im gleichen Subnetz gesehen wird. Der Relay-Agent leitet die Anfrage an einen DHCP-Server in einem anderen Subnetz dann weiter - DHCPOFFER Server -> Client
Der DHCP-Server wählt dann eine IP-Adresse aus und sendet sie direkt oder über den DHCP-Relay Agent an den Client. - DHCPREQUEST
Am Client können natürlich mehrere Angebot eingehen. Er wählt sich dann eines aus und fordert die Reservierung von diesem Server an. Die anderen Angebot kann er später immer noch ablehnen. - DHCPACKNOWLEDGE
Der Server bestätigt dem Client, dass er nun diese IP-Adresse und andere Daten hat.
Das funktioniert alles aber noch ohne IP-Adressen des Clients rein auf Layer 2. Erst nach Abschuss durch das DHCPACKNOWLEDGE hat der Client die IP-Adresse.
Diese vier Pakete stellen aber noch nicht sicher, dass es keine Dubletten gibt. Und hier gibt es unterschiedliche Aspekte. Windows Server und Client haben drei Optionen, um solche Doppelungen zu vermeiden.
- Antwort-Delay
Sie können beim DHCP-Server hinterlegen, dass er nicht sofort sondern etwas verzögert für einen Scope antwortet. So können Sie einen "schnellen primären DHCP-Server" bereitstellen und einen zweiten "langsameren" Server als Backup parallel betreiben - DHCP Ping
Weiterhin kann ein DHCP-Server eine IP-Adresse, die er anbieten will, erst einmal per PING ansprechen. Das funktioniert natürlich nur, wenn das andere System aktiv ist und einen PING erlaubt. Bekommt der DHCP-Server eine Antwort, dann kennzeichnet er die IP-Adresse als belegt. Der ganze Prozess dauert natürlich länger und der Client muss auf die Adresse warten. - Client-Check
Auch der Client sollte nach dem Angebot einer Adresse durch den Server die Verfügbarkeit einmal prüfen. Windows macht dies durch einen ARP-Request an die IP-Adresse und wenn Sie im Subnetz schon vorhanden ist, wird das andere hoffentlich sich melden.
Es sollte so kaum passieren, dass zwei Systeme die gleichen IP-Adresse haben. Der häufigste Fall ist, dass ein System eine statische IP-Adresse von seine Admin bekommen hat, und diese nicht beim DHCP-Server dann ausgeschlossen wurde. Das passiert gerne mal mit VMs von Entwicklern, die einen Testserver starten und dann die per DHCP- eingetragene IP-Adresse entgegen den Regeln einfach statisch hinterlegen. Wenn die VM dann einige Wochen aus ist und später wieder eingeschaltet wird, dann kann die IP-Adresse schon ein anderes System bekommen haben.
- Beheben von doppelten IP-Adressenkonflikten in einem
DHCP-Netzwerk
https://support.microsoft.com/de-de/topic/beheben-von-doppelten-ip-adressenkonflikten-in-einem-dhcp-netzwerk-d68499da-69a3-da3b-4630-d17e502adf50 - Ereignis-ID 4199 und Windows-Client können keine IP-Adresse
vom DHCP-Server abrufen
https://learn.microsoft.com/de-de/troubleshoot/windows-server/networking/event-4199-windows-client-cannot-get-ip-address-dhcp-server - DHCP-Server mit deaktiviertem Bereich sendet einen DHCPNAK
an Clients
https://learn.microsoft.com/de-de/troubleshoot/windows-server/networking/dhcp-server-sends-dhcpnak-clients
DHCP Redundanzoptionen
Kommen wir nun zur Frage, wie sie DHCP denn besser verfügbar machen können. Es hier durchaus unterschiedliche Ansätze. Seit Windows 2012R2 gibt es von Microsoft einen DHCP Failover Cluster. Verwechseln Sie aber den "DHCP Failover Cluster" nicht mit einem "Microsoft Cluster" (Siehe Verfügbarkeit (Exchange und Co)" oder anderen Ansätzen wie Hardware Load-Balancer oder Network Load Balancing (NLB). Aber auch früher genutzte Optionen sind heute immer noch im Betrieb,
Variante | Beschreibung | Bewertung |
---|---|---|
Single Server mit VM-Failover |
Heute werden die meisten Dienste virtualisiert und die entsprechende Plattform darunter bietet eigene Failover-Optionen an. Sie können damit auch einen DHCP-Server von einem VM-Host zu einem anderen VM-Host umziehen oder z.B. bei einem RZ-Ausfall auch im Ziel einfach neu starten. Technisch haben sie aber nur einen Server der dann einige Minuten "offline" ist und auch bei geplanten Wartungsarbeiten immer mal wieder nicht verfügbar ist. |
o |
MS Cluster |
Früher konnten Sie auf einem Windows Failover Cluster mit eine Shared Storage tatsächlich einen DHCP-Service betreiben. Ein Server war dabei der aktive Server mit der Datenbank auf der Disk und wenn der Knoten ausgefallen ist, wurde die Datenbank zum anderem Knoten geschwenkt und der DHCP-Service wieder gestartet. Die Unterbrechungszeit war minimal, aber natürlich gab es Abhängigkeiten. Heute würde ich diesen Weg nicht mehr wählen
|
- |
50/50 Server |
Sie können zwei Server installieren, von denen jeder einfach die Hälfte der IP-Adressen eines Scope verteilt. Das ist einfach und schnell konfiguriert aber eine echte Gleichverteilung ist nicht garantiert. Sie können eigentlich nur die Hälfte der Clients als gesichert ansehen, wenn ein Server ausgefallen ist. Das ist jedem anderen A/A-Cluster mit zwei Servern vergleichbar, die sie auch nur mit bis zu 50% belasten dürfen, damit beim Ausfall der andere Knoten die Last mit übernehmen kann. |
+ |
70/30 Paar 80/20 Paar 95/05 Paar |
Von Microsoft und vielen anderen Quellen präferierte Lösung ist eine asymmetrische Verteilung, bei der ein primärer Server die meisten Clients bedient und ein sekundäre Server zwar mitläuft, aber verzögert antwortet. Damit wird sein Angebot fast nie angenommen. Sie verwalten eigentlich alles auf dem primären Server. Nur wenn der primäre Server ausfällt, dann bedient der sekundäre Server die Client, die in der Zeit eine neue IP-Adresse erwarten. In Verbindung mit einer längeren Lease-Dauer sind das dann nur Clients, die ganz neu starten, denn bestehende Clients arbeiten ja 50% der Lease-Dauer weiter und versuchen dann auch noch einen RENEW. Erst nach ca. 87% der Lease-Dauer würden sie dann eine neue Adresse anfragen. Das ist ziemlich viel Zeit um als Administrator zu reagieren. Auch die Zunahme der DHCP-Vergaben auf dem sekundären Server kann per Monitoring gut überwacht werden. |
+ |
100/100 mit Konflikt |
Sie können natürlich auch einfach zwei unabhängige DHCP-Server mit dem identischen Scope installieren und darauf vertrauen, dass die Server und Clients schon alleine einen Konflikt präventiv verhindern. Ein Windows DHCP-Server kann per PING dies erkennen und die Adresse dann sperren. Allerdings verzögern solche zusätzlichen Prüfungen die Vergabe um einige Sekunden und sicher ist dies auch nicht. Ohne Replikation der Daten müssen Sie natürlich auch die Konfiguration manuell immer gleich halten, was bei den Optionen noch einfach ist aber bei Reservierungen schnell fehleranfällig wird. |
- |
Sicher gibt es noch weitere Optionen und speziell 3rd Party Produkte, die ebenfalls DHCP-Dienste bereitstellen, bieten erweiterte Funktionen. Aber es hat sich wohl eine Art "Primary/Secondary"-System als häufigste Lösung herauskristallisiert, bei der ein zweiter Server die Informationen des ersten Servers repliziert und einspringt.
- Deploy and manage DHCP
https://learn.microsoft.com/en-us/training/modules/deploy-manage-dynamic-host-configuration-protocol/ - DHCP Failover Modes (Win 2012R2)
https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/dn338976(v=ws.11) - Understand and Deploy DHCP Failover
https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/dn338978(v=ws.11) - A Basic Guide to Configuring DHCP Failover (Linux)
https://kb.isc.org/docs/aa-00502 - Creating a DHCP HA-cluster on Ubuntu
https://dennis.dieploegers.de/creating-a-dhcp-ha-cluster-on-ubuntu/
DHCP Failover
Seit Windows 2012R2 hat Microsoft dem DHCP-Service eine "Cluster/Failover"-Funktion eingebaut, die auch 10 Jahres später bei Windows 2022 quasi unverändert in Funktion und GUI vorhanden ist. Sie ähnelt auf den ersten Blick der Technik, die auch ein DHCPD unter Linux nutzt. Zwei Server sind über einen Kommunikationskanal verbunden und gleichen damit ihre Konfiguration ab. Sie verwalten erst einmal einen DHCP-Service mit allen Einstellungen zu Scope und Optionen, um dann pro Scope zu definieren, welcher zweite Server die Konfiguration mit bekommen soll.
Im Active Directory bereitgestellte DHCP-Server müssen natürlich autorisiert sein.
Sollten Sie im Ziel einen vergleichbaren Scope schon
konfiguriert haben, dann zeigt die MMC eine Warnung an. Sie müssen dann das Ziel
erst entfernen
Danach gilt es die Details der Partnerschaft zu definieren. Im Standard definiert Microsoft einen "Load Balance"-Betrieb, bei dem beide Server aktiv IP-Adressen anbieten.
Alternativ können Sie auch einen "Standby-Server" definieren. Der zweite Server stellt dann nur IP-Adressen bereit, wenn der erste Server nicht mehr verfügbar ist.
Microsoft orientiert sich hierbei an einem RFC
- RFC3074 DHCP Load Balancing Algorithm
https://datatracker.ietf.org/doc/html/rfc3074
Die DHCP-Server bilden einen "Hash" über die MAC-Adresse des Clients um damit zu bestimmen, welcher DHCP-Server primär antwortet. Wenn ein DHCP-Server seinen Partner nicht mehr erreicht, dann antwortet er auf alle Adressen. - DHCP Failover Protocol <draft-ietf-dhc-failover-12.txt>
https://datatracker.ietf.org/doc/html/draft-ietf-dhc-failover-12#section-5.15
Beschreibt die Kommunikation zwischen den DHCP-Servern
Die Bedeutung der Betriebsart und der Felder hat Microsoft selbst gut dokumentiert:
- DHCP Failover Modes
https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/dn338976(v=ws.11) - DHCP Failover Settings
https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/dn338985(v=ws.11)
Die Herausforderung ist wie bei jedem Cluster zu erkennen, dass der Partner nicht mehr aktiv ist. Es ist schon ein Unterschied, ob der primäre Server "Down" ist und der Standby-Server übernimmt oder ob vielleicht nur die Verbindung zwischen den beiden Partnern unterbrochen ist. Microsoft unterscheidet dies mit dem Status "COMMUNICATIONS INTERRUPTED" oder "PARTNER DOWN".
Feldname | Default | Beschreibung |
---|---|---|
Maximum Client Lead Time (MCLT) |
1h |
In dem Umfeld kommt der MCLT eine Bedeutung zu. Wenn ein Client eine IP-Adresse erneuern will aber der primäre Server nicht reagiert und der Standby-Server noch nicht sicher ist, ob er komplett übernehmen soll, dann kann er den Lease quasi temporär für diese Zeit verlängern. Der Client wird in dem Beispiel nach 1h erneut einen Verlängerung anfragen und nicht mehr 50% der Lease-Dauer nutzen. Bis dahin kann der primäre ja wieder online sein oder der Standby hat richtig übernommen. Die Dauer ist auch für den "Fall Back" relevant, d.h. wenn ein primärer Server weggefallen ist und der sekundäre übernommen hat, dann braucht der Fallback ebenfalls so lange. "The administrator
configures the MCLT parameter to determine the
amount of time a DHCP server should wait when a
partner becomes unavailable, before assuming
control of the address range." |
Mode |
Load Balance |
Definiert die Funktion des Clusters.
Beide Funktionsweisen sind möglich und jede hat ihre Vorteile und Einschränkungen. |
State Switchover Interval |
NA |
Diese Option muss aktiv sein, wenn ein Server nach Ablauf der Zeit seit der fehlenden Kommunikation zum anderen Server dessen Funktion automatisch übernehmen soll. Ansonsten müssen Sie als Administrator manuell die Aktivierung auslösen. Es gibt keinen zuverlässigen Weg zu erkennen, ob nur die Kommunikation zwischen den DHCP-Servern ausgefallen ist oder der komplette Service auf der anderen Seite entfallen ist. Der DHCP-Cluster kennt keinen "Whitness"-Service. A server that loses
communication with a partner server transitions
into a communication interrupted state. The loss
of communication may be due to a network outage
or the partner server may have gone offline. By
default, since there is no way for the server to
detect the reason for loss of communication with
its partner, the server will continue to remain
in communication interrupted state until the
administrator manually changes the state to
partner down. However, if you enable automatic
state transition, DHCP failover will
automatically transition to partner down state
when the auto state switchover interval expires.
The default value for auto state switchover
interval is 60 minutes. |
Message Authentication und Shared Secret |
<bitte Secret eingeben> |
Die Kommunikation zwischen den beiden DHCP-Servern ist über ein gemeinsames Geheimnis abgesichert. Windows nutzt also weder die Credentials eines Dienstkontos noch die Computernamen oder Zertifikate o.ä. zur Authentifizierung der Server untereinander. |
Zuerst zeigt die MMC noch einmal die Einstellungen an
Danach konfiguriert die MMC die Partnerschaft für die ausgewählten Scopes auf beiden Servern.
Denken Sie daran, dass ein Bootp-Forwarder und DHCP-Relay-Agent seine Anfragen an beide DHCP-Server senden muss, damit Failover und Lastverteilung funktionieren.
Denken Sie daran, dass beide DHCP-Server ggfls. die
Berechtigungen zu Updates von dynamischen DNS-Einträgen benötigen
DNS Record Ownership and the DnsUpdateProxy Group
https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/dd334715(v=ws.10)?redirectedfrom=MSDN
Bitte ändern Sie nicht die IP-Adresse eines authentifizierten DHCP-Servers. Anscheinend wird die IP-Adresse sowohl im AD aber auch in der Failover-Replikation gespeichert und nicht anhand einer DNS-Auflösung gefunden. Es kann dann durchaus sein, dass ein DHCP-Cluster sich nicht mehr zusammenfindet und Sie die Failover-Konfiguration hart löschen und wieder neu anlegen müssen.
- Step-by-Step: Configure DHCP for Failover
https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/hh831385(v=ws.11) - DHCP Failover in Windows Server 2012
https://www.itprotoday.com/windows-78/dhcp-failover-windows-server-2012 - What is DHCP Failover?
https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/dn338983(v=ws.11) - DNS Record Ownership and the DnsUpdateProxy Group
https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/dd334715(v=ws.10)?redirectedfrom=MSDN
Betrieb und Replikation
Allein die Konfiguration eines Scope als Failover nimmt ihnen nicht ein paar Aufgaben ab. Auf beiden Servern sind die Scopes "bearbeitbar" und sie sehen auch nicht, dass diese Scope irgendwie "repliziert "sind. Ich habe zum Test auf jedem Server eine statische Reservierung wie folgt addiert:
Dies war problemlos möglich und auch nach einiger Zeit wurden hier keine Daten abgeglichen. Ich musste schon manuell ein "Replicate Scope.." machen, um die Einstellungen von einem Server zum anderen Server zu übertragen:
Achtung: Dabei handelt es sich um ein "Überschreiben" im Ziel, d.h. mein "Test2"-Reservierung auf EX01 ist im dem Zuge entfernt worden.
Dies gilt übrigens auch für Änderungen per PowerShell.
Sie sollten daher Änderungen immer nur auf dem aktiven Server vornehmen UND danach die Änderungen über eine manuelle Replikation zum anderen Server übertragen. Wenn der aktive Server "Down" ist, dann können Sie zwar auch auf dem sekundären Server Änderungen vornehmen, aber müssen daran denken diese zurück zu replizieren und können ja nie sicher sein, ob jemand auf dem primären Server eine Änderung noch nicht repliziert hatte.
Microsoft hat keine "eingebaute Replikation" oder gar eine Ablage im Active Directory für die Konfigurationen vorgesehen. Allerdings gibt es mit Windows 2012R2 und höher auch ein "IP Address Management (IPAM)", welches hier unterstützt.
Changes made to failover-enabled scopes using the IPAM console are
automatically replicated to the failover partner. This is a significant
difference in the way that DHCP failover works compared to when you configure
settings using the DHCP console or Windows PowerShell
Quelle:
https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/dn757722(v=ws.11)#managing-dhcp-failover-with-ipam
Die vom DHCP-Server vergebenen Leases werden aber sehr wohl automatisch und auch schnell repliziert.
- DHCP Failover and IPAM
https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/dn757722(v=ws.11) - IP Address Management (IPAM) Overview
https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/hh831353(v=ws.11) -
DHCP Failover Cluster Automatische Replikation von
Konfigurationsänderungen
https://bent-blog.de/dhcp-failover-cluster-automatische-replikation-von-konfigurationsaenderungen/
Überwacht das Eventlog auf dem primären Server um eine Replikation bei Änderungen anzustoßen
Monitoring
Zudem sollten Sie natürlich die Funktion ihrer DHCP-Server auch in das Monitoring mit einbeziehen. Dazu gehören:
- Grundlegende Überwachung des Servers und des DHCP-Diensts
Die Dienste müssen natürlich laufen, der Patchstand sollte aktuell sein, CPU, RAM, DISK etc. im grünen Bereich sein. - Performance Counter der Scopes
Überwachen Sie die Anzahl der vergebenen IP-Adressen und wie viel "Reserve" sie noch pro Scope haben. Es wäre schon peinlich, wenn ein "hochverfügbarer DHCP-Service" aufgrund eines falschen Auslegung, falschen Konfiguration oder aus anderen Gründen keine freien Adressen mehr hat. - Events
Über das Eventlog können Sie ebenfalls auf Fehler oder Warnungen überwachen.
DHCP Server Operational Events https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/dn800668(v=ws.11) - Aktive Tests
Sie können sich natürlich auch auf ihr Anwender als "Sensoren" verlassen aber es gibt Programme, die eine DHCP-Anfrage (DHCPDISCOVER) starten und auf das DHCPOFFER warten.
In der DHCP-MMC sehen Sie pro Scope einen Status.
In den Eigenschaften des IPv4-Knotens werden die Failover-Partnerschaften verwaltet und hier kann auch die Konfiguration nachträglich angepasst werden, die bei der Einrichtung abgefragt wurde.
In dem Bild sehen Sie zudem den Zustand, wenn der primäre Server "Down" ist und der Status auf "CommunicationInterrupted" steht. Ohne einen automatisierten Failover (State Switchover Interval) müssen Sie hier manuell aktiv werden, damit der sekundäre Server die Funktion übernimmt.
Hinweis:
Der Rückfall zu primären Server erfolgt automatisch, nachdem
der primäre Server seinen Abgleich durchgeführt und die Maximum Client Lead Time (MCLT)
abgelaufen ist.
Die kompletten Statusänderungen werden von Windows auch ein ein Audit-File (%windir%\System32\Dhcp) und ins Eventlog (Applications and Services Logs\Microsoft\Windows\DHCP-Server) geschrieben. In der GUI sehen Sie am IPv4-Symbol einen kleinen Indikator zum Cluster.
Es ist nur der kleine gelbe Pfeil, der auf das Failover-Cluster hinweist. Den Status können Sie sehr einfach per PowerShell ermitteln:
if (Get-DhcpServerv4Failover).state -ne 'Normal') { Write-Host "Probleme beim lokalen DHCP_Service }
So eine regelmäßige Prüfung können Sie einfach in ihre Monitoring-System einbinden oder per Taskplaner starten und Aktionen ausführen.
Weiterhin gibt es numerische Performancecounter, die Sie mit ihrer Monitoring-Lösung einfach anzapfen können.
So sollte hier die "Failover: BndUpd pending in outbound queue" immer 0" sein
- Win32_PerfFormattedData_dhcpserver_DHCPServer, ROOT\CIMV2
https://wutils.com/wmi/root/cimv2/win32_perfformatteddata_dhcpserver_dhcpserver/
Auf meinem Server gibt es drei Eventlogs:
Allerdings hat mit ein "Get-Winevent -ListLog" nur zwei Logs geliefert. Das interessante Ad,-Log mit den Cluster Failover Events konnte ich so nicht finden.
PS C:\> Get-WinEvent -ListLog *dhcp-server* LogMode MaximumSizeInBytes RecordCount LogName ------- ------------------ ----------- ------- Circular 1052672 0 Microsoft-Windows-Dhcp-Server/FilterNotifications Circular 1052672 12 Microsoft-Windows-Dhcp-Server/Operational
Über die Abfrage mit dem Provider-Name "Microsoft-Windows-DHCP-Server" wurden mir aber alle Meldungen angezeigt.
Get-WinEvent -ProviderName "Microsoft-Windows-DHCP-Server"
Ein Verlust der Verbindung auf dem primären Server, der Partner Failover und das Recovery generierte bei mir folgende Werte (aktuellster Wert oben).
PS C:\> Get-WinEvent -ProviderName "Microsoft-Windows-DHCP-Server" | fl TimeCreated,Id,Message TimeCreated : 29.05.2024 18:27:50 Id : 20251 Message : The failover state of server: dc01.uclabor.de for failover relationship: dc01.uclabor.de-ex01 changed from: RECOVER_DONE to NORMAL. TimeCreated : 29.05.2024 18:27:50 Id : 20251 Message : The failover state of server: ex01 for failover relationship: dc01.uclabor.de-ex01 changed from: PARTNER_DOWN to NORMAL. TimeCreated : 29.05.2024 18:27:50 Id : 20251 Message : The failover state of server: dc01.uclabor.de for failover relationship: dc01.uclabor.de-ex01 changed from: RECOVER_WAIT to RECOVER_DONE. TimeCreated : 29.05.2024 17:27:50 Id : 20251 Message : The failover state of server: dc01.uclabor.de for failover relationship: dc01.uclabor.de-ex01 changed from: RECOVER to RECOVER_WAIT. TimeCreated : 29.05.2024 17:27:50 Id : 20251 Message : The failover state of server: dc01.uclabor.de for failover relationship: dc01.uclabor.de-ex01 changed from: COMMUNICATION_INT to RECOVER. TimeCreated : 29.05.2024 17:27:50 Id : 20259 Message : The failover state of server: dc01.uclabor.de for failover relationship: dc01.uclabor.de-ex01 changed to : COMMUNICATION_INT. TimeCreated : 29.05.2024 17:27:50 Id : 20254 Message : Server has established contact with failover partner server 192.168.13.10 for relationship dc01.uclabor.de-ex01 . TimeCreated : 29.05.2024 17:27:37 Id : 20251 Message : The failover state of server: ex01 for failover relationship: dc01.uclabor.de-ex01 changed from: COMMUNICATION_INT to PARTNER_DOWN. TimeCreated : 29.05.2024 17:27:14 Id : 20252 Message : The failover state of server: ex01 for failover relationship: dc01.uclabor.de-ex01 changed from: NORMAL to COMMUNICATION_INT. TimeCreated : 29.05.2024 17:27:14 Id : 20255 Message : Server has lost contact with failover partner server 192.168.13.10 for relationship dc01.uclabor.de-ex01 .
Ansonsten stehen ihnen auch verschiedene PowerShell-Befehle zur Verfügung, die ich im nächsten Abschnitt beschreibe.
- DHCP Failover Events and Performance
https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/dn338988(v=ws.11) - System Center Management Pack for Windows Server 2012 DHCP
https://www.microsoft.com/en-us/download/details.aspx?id=39062
https://systemcenter.wiki/?GetCategory=Windows+Server+DHCP&Language=DEU - PRTG: 3 wichtige Aspekte von DHCP
https://www.paessler.com/de/dhcp-monitoring
PRTG kann den Dienst per WMI überwachen und Antworten auf synthetische DHCP-Anfragen auswerten. - PRTG DHCP-Sensor
https://www.paessler.com/manuals/prtg/dhcp_sensor
PowerShell
GUI und MMC ist zwar nett aber für die Automatisierung sind Schnittstellen gefragt. Microsoft hat mit der PowerShell gleich die passenden Module mitgeliefert. Die Konfiguration des Clusters können wir wie folgt ermitteln.
# Abfrage auf dem passiven Server PS C:\> Get-DhcpServerv4Failover Name : dc01.uclabor.de-ex01 PartnerServer : dc01.uclabor.de Mode : LoadBalance LoadBalancePercent : 50 ServerRole : ReservePercent : MaxClientLeadTime : 01:00:00 StateSwitchInterval : State : Normal ScopeId : 192.168.13.0 AutoStateTransition : False EnableAuth : True
Das Feld "State" liefert und den aktuellen Status und sollte per Monitoring ausgelesen werden. Der Status ist pro Server zu ermitteln.
Status | Bedeutung |
---|---|
Normal |
Regelbetrieb |
Communication Interrupted |
Der DHCP-Server kann seinen Kommunikationspartner nicht erreichen. |
PartnerDown |
Ein Admin hat den manuellen Failover aktiviert oder die Zeit bei "State Switchover Interval" ist abgelaufen |
RecoverWait |
Der primäre Server ist nach einem Ausfall wieder online aber hat noch nicht wieder übernommen. Er wartet die MCLT-Zeit ab, damit er problemlos wieder mitspielen darf. |
... |
Es gibt noch weitere Status, die Microsoft beschrieben hat. |
Beim Monitoring ist die Erfassung der freien IP-Adressen pro Scope aus meiner Sicht interessant. Auch das geht per PowerShell einfach
PS C:\> Get-DhcpServerv4ScopeStatistics -ScopeId 192.168.13.0 | fl ScopeId : 192.168.13.0 AddressesFree : 189 AddressesInUse : 1 PendingOffers : 0 ReservedAddress : 1 PercentageInUse : 0,5263158 SuperscopeName : AddressesFreeOnThisServer : AddressesFreeOnPartnerServer : AddressesInUseOnThisServer : AddressesInUseOnPartnerServer :
Die Werte können Sie ebenfalls direkt in ein Monitoring übernehmen. Theoretisch könnten Sie auch das Commandlet "Get-DhcpServerv4FreeIPAddress" mit einem Scope und dem Parameter "-NumAddress" nutzen, um zu sehen, wie viele Adressen noch frei sind. Aber die Daten bekommen wir mit Get-DhcpServerv4ScopeStatistics einfacher. "Get-DhcpServerv4FreeIPAddress" scheint auch einfach direkt den DHCP-Server zu fragen und keine echte DHCP-Anfrage zu simulieren. Als Monitoring-/Testwerkzeug eignet es sich nicht.
- Get-DhcpServerv4ScopeStatistics
https://learn.microsoft.com/en-us/powershell/module/dhcpserver/get-dhcpserverv4scopestatistics - Get-DhcpServerv4FreeIPAddress
https://learn.microsoft.com/en-us/powershell/module/dhcpserver/get-dhcpserverv4freeipaddress
Wenn der DHCP-Server alle IP-Adressen und zugehörigen MAC-Adressen erfasst, dann kann diese auch ausgelesen und z.B. in ein Audit-Log oder Inventory übertragen werden. Zudem können Sie etwas sehen, wie die Client ihren DHCP-Server nutzen und welche Client schon länger nicht mehr nachgefragt haben.
PS C:\> Get-DhcpServerv4Lease -ScopeId 192.168.13.0 IPAddress ScopeId ClientId HostName AddressState LeaseExpiryTime --------- ------- -------- -------- ------------ --------------- 192.168.13.111 192.168.13.0 11-11-11-11-11-11 TEST1 InactiveReservation
Natürlich gibt es auch das Gegenstück, um z.B. statische Reservierungen in großer Menge vorzunehmen. Dies ist z.B. nützlich beim Umzug von DHCP von einem anderen System, wenn Sie die IP-Adressen beibehalten wollen.
Add-DhcpServerv4Lease ` -IPAddress 192.168.13.115 ` -ScopeId 192.168.13.0 ` -ClientId 444444444444
Die MAC-Adresse wird ohne Doppelpunkte o.ä. eingegeben.
- Add-DhcpServerv4Lease
https://learn.microsoft.com/en-us/powershell/module/dhcpserver/add-dhcpserverv4lease - Get-DhcpServerv4Failover
https://learn.microsoft.com/en-us/powershell/module/dhcpserver/get-dhcpserverv4failover
Wenn Sie mutig sind, dann können Sie über einen "geplanten Task" sogar die Replikation der Konfiguration automatisieren:
# Repliziere alle Parterschaften des Servers an seiner Partner Invoke-DhcpServerv4FailoverReplication ` -ComputerName dc01.uclabor.de ` # Repliziere nur die Invoke-DhcpServerv4FailoverReplication ` -ComputerName dc01.uclabor.de ` -ScopeId 192.168.13.0
Allerdings sollten Sie dann "ganz sicher" sein, dass Sie immer nur auf dem primären System die Konfiguration ändern.
- Invoke-DhcpServerv4FailoverReplication
https://learn.microsoft.com/en-us/powershell/module/dhcpserver/invoke-dhcpserverv4failoverreplication
Das ist natürlich nur dann eine gute Idee, wenn wirklich alle Administratoren auch immer nur auf dem primären Server Änderungen vornehmen
- Analyze DHCP server with PowerShell
https://4sysops.com/archives/analyze-dhcp-server-with-powershell/ - Manipulating the DHCP Server using
Powershell
https://blog.wiztechtalk.com/2019/02/13/configuring-dhcp-server-using-powershell/ - IPAM: IP Address Tracking
https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/jj878332(v=ws.11)
Wireshark:Regelbetrieb
Natürlich wollt ich wissen, was hinter den Kulissen passiert und dazu eignet sich WireShark als Analysewerkzeug. Schließlich müssen die beiden Server ja irgendwie miteinander sprechen und sich abstimmen. Sehr schnell war zu sehen, dass die Kommunikation zwischen den beiden Partnern per 647/TCP erfolgt und immer vom primären Server auf den sekundären Server aufgebaut wird. Sie sehen hier in Wireshark den TCP-Handshake (Paket 1-3) und dann ein "CONNECT" mit allen Daten im Klartext.
Danach wird ca. alle 60 Sekunden ein Statusupdate vom Master an den Client gesendet.
Weitere Einblicke sind hier aber nicht zu sehen. Sie müssen natürlich sicherstellen, dass der Port nicht geblockt ist.
Wireshark:Lease Updates
Auch die Information über vergebene Leases wird über den Port übertragen.
Es ist gut zu sehen, dass schon beim ersten DHCP-Offer sehr schnell das Update auch zum sekundären Server gesendet wird und nach der Annahme durch den Client der Lease noch einmal aktualisiert wird. Wenn ein Client eine IP-Adresse wieder zurückgibt, dann wird der Lease ebenfalls freigegeben und diese Änderung zum sekundären Server repliziert.
Wireshark: Secondary Down
Wenn ich den sekundären DHCP-Server "geordnet" beende, dann wird der primäre Server darüber durch den TCP-FIN (Paket 86-90) informiert:
Zusätzlich ist aber auch anhand der Pakete 91/93 zu sehen, dass der DHCP-Server noch einen "Multicast-Leave (IP=224.0.0.22, Group = 239.255.255.254)" sendet. Der primäre Server versucht weiterhin alle 30 Sekunden wieder die TCP-Verbindung zum Port 647 des ausgefallenen sekundären Servers aufzubauen. Er nutzt dazu übrigens immer wieder einen neuen Sourceport.
Wireshark:Lease Update Queue
In der Situation habe ich dann per DHCP vom aktiven primären Server einen Lease angefordert und erhalten. und danach den sekundären Server gestartet um zu sehen, ob und wie schnell die Daten dort ankommen. Ich habe dazu noch ein vergeblich TCP-SYN abgewartet, um etwaige Verzögerungen zu sehen.
Der sekundäre DHCP-Server startet mit einem IGMPv3 Member Join Group über die Multicast-IP-Adresse 224.0.0.22 und die Gruppe 239.225.225.254. Das triggert den primären DHCP-Server aber noch nicht an. Erst nach den bekannten "Retry-Intervall" von ca. 30 Sekunden wird die Verbindung vom primären Server zum sekundären Server über Port 647 aufgebaut und dann aber auch alle ausstehenden Updates übertragen.
Wireshark:Primary Fail
Das nächste Szenario war der Ausfall des primären Servers gefolgt von einem Client, der direkt darauf eine IP-Adresse anfordert. Der sekundäre Server hat also noch nicht die Rolle übernommen, da das "State Switchover Interval" noch nicht abgelaufen ist. Der Mitschnitt erfolgte auf dem primären Server (192.168.13.10) und sind als "Load Balancing" konfiguriert.
Die Pakete 119-122 zeigen den Abbau der Replikationsverbindung über Port 647 beim Herunterfahren des primären DHCP-Servers. Ca. 13 Sek später fordert der Client eine IP-Adresse an und erhält sie vom sekundären Server (192.168.13.16).
Der Client hatte natürlich vorher eine Adresse vom primären Server bekommen und dürfte daher erst mal auf eine Antwort gewartet haben, ehe er nach dem dritten Versuch die Adresse des sekundären Servers nimmt.
Wireshark:Primary Recover
Im vorherigen Mitschnitt stehen Sie, dass ich ca. 90 Sekunden später den primären Server wieder "online" genommen habe. Er hat sich mit dem sekundären Server über Port 647 verbunden und die zwischenzeitlich zugeteilten Leases zurückgelesen. Der primäre Server ist danach aber noch die eingestellte Zeit im Status "Recovery" geblieben, ehe er dann wieder in den "Normal"-Mode gewechselt ist.
- DHCP Failover Communications
https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/dn338987(v=ws.11) - DHCP Failover Examples
https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/dn338973(v=ws.11) - Dienstübersicht und
Netzwerkportanforderungen für Windows
https://learn.microsoft.com/de-de/troubleshoot/windows-server/networking/service-overview-and-network-port-requirements - Internet Group Management Protocol
https://en.wikipedia.org/wiki/Internet_Group_Management_Protocol
DHCP Failover deinstallieren
Der DHCP-Failover Cluster besteht aus zwei Komponenten:
- Die "Failover Partnerschaft" zwischen
zwei Servern mit den gleichen Parametern und
einem Shared Secret
Ein Server kann durchaus mit mehreren anderen Servern eine Partnerschaft habe. - Die Scope-Partnerschaften
Für jeden Scope wird ebenfalls eingerichtet, ob er Teil des Failover Cluster ist
Ich gehe zur Vereinfachung nun davon aus, dass Sie genau zwei Server haben und alle Scopes repliziert sind. Sie können über die MMC einfach auf jedem Scope ein "Deconfigure Failover" machen, worauf die MMC sich per RPC zum anderen Server verbindet und dort den Scope löscht.
Übrig bleibt ihr aktiver erster Server mit dem Scope. Wenn Sie alle Scopes entfernt haben, dann gibt es aber immer noch die Partnerschaft mit der Verbindung. Die entfernen Sie auf dem jeweiligen Server über die IPv4-Eigenschaften.
Sie können die Partnerschaft und die Scope replikation natürlich auch per PowerShell entfernen. Sollte es aber noch Scopes geben, dann müssen Sie entweder zuerst die Scope-Failover-Konfiguration entfernen oder sie nutzen "-force". Ich hole mir dazu erst einmal den Namen der Partnerschaft um sie dann zu entfernen.
Remove-DhcpServerv4Failover ` -ComputerName DHCP01 ` -Name "DHCP01-DHCP02" ` -Force
- Get-DhcpServerv4Failover
https://learn.microsoft.com/en-us/powershell/module/dhcpserver/get-dhcpserverv4failover - Remove-DhcpServerv4Failover
https://learn.microsoft.com/en-us/powershell/module/dhcpserver/remove-dhcpserverv4failover - How to Deconfigure DHCP Failover in Windows Server 2016
https://www.faqforge.com/windows-server-2016/de-configure-dhcp-failover-windows-server-2016/
Einschätzung
Vermutlich haben es viele Administratoren noch gar nicht auf dem Radar, dass es seit Windows 2012R2 schon eine einfach Möglichkeit gibt, DHCP-Dienste auch "hochverfügbar" bereitzustellen und Microsoft nutzt anscheinend die gleichen Grundlagen, die auch ein Linux DHCPD und andere Systeme verwenden. Ich habe aber nicht geprüft, ob ich einen Windows Server mit einem DHCPD auch verpartnern könnte.
Es ist aber heute eine gute Gelegenheit sich über ihre aktuelle DHCP-Konfiguration auf Basis von Windows Servern zu unterhalten und ggfls. diese anzupassen. Wer sich heute z.B. zwei Domain Controller und zwei DNS-Server betreibt, kann genauso gut auch zwei DHCP-Server bereitstellen und damit sowohl bei geplanten Wartungsarbeiten als auch ungeplanten Ausfällen die Funktion aufrecht erhalten.
Änderungen bei den Leases werden aktiv zwischen beiden Servern quasi sofort repliziert. Die Konfiguration der Scopes, Optionen aber auch statische Reservierungen sollten Sie aber immer auf einem primären Server machen und die erforderliche manuelle Replikation nicht vergessen. Sie können Änderungen sogar auf dem sekundären Server machen und dann auf den primären Server zurückschreiben. Das kann ihnen auch in einem Desasterfall helfen, wenn Sie so einen verloren gegangenen primären Server einfach wieder betanken können.
Wenn ihnen die Hochverfügbarkeit suspekt ist, dann können Sie auch einen Failover-Mode konfigurieren, bei denen ein Server die 95% bedient und ein Standby-Server im Notfall bis zu 5% übergangsweise vergeben und Renew-Anfragen ebenso kurz bestätigen kann.
Erweitern Sie aber auf jeden Fall ihre Überwachung der Dienste dahingehend, dass Sie den Status z.B. per "(Get-DhcpServerv4Failover).state -ne 'Normal'" und Eventlog überwachen. Wäre schade, wenn Probleme erst beim Ausfall des zweiten Servers bemerkt werden.
Weitere Links
- DHCP
- DHCP-Bereiche
https://learn.microsoft.com/de-de/windows-server/networking/technologies/dhcp/dhcp-scopes - Bereitstellen von DHCP mit Windows PowerShell
https://learn.microsoft.com/de-de/windows-server/networking/technologies/dhcp/dhcp-deploy-wps - DHCP Server Operational Events
https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/dn800668(v=ws.11) - DHCP-Server melden unterschiedliche Failoverzustände oder
replizieren keine Leaseinformationen in einer Windows Server
2012-basierten DHCP-Failoverbeziehung.
https://learn.microsoft.com/de-de/troubleshoot/windows-server/networking/dhcp-servers-report-different-failover-states - Konfigurieren eines DHCP-Failoverclusters auf Windows Server
2012
https://www.dell.com/support/kbdoc/de-de/000147573/how-to-configure-dhcp-failover-cluster-on-windows-server-2012 - DHCP Protokol
https://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol - Configure DHCP failover for Windows Server
https://www.techtarget.com/searchnetworking/tip/Configure-DHCP-failover-for-Windows-Server - DHCP Failover Protocol <draft-ietf-dhc-failover-03.txt>
https://www.ietf.org/proceedings/44/I-D/draft-ietf-dhc-failover-03.txt