Протокол DHCP (Dynamic Host Configuration Protocol) використовується для автоматичного призначення мережевих налаштувань (IP-адреса, маска підмережі, шлюз, DNS сервера і т.д.) пристроям у вашій мережі (комп’ютери, ноутбуки, сканери, принтери і т.д.). Також DHCP сервер дозволяє більш ефективно використовувати адресний простір, уникати конфлікту IP адрес у мережі та централізовано керувати параметрами мережі на клієнтських пристроях.
Встановлення ролі DHCP сервера у Windows Server 2019/2016
У цьому прикладі ми встановимо DHCP сервер на хості з Windows Server 2019 та IP адресою 192.168.13.4. Ви можете використовувати як Server Core версію, так і Full GUI. У невеликій інфраструктурі можна встановлювати DHCP сервер на сервер з участю контролера домену Active Directory.
Обов’язково призначте статичну IP-адресу серверу за участю DHCP сервер. При встановленні ролі DHCP з консолі PowerShell на сервері з автоматичним отриманням IP-адреси з’являється попередження:
Configure at least one static IP address on your computer before installing DHCP. WARNING: The following recommended condition is not met for DHCP: No static IP addresses were found on this computer. If the IP address changes, clients might not be able to contact this server. Please configure a static IP address before installing DHCP Server.
Встановити роль DHCP Server можна з консолі Server Manager (Add Roles and Features -> Server Roles).

Після встановлення ролі DHCP ролі необхідно виконати Post-Deployment Configuration. Для цього в консолі Server Manager клацніть повідомлення і виберіть Complete DHCP configuration.

Вам буде запропоновано аутентифікувати новий сервер DHCP в Active Directory (екран Authorization). Для авторизації DHCP сервера в AD обліковий запис повинен перебувати в доменній групі Enterprise Admins.
Якщо у вас немає прав на авторизацію DHCP в AD, ви можете вказати, щоб ваш сервер DHCP запускався без перевірки авторизації в домені:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\DHCPServer\Parameters" -Name DisableRogueDetection -Value 1 -Force

Також ви можете встановити і настроїти DHCP роль Windows Server з консолі PowerShell.
Встановлення ролі DHCP:
Install-WindowsFeature DHCP –IncludeManagementTools
Переконайтеся, що роль та інструменти керування RSAT-DHCP встановлено:
Get-WindowsFeature -Name *DHCP*| Where Installed

Авторизуйте DHCP сервер у Active Directory (вкажіть DNS ім’я сервера та IP адресу, яка буде використовуватися DHCP клієнтами):
Add-DhcpServerInDC -DnsName hq-dc01.contoso.com -IPAddress 192.168.13.4
Створіть локальні групи безпеки сервера DHCP:
Add-DhcpServerSecurityGroup
Щоб Server Manager перестав показувати повідомлення про те, що роль DHCP вимагає налаштування, виконайте команду:
Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\ServerManager\Roles\12 -Name ConfigurationState -Value 2
Перезапустіть службу DHCPServer:
Restart-Service -Name DHCPServer -Force
База даних та логи DHCP сервера знаходяться в каталозі %systemroot%\system32\dhcp
- dhcp.mdb – файл бази даних сервера DHCP‘;
- j50.log – транзакційний журнал (використовується при відновленні конфігурації DHCP);
- j50.chk – файл контрольної точки;
- tmp.edb – тимчасовий робочий файл DHCP-сервера.
Налаштування DHCP областей у Windows Server
Після встановлення ролі DHCP вам потрібно створити DHCP області (Scopes), які описують діапазони IP-адрес та інші налаштування, видані сервером клієнтам.
Для керування сервером DHCP використовується консоль dhcpmgmt.msc (ви можете керувати DHCP сервером локально або з віддаленого комп’ютера із встановленим RSAT). Запустіть консоль DHCP, розгорніть сервер -> IPv4.
Щоб створити нову область, виберіть New Scope.

Вкажіть назву області DHCP.

Вкажіть діапазон IP адрес, який буде видаватися цією областю та маску мережі. У цьому прикладі я хочу використовувати цю область DHCP для обслуговування підмережі 192.168.100.0/24. В рамках цієї мережі DHCP сервером призначатиметься динамічні IP адреси з діапазону 192.168.100.50 – 192.168.100.250. У наступному вікні можна додати винятки у цей діапазон (Add Exclusions and Delay).

Далі потрібно вказати тривалість оренди (Lease Duration) IP-адреси DHCP клієнтом (за замовчуванням 8 днів, міняти без особливої необхідності не потрібно).

Вкажіть, що ви хочете налаштувати додаткові параметри DHCP області.

Вкажіть IP адресу шлюзу в підмережі, яка має призначатися клієнтам (у нашому прикладі це 192.168.100.1).

Потім вкажіть ім’я домену та адреси серверів DNS, які будуть призначені клієнтам DHCP.

Залишилося активувати область DHCP (дозволити їй обслуговувати клієнтів).

DHCP сервер може видавати клієнтам різні настройки (крім IP адреси). Для цього використовують Scope Options.
У Windows Server DHCP можна настроїти глобальні параметри області або Scope Options для кожної області.

Раніше ми вже налаштували три опції області:
- 003 Router
- 006 DNS Server
- 015 DNS Domain Name
Можна додати інші параметри (NTP сервера, PXE і т.д.).
У розділі Server Options DHCP сервера можна налаштувати глобальні опції, які будуть успадковувати всі області. Але можна перевизначити глобальні налаштування в налаштуваннях кожної області (опції області мають пріоритет над опціями сервера).

Один сервер DHCP може обслуговувати сотні віддалених підмереж і VLAN. Тому ви можете створити кілька областей. Головне, щоб у кожній підмережі був налаштований ретранслятор (DHCP relay agent), який пересилає широкомовні DHCP-запити на вказаний DHCP сервер. У термінах Cisco DHCP ретранслятор називається ip helper. Ви можете настроїти DHCP Relay навіть на Windows Server.
Резервація IP адрес на DHCP сервері
За замовчуванням сервер DHCP видає клієнтам динамічні адреси. Це означає, що IP адреса у будь-якого клієнта може змінюватися. Якщо ви хочете, щоб певні пристрої завжди отримували від DHCP сервера ту саму адресу, ви можете його зарезервувати (наприклад, для мережних принтерів, які налаштовані у користувачів).
Для резервування DHCP виберіть область і перейдіть до розділу Reservation. У меню виберіть New Reservation.

При створенні резервації потрібно вказати IP-адресу, яку потрібно зберегти за клієнтом та його MAC-адресу (унікальне значення). MAC адресу Windows можна отримати з результатів команди ipconfig /all або за допомогою PowerShell: get-netadapter|select name,macaddress ). Опціонально можна вказати ім’я та опис пристрою.

Також ви можете зарезервувати поточну динамічну адресу за пристроєм, знайшовши її в розділі Address Leases. Клацніть на пристрій та виберіть Add to Reservation.

Настройка и управление DHCP сервером с помощью PowerShell
Усі операції з налаштування та керування сервером DHCP на Windows Server 2019/2016 можна виконувати з консолі PowerShell. Розглянемо основні команди керування DHCP. Для цього використовується модуль DHCPServer. Імпортуйте модуль у сесію:
Import-Module DHCPServer
Вивести повний список командлетів у моделі DHCP можна так:
Get-Command -Module DHCPServer
Наступна команда виведе список авторизованих DHCP серверів у Active Directory:
Get-DhcpServerInDC
Вивести список DHCP областей на вказаному сервері:
Get-DhcpServerv4Scope –ComputerName dc1-dhcp1
Якщо потрібно показати всі параметри області (Delay, Description, Name тощо):
Get-DhcpServerv4Scope –ComputerName dc1-dhcp1| FL *
Якщо потрібно відобразити дані про IPv6 областях:
Get-DHCPServerv6Scope
Отримати налаштування для конкретної області:
Get-DhcpServerv4Scope –ComputerName dc1-dhcp1 –ScopeID 10.10.1.0
Створимо нову (неактивну) область з діапазоном адрес з 192.168.113.50 до 192.168.113.250:
Add-DhcpServerv4Scope -Name “Test 192.168.113.0” -StartRange 192.168.113.50 -EndRange 192.168.113.250 -SubnetMask 255.255.255.0 -State InActive
Налаштувати наступні параметри DHCP сервера: DNS сервер, домен та адресу шлюзу за замовчуванням:
<code>Set-DhcpServerv4OptionValue -ScopeID 192.168.113.0 -DnsDomain contoso.com -DnsServer 192.168.13.4 -Router 192.168.113.1</code>
Додати винятки в DHCP область:
Add-DhcpServerv4ExclusionRange -ScopeID 192.168.113.0 -StartRange 192.168.113.90 -EndRange 192.168.113.100
Активувати область DHCP:
Set-DhcpServerv4Scope -ScopeID 192.168.113.0 -State Active
Для зручності можна використовувати таку команду PowerShell під час створення нової області:
$HashArgs = @{<br>'Name' = 'Office Scope';<br>'Description' = 'workstations';<br>'StartRange' = '192.168.140.10';<br>'EndRange' = '192.168.140.200';<br>'SubnetMask' = '255.255.255.0';<br>'State' = 'Active';<br>'LeaseDuration' = '1.00:00:00';<br>}<br>Add-DhcpServerv4Scope @HashArgs
Опції для DHCP сервера додається так (наприклад, WPAD):
Add-DhcpServerv4OptionDefinition -ComputerName dc1-dhcp1 -Name WPAD -OptionId 252 -Type String
Вивести список налаштованих опцій DHCP сервера можна так:
Get-DHCPServerv4OptionValue -ComputerName dc1-dhcp1 | Format-List
Виведемо список налаштованих параметрів зони:
Get-DHCPServerv4OptionValue -ComputerName dc1-dhcp1 -ScopeId 10.10.1.0 | Format-List
Показати поточний список орендованих адрес для області 10.10.1.0:
Get-DHCPServerv4Lease -ScopeId 10.10.1.0 -ComputerName dc1-dhcp1
Створити DHCP резервацію для клієнта, якому призначено динамічну IP адресу 10.10.1.88 (конвертувати видану адресу в зарезервовану):
Get-DhcpServerv4Lease -ComputerName dc1-dhcp1 -IPAddress 10.10.1.88| Add-DhcpServerv4Reservation -ComputerName dc1-dhcp1
Вимкнути область на сервері DHCP:
Set-DhcpServerv4Scope -ComputerName dc1-dhcp1-ScopeId 10.10.1.0-State InActive
Видалити область з сервера DHCP:
Remove-DHCPServerv4Scope -ComputerName dc1-dhcp1-ScopeId 10.10.1.0 -Force
Можливо отримати статистику DHCP сервера (кількість областей, резервацій, відсоток використання адрес та ін.).
Get-DhcpServerv4Statistics -ComputerName dc1-dhcp1
Аналогічну інформацію для конкретної області можна отримати за допомогою командлета Get-DhcpServerv4ScopeStatistics.
Конфігурацію DHCP сервера можна експортувати у вказаний XML файл за допомогою команди:
Export-DHCPServer -ComputerName dc1-dhcp1 -File C:\dhcp\dhcp-export.xml
В дальнейшем эти настройки DHCP сервера можно импортировать (перенести) на другой DHCP сервер:
Import-DHCPServer -ComputerName dc1-dhcp2 -File C:\dhcp\dhcp-export.xml -BackupPath C:\dhcpbackup\
