Der erste Gedanke zielt an dieser Stelle meist in Richtung eines Cluster-Systems. Nachteile: Kosten und Komplexität. Wem das zu aufwändig ist, der lässt meist zwei DHCP-Server parallel laufen. Nachteil: Man kann keine Reservierungen vornehmen. Die Lösung, die hier vorgestellt werden wird, funktioniert als Standby-Server mit manueller Umschaltung.
Dazu nutzt man einen kleinen Batch, der mittels Task Scheduler auf dem Primär-DHCP-Server (Server 1) die DHCP-Datenbank via netsh auf ein Share des Backup-DHCP-Servers (Server 2) dumped. Danach 'leert' es den Backup-DHCP-Server und importiert mittels netsh den Dump vo Primär-Server auf den Backup-Server. Damit kann man zum Beispiel stündlich alle Konfigurationsinformationen und die aktuellen DHCP-Leases auf dem zweiten Server automatisiert kopieren.
Zusätzlich autorisiert man den DHCP-Server auf Server 2 nicht im AD. Dadurch läuft man nicht Gefahr, dass er im laufenden Betrieb anfängt, IPs zu verteilen. Im Disasterfall muß nur der Backup-DHCP (Server 2) im AD authorisiert und der primäre (Server 1) gleich deaktiviert sowie der Import-Job abgestellt werden.
Achtung: Der folgende Beispielcode funktioniert nur unter Windows Server 2003. In der netsh-Version von Windows 2000 fehlt die Option "export", die hier genutzt wird. Mit den Informationen aus http://support.microsoft.com/kb/325473/en-us sollte es aber möglich sein, ein analoges Verfahren aufzubauen.
In diesem Beispiel ist der IP-Bereich 172.16.0.0 DHCP-Scope, bei mehreren Scopes müssen alle Scopes in der dhcpimport.cmd analog gelöscht werden. Die erste Datei muß auf dem Server 2 im Ordner c:backup mit dem Namen dhcpimport.cmd hinterlegt werden:
REM dhcpimport.cmd
REM Abzulegen in c:\backup auf Server 2
@echo off
netsh dhcp server delete optionvalue 6
netsh dhcp server delete optionvalue 15
netsh dhcp server delete optionvalue 44
netsh dhcp server delete optionvalue 46
netsh dhcp server delete optionvalue 66
netsh dhcp server delete optionvalue 67
netsh dhcp server delete optionvalue 81
netsh dhcp server delete optionvalue 135
netsh dhcp server delete scope 172.16.0.0 DHCPFULLFORCE
netsh dhcp server import c:\backup\dhcpdump.txt all
Der Export wird als geplanter Task auf Server1 erstellt. Sinnvoll dafür ist die Verwendung eines eigenen Dienstkontos, damit bei Kennwortänderungen das Update nicht versehentlich sabotiert wird. Das eingesetzte Konto muss auf dem Zielserver über Administratorrechte verfügen, ist also mit einem sehr starken kennwort zu schützen. Das folgende Kommando muss dabei in einer Zeile als Job eingetragen werden:
cmd /c netsh dhcp server export \\server2\c$\backup\dhcpdump.txt all && psexec \\server2 c:\backup\dhcpimport.cmd
Das dafür notwendige Tools psexec.exe ist Bestandteil der pstools und kann als Freeware von sysinternals.com downgeloaded werden. Entpacken Sie das Tool am besten in den Windows-Ordner %WINDIR%.
Es ist erlaubt, unter den Bedingungen der GNU Free Documentation License dieses Dokument zu kopieren, zu verteilen und/oder zu verändern.
http://faq-o-matic.net/?p=525