This is an old revision of the document!
Microsoft DHCP Server
Экспорт конфигурации с арендами
Для экспорта - запустить на DHCP-сервере:
Export-DhcpServer -ComputerName dhcp_server -File C:\DHCP\dc1_dhcp.xml -Leases
Командлет может быть использован для выгрузки конфигурации с удаленного сервера.
Для импорта запускаем:
Import-DhcpServer -ComputerName dhcptest -File 'C:\DHCP\dc1_dhcp.xml' -Leases
После выполнения командлет спросит параметр BackupPath, можно указать какую-либо временную папку для резервного копирования.
Проблема с неправильным ip-адресом сервера партнёра по DHCP-failover и принудительное удаление отношений репликации DHCP
В отношениях репликации одной из областей DHCP была обнаружена следующая проблема: репликация работала только в одну сторону - с одного сервера на другой, но не обратно. При этом: на втором сервере, откуда репликация не работала - адрес сервера-партнёра по какой-то причине отображался в формате 169.254.*.* и не был правильным. Любые действия, связанные с DHCP-failover проблемной области - происходили очень медленно, вероятно, из-за обращения по несуществующему адресу. Скорее всего, ошибка связана с неправильной конфигурацией интерфейсов, когда на сервере был включен интерфейс без заданного адреса.
Решение: пересоздать отношения репликации. Однако, из mmc-оснастки это может не работать, консоль может выдавать ошибку: dhcp server in not running on target computer.
В этом случае поможет команда powershell, которая удаляет отношения с ключом force. Её можно запустить на первом, основном dhcp-сервере. Названия отношений можно посмотреть в свойстве dhcp-области.
Remove-DhcpServerv4FailoverScope -Name dc01.domain.local -ScopeId 10.10.10.0, 172.16.10.0 -force
DHCP-failover, ручной запуск резервирования
Репликация резервирования не происходит автоматически по умолчанию, даже при настроенном DHCP-failover. Для периодической репликации можно использовать скрипт, который будет запускаться по планировщику и выполнять одну команду:
Invoke-DhcpServerv4FailoverReplication -ComputerName dhcp_partner -force
DHCP-бэкап
DHCP по умолчанию сам резервирует свою конфигурацию и кладёт в C:\Windows\System32\dhcp\backup. Если мы хотим дополнительно копировать куда-то конфигурацию - можно это сделать cmd-скриптом, который будет содержать следующее:
Xcopy /E /I /Y C:\Windows\System32\dhcp\backup \\host\C$\DHCP_backup\dhcpserver_backup
DHCP и netsh
Иногда в решении проблем, связанных с DHCP, может помочь команда netsh.
Пример проблемы: на DHCP сервере не удавалось добавить один из MAC-адресов. DHCP сервер при попытке добавления одного из MAC-адресов выводил одну из двух следующих ошибок:
Specified address is not available This address is already in use
При этом, дело было не в IP-адресе, а именно в MAC, т.к. с другим MAC - DHCP зарезервировать адрес давал. Осмотр таблицы резервирования\аренд вручную и при помощи скрипта (ниже в данной статье) не показал результатов, в которых бы добавляемый MAC где-либо существовал. А вот та же самая операция, выполненная с помощью netsh, как раз показала, что MAC-адрес, который мы добавляем - уже присвоен одному клиенту с другим адресом.
Интересно, что просмотр свойств резервирования через MMC-консоль управления DHCP - показывал СОВЕРШЕННО ДРУГОЙ MAC адрес в свойствах.
Для решения проблемы помогло удаление проблемного резервирования с помощью команды netsh. Весь перечень выполняемых команд следующий:
netsh dhcp server \\dhcpserver scope 10.88.88.0 show reservedip delete reservedip 10.88.88.100 f0-18-98-ba-9d-e2-
После выполнения данной команды - новое резервирование успешно создалось.
Поиск резервирования с помощью PowerShell
При помощи такого скрипта можно выполнить поиск MAC-адреса во всех резервированиях.
$TargetMac = "f0-18-98-ba-9d-e2"
$DhcpServer = "dhcpserver"
Get-DhcpServerv4Scope -ComputerName $DhcpServer | ForEach-Object {
Get-DhcpServerv4Reservation -ComputerName $DhcpServer -ScopeId $_.ScopeId | Where-Object {$_.ClientId -eq $TargetMac}
}