DHCP-сервер в Windows Server автоматически раздаёт IP-адреса компьютерам в сети, избавляя администратора от ручной настройки сетевых параметров на каждом устройстве. Установка и базовая настройка занимают 15-20 минут, а экономят десятки часов работы.
Зачем нужен DHCP
Короче, вот ситуация. У вас 50 компов в офисе. Каждому нужен IP-адрес, маска подсети, шлюз по умолчанию, DNS-сервер. Без DHCP вы идёте к каждому компу и вбиваете эти параметры руками. Записываете, какой IP кому выдали, чтобы не было конфликтов. Пришёл новый сотрудник? Ищете свободный IP, настраиваете. Кто-то случайно поставил чужой IP? Сетевой конфликт, два компа не работают.
DHCP решает всё это автоматически. Компьютер включился, отправил запрос «дайте мне IP», DHCP-сервер выдал адрес из пула. Всё. Никаких конфликтов, никакой ручной работы.
Мой коллега Алексей работает в производственной компании (серверная на базе Dell PowerEdge R640 с двумя Xeon Silver 4214). До внедрения DHCP у них была Excel-таблица с IP-адресами. 200 строк. Половина неактуальна. Кто-то забыл записать, кто-то записал не тот адрес. Регулярно случались конфликты IP. После настройки DHCP эта таблица стала не нужна.
Как работает DHCP: процесс DORA
На самом деле, процесс получения IP-адреса состоит из четырёх шагов (DORA):
- Discover. Клиент отправляет широковещательный запрос: «Есть ли тут DHCP-сервер?»
- Offer. DHCP-сервер отвечает: «Я есть, вот тебе IP 192.168.1.115»
- Request. Клиент подтверждает: «Беру 192.168.1.115»
- Acknowledge. Сервер подтверждает: «Готово, этот IP твой на 8 дней»
Весь процесс занимает миллисекунды. Пользователь даже не замечает. Кстати, именно поэтому DHCP-сервер должен быть в той же подсети, что и клиенты (или нужен DHCP Relay на маршрутизаторе).
Установка роли DHCP
Тут такое дело. Установка элементарная.
# Устанавливаем роль DHCP-сервера
Install-WindowsFeature DHCP -IncludeManagementTools
# Авторизация DHCP-сервера в Active Directory
# Без этого шага DHCP не будет раздавать адреса в доменной сети
Add-DhcpServerInDC -DnsName "server01.company.local" -IPAddress 192.168.1.10
# Авторизация нужна для защиты от "левых" DHCP-серверов в сети
# Убираем флаг необходимости настройки (убирает жёлтый треугольник в Server Manager)
Set-ItemProperty -Path "HKLM:SOFTWAREMicrosoftServerManagerRoles12" `
-Name "ConfigurationState" -Value 2Авторизация в AD это важный шаг. Если честно, многие новички его пропускают и потом удивляются, почему DHCP не работает. В доменной среде неавторизованный DHCP-сервер молча отключается, чтобы не конфликтовать с другими. Это защита от ситуации, когда кто-то случайно поднял DHCP на своём ноутбуке и сломал всю сеть.
Настройка статического IP на самом DHCP-сервере
Вот в чём прикол: DHCP-сервер сам должен иметь статический IP-адрес. Он не может получать адрес от самого себя. Это первое, что нужно настроить до установки роли.
# Настраиваем статический IP на сервере
New-NetIPAddress -InterfaceAlias "Ethernet" `
-IPAddress 192.168.1.10 `
-PrefixLength 24 `
-DefaultGateway 192.168.1.1
# Настраиваем DNS
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" `
-ServerAddresses "192.168.1.10","192.168.1.11"На самом деле, это очевидный шаг, но новички его иногда пропускают. Сервер с динамическим IP, раздающий динамические IP, это рецепт для катастрофы. При перезагрузке сервер может получить другой адрес, и клиенты потеряют связь с DHCP.
Создание области (scope)
Область это пул IP-адресов, которые DHCP будет раздавать. Без области DHCP-сервер бесполезен.
# Создаём область для основной сети
Add-DhcpServerv4Scope `
-Name "Офисная сеть" `
-StartRange 192.168.1.100 `
-EndRange 192.168.1.250 `
-SubnetMask 255.255.255.0 `
-LeaseDuration 8.00:00:00 `
-State Active
# Диапазон 192.168.1.100-250 это 151 адрес
# Аренда 8 дней - стандартное значение для офисной сети
# Настраиваем параметры области
Set-DhcpServerv4OptionValue `
-ScopeId 192.168.1.0 `
-Router 192.168.1.1 `
-DnsServer 192.168.1.10 `
-DnsDomain "company.local"
# Router - это шлюз по умолчанию (ваш роутер)
# DnsServer - адрес DNS (обычно контроллер домена)На самом деле, адреса 192.168.1.1-99 мы оставили для статических устройств: серверы, принтеры, сетевое оборудование. Это хорошая практика. Грубо говоря, делим подсеть на две части: статическую и динамическую.
Исключения из диапазона
Бывает, что в динамическом диапазоне нужно исключить отдельные адреса (уже заняты статически):
# Исключаем адреса из выдачи
Add-DhcpServerv4ExclusionRange -ScopeId 192.168.1.0 `
-StartRange 192.168.1.200 -EndRange 192.168.1.210
# Адреса 200-210 DHCP не будет раздаватьВремя аренды: какое ставить
Знаете что? Время аренды зависит от типа сети:
| Тип сети | Рекомендуемая аренда | Почему |
|---|---|---|
| Офис (постоянные сотрудники) | 8 дней | Компьютеры включены каждый день, адрес продлевается автоматически |
| Гостевой Wi-Fi | 4-8 часов | Гости приходят и уходят, адреса освобождаются быстро |
| Кафе / коворкинг | 1-2 часа | Быстрый оборот устройств |
| Серверная VLAN | 30 дней | Серверы работают постоянно, частое обновление ни к чему |
Резервирование адресов
Некоторым устройствам нужен постоянный IP-адрес. Принтерам, серверам, IP-телефонам. DHCP позволяет зарезервировать адрес за конкретным устройством по MAC-адресу.
# Резервируем IP для сетевого принтера
Add-DhcpServerv4Reservation `
-ScopeId 192.168.1.0 `
-IPAddress 192.168.1.50 `
-ClientId "00-1A-2B-3C-4D-5E" `
-Name "Принтер бухгалтерии"
# ClientId - это MAC-адрес устройства
# Теперь принтер всегда будет получать 192.168.1.50
# Резервируем IP для IP-камеры
Add-DhcpServerv4Reservation `
-ScopeId 192.168.1.0 `
-IPAddress 192.168.1.51 `
-ClientId "AA-BB-CC-DD-EE-FF" `
-Name "Камера вход"
# Смотрим все резервации
Get-DhcpServerv4Reservation -ScopeId 192.168.1.0Вот в чём прикол: резервирование лучше статического IP на самом устройстве. Если устройство заменят, достаточно поменять MAC-адрес в резервации. А при статической настройке нужно лезть в настройки нового устройства. Плюс все резервации видны в одном месте на DHCP-сервере, а статические IP раскиданы по устройствам.
Настройка DHCP для нескольких VLAN
В крупных сетях используются VLAN-ы. Каждый VLAN, это отдельная подсеть, и DHCP должен обслуживать их все. Тут такое дело: DHCP-сервер может быть в одном VLAN, а обслуживать клиентов в других, но для этого на маршрутизаторе нужен DHCP Relay (ip helper-address).
# Создаём области для разных VLAN
# VLAN 10 - Офис
Add-DhcpServerv4Scope -Name "VLAN 10 - Офис" `
-StartRange 10.10.10.100 -EndRange 10.10.10.250 `
-SubnetMask 255.255.255.0 -State Active
# VLAN 20 - Бухгалтерия
Add-DhcpServerv4Scope -Name "VLAN 20 - Бухгалтерия" `
-StartRange 10.10.20.100 -EndRange 10.10.20.250 `
-SubnetMask 255.255.255.0 -State Active
# VLAN 30 - Гостевой Wi-Fi
Add-DhcpServerv4Scope -Name "VLAN 30 - Гости" `
-StartRange 10.10.30.100 -EndRange 10.10.30.250 `
-SubnetMask 255.255.255.0 -LeaseDuration 4:00:00 -State ActiveОтказоустойчивость DHCP
Один DHCP-сервер это точка отказа. Упал сервер, и через несколько часов (когда истечёт аренда) компьютеры начнут терять IP-адреса. В Windows Server есть встроенная отказоустойчивость DHCP:
# Настройка DHCP Failover (горячий резерв)
Add-DhcpServerv4Failover `
-Name "DHCP-Failover" `
-PartnerServer "server02.company.local" `
-ScopeId 192.168.1.0 `
-SharedSecret "SecretKey123!" `
-Mode HotStandby `
-ReservePercent 10
# Второй сервер будет держать 10% адресов в резерве
# Если основной упадёт, резервный подхватит раздачуЗнаете что? Настройка отказоустойчивости занимает 5 минут, а спасает от часов простоя. Всегда настраивайте, если есть второй сервер.
По факту, есть два режима отказоустойчивости: Hot Standby (один основной, один резервный) и Load Balance (оба раздают адреса, делят нагрузку 50/50). Для большинства компаний Hot Standby подходит лучше: проще, понятнее, меньше шансов что-то сломать.
Мониторинг и диагностика
# Посмотреть все выданные аренды
Get-DhcpServerv4Lease -ScopeId 192.168.1.0 | Format-Table IPAddress, HostName, ClientId
# Статистика области
Get-DhcpServerv4ScopeStatistics -ScopeId 192.168.1.0
# Покажет: всего адресов, выдано, свободно, процент использования
# Проверка здоровья DHCP
Get-DhcpServerv4Statistics
# Общая статистика сервера: запросы, подтверждения, отказы
# Найти конкретное устройство по MAC-адресу
Get-DhcpServerv4Lease -ScopeId 192.168.1.0 | Where-Object {$_.ClientId -like "*3C-4D-5E*"}Кстати, следите за процентом использования области. Если он приближается к 80%, пора расширять пул или создавать новую подсеть. Моя знакомая Наталья (она сисадмин в рекламном агентстве, сервер у них Supermicro на Xeon E-2236) как-то прозевала этот момент. Пул закончился, новые устройства не могли получить IP. А в агентстве постоянно подключаются ноутбуки фрилансеров. Ну и началось.
Дополнительные параметры DHCP (Options)
Кроме IP-адреса, маски и шлюза, DHCP может передавать клиентам десятки других параметров. Вот самые полезные:
# Option 66 - TFTP Boot Server (для PXE-загрузки)
Set-DhcpServerv4OptionValue -ScopeId 192.168.1.0 `
-OptionId 66 -Value "192.168.1.20"
# Option 67 - Boot file name (для PXE)
Set-DhcpServerv4OptionValue -ScopeId 192.168.1.0 `
-OptionId 67 -Value "bootx64wdsnbp.com"
# Option 44 - WINS Server (если ещё используете WINS)
Set-DhcpServerv4OptionValue -ScopeId 192.168.1.0 `
-OptionId 44 -Value "192.168.1.10"
# Option 252 - WPAD (автоматическая настройка прокси)
Set-DhcpServerv4OptionValue -ScopeId 192.168.1.0 `
-OptionId 252 -Value "http://proxy.company.local/wpad.dat"По факту, Option 66 и 67 критически важны для развёртывания Windows через WDS (Windows Deployment Services). Без них сетевая загрузка не работает. Если планируете ставить винду по сети на 50 компов, эти опции обязательны.
Бэкап и восстановление DHCP
DHCP-сервер хранит все настройки, области, резервации и аренды в базе данных. Потерять эти данные, значит перенастраивать всё с нуля.
# Бэкап DHCP-сервера
Backup-DhcpServer -Path "D:DHCP-Backup"
# Восстановление на новом сервере
Restore-DhcpServer -Path "D:DHCP-Backup"
# Экспорт конфигурации в XML (для документации)
Export-DhcpServer -File "D:dhcp-config.xml"На самом деле, Windows Server автоматически бэкапит DHCP каждые 60 минут в папку %SystemRoot%System32dhcpbackup. Но лучше не полагаться только на автобэкап. Настройте отдельную задачу в Task Scheduler для регулярного экспорта на внешний диск или сетевую папку.
Частые проблемы и их решение
Если честно, DHCP, одна из самых стабильных служб Windows Server. Но проблемы бывают.
- Клиент получает APIPA-адрес (169.254.x.x). DHCP-сервер недоступен. Проверьте, запущена ли служба, авторизован ли сервер в AD, нет ли проблем с сетью
- Конфликт IP-адресов. Кто-то прописал статический IP из DHCP-диапазона. Решение: используйте исключения или проверьте, нет ли «левого» DHCP-сервера в сети
- DHCP не обновляет DNS. Проверьте настройки: DHCP Properties > DNS tab > «Enable DNS dynamic updates». Должно быть включено
Логирование и аудит DHCP
Знаете что? Логи DHCP это бесценный инструмент при расследовании инцидентов. Когда безопасники спрашивают «какой IP был у компьютера в прошлый четверг в 15:00», DHCP-логи дают точный ответ.
# Включаем расширенное логирование DHCP
Set-DhcpServerAuditLog -Enable $true -Path "D:DHCP-Logs" -MaxMBFileSize 100
# Просмотр логов
Get-Content "D:DHCP-LogsDhcpSrvLog-Mon.log" | Select-String "Assign"По факту, логи DHCP хранят информацию о каждой выданной и освобождённой аренде. Кто получил IP, когда, с какого MAC-адреса. Для compliance и безопасности это обязательные данные.
А ещё DHCP-сервер требует лицензию Windows Server. На keytrust24.store есть ключи Windows Server Standard, которого более чем достаточно для DHCP. Ну и клиентские CAL-лицензии, но это отдельная тема.
Интеграция DHCP с DNS: динамическое обновление
Тут такое дело: DHCP и DNS вместе работают гораздо лучше, чем по отдельности. Когда DHCP выдаёт IP-адрес компьютеру, он может автоматически создать DNS-запись для этого компьютера. Это называется Dynamic DNS Update.
# Настройка динамического обновления DNS через DHCP
Set-DhcpServerv4DnsSetting -ScopeId 192.168.1.0 `
-DynamicUpdates "Always" `
-DeleteDnsRROnLeaseExpiry $true `
-UpdateDnsRRForOlderClients $true
# Проверяем настройки DNS для DHCP
Get-DhcpServerv4DnsSetting -ScopeId 192.168.1.0Вот в чём прикол: параметр DeleteDnsRROnLeaseExpiry удаляет DNS-запись, когда аренда истекает. Без этого параметра в DNS копятся устаревшие записи компьютеров, которых уже нет в сети. Через год в DNS будет мусор из сотен несуществующих записей. Короче, всегда включайте эту опцию.
Мой знакомый Олег, сисадмин в проектной организации (два сервера Dell PowerEdge T440), полгода не мог понять, почему некоторые компьютеры не видят друг друга по имени. Оказалось, DHCP не обновлял DNS-записи для старых клиентов (Windows 7 машины в цеху). Включил UpdateDnsRRForOlderClients, и проблема ушла. На самом деле, эта настройка критична для сетей со смешанным парком устройств.
Политики DHCP и фильтрация по MAC-адресам
Если честно, в корпоративной сети стоит контролировать, каким устройствам DHCP выдаёт адреса. Принёс сотрудник из дома ноутбук, подключил к сети и получил IP. А на ноутбуке вирусы. Знакомая ситуация?
# Включаем фильтрацию MAC-адресов на DHCP
Set-DhcpServerv4FilterList -Allow $true -Deny $true
# Добавляем MAC-адреса в разрешённый список (whitelist)
Add-DhcpServerv4Filter -List Allow -MacAddress "00-1A-2B-3C-4D-5E" -Description "Рабочая станция Иванов"
Add-DhcpServerv4Filter -List Allow -MacAddress "AA-BB-CC-DD-EE-FF" -Description "Ноутбук Петров"
# Проверяем списки фильтрации
Get-DhcpServerv4Filter -List AllowГрубо говоря, если включить Allow-список и добавить туда только корпоративные устройства, то случайные ноутбуки и телефоны не получат IP от DHCP. Строго, но безопасно.
DHCP это одна из тех вещей, которые настраиваются за полчаса и потом просто работают. Годами. Без вмешательства. Но когда DHCP ломается, ощущение такое, будто вся сеть умерла. Поэтому не забывайте про отказоустойчивость и мониторинг. Грубо говоря, потратив полчаса на настройку DHCP Failover и логирование, вы обеспечите себе спокойный сон на годы вперёд.



