===== 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}}