Windows Server z rolą DHCP (Dynamic Host Configuration Protocol) pozwala na automatyczną konfigurację ustawień karty sieciowej – niezależnie od typu urządzenia, przydziela określony lub wolny adres IP. DHCP przekazuje ustawia dotyczące bramy, maski czy DNS dla karty sieciowej . Skonfigurowany w DHCP zakres tzw scope – pozwala zarządzać odpowiednią pulą adresów IP, tworzyć dla nich rezerwacje czy blokady dla określonych MAC.
Ustawień jest sporo, konfiguracja z czasem się rozrasta i wymaga przenosin na nowe środowisko – chociażby ze względu na cykl życia OS.
Jak przenieść rolę serwera DHCP na nowy? W jaki sposób zmigrować ustawienia serwera DHCP na inną maszynę?
Zacznijmy od opisu środowiska które chcemy zmigrować, posiadamy serwer z rolą DHCP o nazwie dc11.sprawdzone.it i chcemy przenieść tą role na nowy serwer dc12.sprawdzone.it.
Jak wygląda nasza obecna usługa DHCP? Co będziemy przenosić? W przystawce widzimy sporą ilość zakresów:
a w każdym scope mamy rezerwacje:
czy dodatkowe opcje:
Ustawień jest sporo i na pewno nie będziemy tego robić ręcznie.
Sprawdzonym sposobem na migracje konfiguracji jest użycie polecenia Powershell Export-DhcpServer, tworzy ono plik XML. Z poziomu PowerShell ISE lub Visual Studio Code wykonajmy poniższy skrypt:
#export DHCP configuration
$olddhcp = "dc11.sprawdzone.it"
Export-DhcpServer -ComputerName $olddhcp -Leases -File "C:\oldDHCPconf.xml" –Verbose
Jeżeli nie mamy jeszcze nowego środowiska należy je utworzyć a potem dodać rolę DHCP. Nasza maszyna dc12.sprawdzone.it jest już gotowa, dodana do domeny – dodajmy rolę.
Możemy to zrobić nawet zdalnie z użyciem PowerShell, warunkiem jest włączone na niej usługi WinRM, skrypt znajdziecie poniżej:
#install DHCP role
$newdhcp = "dc12.sprawdzone.it"
Install-WindowsFeature -Name DHCP -IncludeManagementTools -ComputerName $newdhcp
a jeżeli chcecie dodać rolę DHCP ręcznie na nowym serwerze z użyciem GUI, dodajemy ją z poziomu Server Managera Add Roles and Features (ostrzegam sporo klikania):
Rola DHCP nie wymaga restartu więc CHECK o jego automatycznym wykonaniu możemy zostawić odznaczony:
po krótkiej chwili i wielu oknach kreatora rola DHCP jest zainstalowana i gotowa do dalszej konfiguracji.
UWAGA: w naszym przypadku, niezależnie czy dodaliście rolę poprzez PowerShell czy GUI nie rozpoczynamy dalszych kroków o których informuje nas Server Manager, pomijamy komunikat konfiguracji po wdrożeniu:
Z poziomu konsoli dodajemy nasz nowy serwer DHCP do domyślnej grupy security:
# ad newserver to secuirty groupdhcp
$newdhcp = "dc12.sprawdzone.it"
Add-DhcpServerSecurityGroup -ComputerName $newdhcp
Kolejnym krokiem jest import wyeksportowanej wcześniej konfiguracji zapisanej w pliku XML. Do tego celu użyjemy polecenia Import-DhcpServer, nasze serwery mają skonfigurowana usługę WinRM dlatego polecenie importu możemy wykonać zdalnie na serwerze z którego wykonaliśmy eksport (nie musimy przenosić pliku XML z ustawieniami). Skrypt wskazuje serwer na który imprtujemy ustawienia – dodatkowo polecenie Import-DhcpServer ma wymagany parametr odnośnie ścieżki dla backupu (kopii konfiguracji która jest aktywna przed wykonaniem importu):
#import DHCP configuration
$newdhcp = "dc12.sprawdzone.it"
$dhcpbackuppath = "C:\dhcpbackup"
New-Item -Path = $dhcpbackuppath -ItemType Directory
Import-DhcpServer -Leases –File "C:\oldDHCPconf.xml" -BackupPath $dhcpbackuppath -ScopeOverwrite -Force -ComputerName $newdhcp –Verbose
Proces importu wykonał się poprawnie, pozostaje nam jeszcze autoryzować serwer i zrestartować usługę:
# authorize DHCP serwer
$newdhcp = "dc12.sprawdzone.it"
Add-DhcpServerInDC -DnsName $newdhcp -IPAddress 10.40.128.107
Restart-Service DHCPServer -Force
Sprawdźmy zatem stan usługi na nowym środowisku dc12.sprawdzone.it
Gotowe, pozostaje nam tylko posprzątać, stary serwer deautoryzujemy z poziomu przystawki DHCP:
lub poleceniem PowerShell Remove-DhcpServerInDC
# unauthorize old DHCP serwer
$olddhcp = "dc11.sprawdzone.it"
Remove-DhcpServerInDC -DnsName $olddhcp
i odinstalujmy rolę DHCP ze starego serwera:
możemy też szybciej odinstalować rolę z użyciem PowerShell:
#uninstall DHCP role
$olddhcp = "dc11.sprawdzone.it"
Uninstall-WindowsFeature -Name DHCP -IncludeManagementTools -ComputerName $olddhcp -Restart
Na sam koniec sprawdźmy jeszcze jakie serwery DHCP mamy w naszym środowisku Active Directory używając przystawki:
lub polecenia PowerShell Get-DhcpServerInDC
Podsumowanie….
Sama operacja jak widzicie jest dość prosta i wymaga jedynie dokładnego jej zaplanowania – w porozumieniu z sieciowcami i najlepiej po godzinach pracy 🙂
Wyjątki w zaporze systemowej od obsługi DHCP tworzą się w raz z dodaniem roli:
a na zakończenie, kompletny skrypt który w przypadku uruchomienia WinRM możecie całkowicie wykonać na jednej maszynie (np na „starym” serwerze DHCP) – krok po kroku przeprowadzicie migracje na nową maszynę a więcej sprawdzonych skryptów znajdziecie tutaj:
# DHCP role migration by sprawdzone.it
# parameters
$olddhcp = "dc11.sprawdzone.it"
$newdhcp = "dc12.sprawdzone.it"
$newdhcpip = "10.40.128.107"
$dhcpbackuppath = "C:\dhcpbackup"
$configfile = "C:\oldDHCPconf.xml"
# export DHCP configuration from old server
Export-DhcpServer -ComputerName $olddhcp -Leases -File $configfile –Verbose
# install DHCP role on new server
Install-WindowsFeature -Name DHCP -IncludeManagementTools -ComputerName $newdhcp
# ad newserver to security groupdhcp
Add-DhcpServerSecurityGroup -ComputerName $newdhcp
# import DHCP configuration file to new server
New-Item -Path = $dhcpbackuppath -ItemType Directory
Import-DhcpServer -Leases –File $configfile -BackupPath $dhcpbackuppath -ScopeOverwrite -Force -ComputerName $newdhcp –Verbose
# authorize DHCP new server in AD
Add-DhcpServerInDC -DnsName $newdhcp -IPAddress $newdhcpip
Restart-Service DHCPServer -Force
# unauthorize old DHCP server
Remove-DhcpServerInDC -DnsName $olddhcp
# uninstall DHCP role from old server
Uninstall-WindowsFeature -Name DHCP -IncludeManagementTools -ComputerName $olddhcp -Restart
Jeżeli mój wpis Ci się spodobał, pomógł w pracy? Chcesz mnie wspierać? Postaw kawę! To dzięki waszemu wsparciu nie ma reklam! Poniżej kod QR do płatności który jest jednocześnie linkiem do PayPal możesz też wpłacić BLIK z użyciem Przelewy24.pl