===== 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//, можно указать какую-либо временную папку для резервного копирования. Если нам массово и многократно необходимо выполнять экспорт-импорт, мы можем довольно легко заскриптовать процесс. В этом случае укажем папку //BackupPath// прямо в командах и добавим ключи //-force// и //-ScopeOverwrite// для перезаписи уже существующих областей. Пример: Export-DhcpServer -ComputerName server01 -File C:\DHCP_EXP\server01.xml -Leases Export-DhcpServer -ComputerName server02 -File C:\DHCP_EXP\server01.xml -Leases # Теперь копируем файлы из папки DHCP_EXP - на сервер, где будем производить импорт - в папку DHCP_IMP Import-DhcpServer -ComputerName server01new -File 'C:\DHCP_IMP\server01.xml' -Leases -BackupPath 'C:\DHCP_BACKUP\SERVER01NEW' -ScopeOverwrite -force Import-DhcpServer -ComputerName server02new -File 'C:\DHCP_IMP\server02.xml' -Leases -BackupPath 'C:\DHCP_BACKUP\SERVER02NEW' -ScopeOverwrite -force ---- ==== Проблема с неправильным 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} } {{tag>Microsoft WindowsServer DHCP}}