The Magician

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
microsoft_dhcp_server [2025/12/15 14:21] – created jpmicrosoft_dhcp_server [2026/01/29 14:12] (current) jp
Line 1: Line 1:
 ===== Microsoft DHCP Server ===== ===== 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// для перезаписи уже существующих областей.
 +
 +Пример:
 +
 +<code>
 +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
 +</code>
 +
 +----
 +==== Проблема с неправильным ip-адресом сервера партнёра по DHCP-failover и принудительное удаление отношений репликации DHCP ====
 +
 +В отношениях репликации одной из областей DHCP была обнаружена следующая проблема: репликация работала только в одну сторону - с одного сервера на другой, но не обратно. 
 +При этом: на втором сервере, откуда репликация не работала - адрес сервера-партнёра по какой-то причине отображался в формате 169.254.*.* и не был правильным.
 +Любые действия, связанные с DHCP-failover проблемной области - происходили очень медленно, вероятно, из-за обращения по несуществующему адресу. 
 +Скорее всего, ошибка связана с неправильной конфигурацией интерфейсов, когда на сервере был включен интерфейс без заданного адреса.
 +
 +Решение: пересоздать отношения репликации. Однако, из mmc-оснастки это может не работать, консоль может выдавать ошибку: ''dhcp server in not running on target computer''
 +В этом случае поможет команда powershell, которая удаляет отношения с ключом force. Её можно запустить на первом, основном dhcp-сервере. Названия отношений можно посмотреть в свойстве dhcp-области.
 +
 +<code>
 +Remove-DhcpServerv4FailoverScope -Name dc01.domain.local -ScopeId 10.10.10.0, 172.16.10.0 -force
 +</code>
 +
 +----
 +==== 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//. Весь перечень выполняемых команд следующий:
 +
 +<code>
 +netsh
 +dhcp
 +server \\dhcpserver
 +scope 10.88.88.0
 +show reservedip
 +delete reservedip 10.88.88.100 f0-18-98-ba-9d-e2-
 +</code>
 +
 +После выполнения данной команды - новое резервирование успешно создалось. 
 +
 +----
 +==== Поиск резервирования с помощью PowerShell ====
 +
 +При помощи такого скрипта можно выполнить поиск MAC-адреса во всех резервированиях.
 +
 +<code>
 +$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}
 +}
 +</code>
 +{{tag>Microsoft WindowsServer DHCP}}
microsoft_dhcp_server.1765808488.txt.gz · Last modified: by jp