The Magician

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
microsoft_dhcp_server [2025/12/22 07:31] jpmicrosoft_dhcp_server [2026/02/06 12:27] (current) jp
Line 1: Line 1:
 ===== Microsoft DHCP Server ===== ===== Microsoft DHCP Server =====
  
-==== Экспорт конфигурации с арендами ====+==== Экспорт и импорт конфигурации с арендами ====
  
 Для экспорта - запустить на DHCP-сервере: Для экспорта - запустить на DHCP-сервере:
  
   Export-DhcpServer -ComputerName dhcp_server -File C:\DHCP\dc1_dhcp.xml -Leases   Export-DhcpServer -ComputerName dhcp_server -File C:\DHCP\dc1_dhcp.xml -Leases
 +:!: Командлет может быть использован для выгрузки конфигурации с удаленного сервера.
 +
 Для импорта запускаем: Для импорта запускаем:
  
   Import-DhcpServer -ComputerName dhcptest -File 'C:\DHCP\dc1_dhcp.xml' -Leases   Import-DhcpServer -ComputerName dhcptest -File 'C:\DHCP\dc1_dhcp.xml' -Leases
 После выполнения командлет спросит параметр //BackupPath//, можно указать какую-либо временную папку для резервного копирования.  После выполнения командлет спросит параметр //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>
  
 ---- ----
Line 31: Line 47:
 Репликация резервирования не происходит автоматически по умолчанию, даже при настроенном DHCP-failover. Для периодической репликации можно использовать скрипт, который будет запускаться по планировщику и выполнять одну команду: Репликация резервирования не происходит автоматически по умолчанию, даже при настроенном DHCP-failover. Для периодической репликации можно использовать скрипт, который будет запускаться по планировщику и выполнять одну команду:
  
-  Invoke-DhcpServerv4FailoverReplication -ComputerName dhcp_partner -force+  Invoke-DhcpServerv4FailoverReplication -ComputerName dhcp_server -force 
 +:!: **ВАЖНО.** В качестве //dhcp_server// мы указываем имя DHCP-сервера, С КОТОРОГО мы хотим инициировать репликацию. Если мы обновляем резервирования, аренды и пр. на основном сервере, а укажем здесь сервер-партнёр - получим перезаписанные отсутствующие данные на основном сервере. 
  
 ---- ----
Line 43: Line 60:
 ==== DHCP и netsh ==== ==== DHCP и netsh ====
  
-Иногда в решении проблем, связанных с DHCP может помочь команда //netsh//+Иногда в решении проблем, связанных с DHCPможет помочь команда //netsh//
  
 Пример проблемы: на DHCP сервере не удавалось добавить один из MAC-адресов. DHCP сервер при попытке добавления одного из MAC-адресов выводил одну из двух следующих ошибок: Пример проблемы: на DHCP сервере не удавалось добавить один из MAC-адресов. DHCP сервер при попытке добавления одного из MAC-адресов выводил одну из двух следующих ошибок:
Line 49: Line 66:
   Specified address is not available   Specified address is not available
   This address is already in use   This address is already in use
-При этом, дело было не в IP-адресе, а именно в MAC, т.к. с другим MAC DHCP зарезервировать адрес давал. Осмотр таблицы резервирования\аренд вручную и при помощи скрипта не показал результатов, в которых бы добавляемый MAC где-либо существовал. А вот та же самая операция, выполненная с помощью //netsh// как раз показала, что MAC-адрес, который мы добавляем уже присвоен одному клиенту с другим адресом. +При этом, дело было не в IP-адресе, а именно в MAC, т.к. с другим MAC DHCP зарезервировать адрес давал. Осмотр таблицы резервирования\аренд вручную и при помощи скрипта (ниже в данной статье) не показал результатов, в которых бы добавляемый MAC где-либо существовал. А вот та же самая операция, выполненная с помощью //netsh//как раз показала, что MAC-адрес, который мы добавляем уже присвоен одному клиенту с другим адресом. 
  
-:!: Интересно, что при этом, просмотр свойств резервирования через MMC-консоль управления DHCP показывал СОВЕРШЕННО ДРУГОЙ MAC адрес в свойствах. +:!: Интересно, что просмотр свойств резервирования через MMC-консоль управления DHCP показывал СОВЕРШЕННО ДРУГОЙ MAC адрес в свойствах. 
  
 Для решения проблемы помогло удаление проблемного резервирования с помощью команды //netsh//. Весь перечень выполняемых команд следующий: Для решения проблемы помогло удаление проблемного резервирования с помощью команды //netsh//. Весь перечень выполняемых команд следующий:
Line 65: Line 82:
  
 После выполнения данной команды - новое резервирование успешно создалось.  После выполнения данной команды - новое резервирование успешно создалось. 
-{{tag>Microsoft WindowsServer DHCP}}+ 
 +---- 
 +==== Поиск резервирования с помощью 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> 
 + 
 +---- 
 +==== Логи DHCP ==== 
 + 
 +Логирование DHCP устанавливается в настройках области DHCP-сервера. Пример: 
 +;#; 
 +{{:ms:windows_dhcp_ipv4_logs.jpg|}} 
 +;#; 
 + 
 +Логи ведутся семь дней, затем перезаписываются. Файлы логов по дням недели расположены здесь, пример: 
 + 
 +  C:\Windows\System32\dhcp\DhcpSrvLog-Mon.log 
 +  C:\Windows\System32\dhcp\DhcpSrvLog-Sun.log 
 +В логах можно найти сведения об арендах и других событиях. Первое число в строке - код конкретного события (в данном случае - //11//).  
 + 
 +  11,02/05/26,14:14:10,10.121.50.183,,2432AE875AFD,,1823127636,0,,,,0x756468637020302E392E392D707265,udhcp 0.9.9-pre,,,,
 +Ниже - описание типичных кодов. 
 + 
 +<code> 
 +Event ID  Meaning 
 +00 The log was started. 
 +01 The log was stopped. 
 +02 The log was temporarily paused due to low disk space. 
 +10 A new IP address was leased to a client. 
 +11 A lease was renewed by a client. 
 +12 A lease was released by a client. 
 +13 An IP address was found to be in use on the network. 
 +14 A lease request could not be satisfied because the scope's address pool was exhausted. 
 +15 A lease was denied. 
 +16 A lease was deleted. 
 +17 A lease was expired and DNS records for an expired leases have not been deleted. 
 +18 A lease was expired and DNS records were deleted. 
 +20 A BOOTP address was leased to a client. 
 +21 A dynamic BOOTP address was leased to a client. 
 +22 A BOOTP request could not be satisfied because the scope's address pool for BOOTP was exhausted. 
 +23 A BOOTP IP address was deleted after checking to see it was not in use. 
 +24 IP address cleanup operation has began. 
 +25 IP address cleanup statistics. 
 +30 DNS update request to the named DNS server. 
 +31 DNS update failed. 
 +32 DNS update successful. 
 +33 Packet dropped due to NAP policy. 
 +34 DNS update request failed.as the DNS update request queue limit exceeded. 
 +35 DNS update request failed. 
 +36 Packet dropped because the server is in failover standby role or the hash of the client ID does not match. 
 +50+ Codes above 50 are used for Rogue Server Detection information. 
 +</code> 
 +{{tag>Microsoft WindowsServer DHCP Networking}}
microsoft_dhcp_server.1766388680.txt.gz · Last modified: by jp