DHCP-сервер Windows Server: установка, области и управление из PowerShell
Привет! Я Евгений Семёнов, директор ITFresh. За свои пятнадцать лет в IT я поднял DHCP, кажется, почти в каждой московской подворотне. Шучу, конечно, но сотня офисов — это факт! Мы работали и с крошечными студиями на 12 мест, и с довольно серьёзными дистрибьюторами, где четыре VLAN и целая сотня IP-телефонов. Казалось бы, DHCP в Windows — ну что там сложного? Но на практике вокруг него столько подводных камней, что ни одна другая инфраструктурная служба рядом не стоит по количеству проблем. В этой статье я поделюсь, как мы в ITFresh ставим DHCP, чтобы никаких сюрпризов, а потом сопровождаем его с помощью хитрых скриптов.
Зачем вообще отдельный DHCP в офисе
Иногда поражаюсь: сколько компаний до сих пор живут на DHCP, который раздаёт обычный Keenetic или Mikrotik. Роутер стоит где-нибудь у входа, и все довольны. Пока у вас десяток сотрудников — вопросов нет. Но что происходит, как только появляется второй VLAN? Или, скажем, гостевая сеть? А если к этому добавить IP-телефонию или PXE-загрузку? Всё, роутер просто не справляется, он выдыхается. Вы ведь не сможете задать разные опции для разных scope, там нет резервирования по MAC-адресам, да и интеграция с DNS отсутствует как класс. Получается бардак.
Windows Server решает все эти задачи одной-единственной ролью. Мы выбираем его, потому что плюсы очевидны:
- Представьте, как удобно: все ваши области, все VLANы — под контролем из одной-единственной консоли! Никакого переключения, только централизованное управление.
- Забудьте про ручную регистрацию! DHCP автоматически пропишет арендованные адреса в DNS. Это значит, что ваши клиенты моментально станут доступны по имени. Очень удобно, не правда ли?
- Боитесь, что кто-то подключит «левый» DHCP-сервер? Мы об этом позаботились! В домене эта служба просто не сможет запуститься без авторизации в Active Directory. Ваша сеть надёжно защищена.
- Надоел страх, что DHCP «упадёт»? У нас есть DHCP Failover! Это значит, два сервера работают синхронно, будь то в режиме Hot Standby для мгновенного переключения или Load Balance для равномерного распределения нагрузки. Никаких простоев!
- Не нужно изобретать велосипед! У нас уже есть сотни готовых опций. Мы говорим про PXE, автопровижининг VoIP-телефонов и даже автоматическое обнаружение VoIP VLAN. Это просто сказка для сисадмина!
И знаете, что самое классное? При всех своих невероятных возможностях эта роль абсолютно неприхотлива к ресурсам. Возьмём продакшн-сервер: там 600 активных лизов, и что? DHCP занимает всего 80–120 МБ памяти. Просто чудо!
Что спланировать до установки
Самая частая ошибка, которую мы видим у новичков, — это подход «поставим DHCP, а там разберёмся». Я же всегда трачу минимум полчаса, чтобы набросать подробный план на бумаге. Правда, это бесценно! Без такого черновика вы рискуете уже через месяц получить на выходе пересекающиеся scope, полное отсутствие резервирования и ворох непонятных опций. А кому это нужно?
| Параметр | Что решаем | Типовое значение |
|---|---|---|
| Подсеть/маска | Куда выдаём адреса | 192.168.10.0/24 — офис, 192.168.20.0/24 — Wi-Fi |
| Диапазон scope | Какие IP раздавать | .50–.200, фиксированная инфраструктура — .1–.49 |
| Срок аренды | Как часто продлевать | 8 дней — офис, 4 часа — гости |
| DNS-серверы | Опция 006 | Два DC с AD-интегрированной зоной |
| Шлюз | Опция 003 | IP маршрутизатора VLAN |
| Опция 066/067 | TFTP-образ для PXE/IP-тел. | Адрес и путь до prov-файла |
Если у вас сложная сеть, где несколько VLAN, мой однозначный совет: сразу делайте отдельный scope для каждого. И, пожалуйста, не забудьте про DHCP Relay (или ip helper-address) на ваших коммутаторах L3. Это гораздо изящнее, чем изобретать велосипед с какими-то Super Scope.
Установка роли DHCP через PowerShell
Всё устанавливается одной командой. На изолированном сервере я обычно делаю так:
Install-WindowsFeature DHCP -IncludeManagementTools
Add-DhcpServerSecurityGroup
Restart-Service dhcpserver
# Авторизуем сервер в AD
Add-DhcpServerInDC -DnsName "dhcp01.corp.example.ru" -IPAddress 192.168.1.10
# Подтверждаем выполнение пост-инсталл шага
Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\ServerManager\Roles\12 `
-Name ConfigurationState -Value 2
Кстати, последняя строка убирает из Server Manager тот противный жёлтый значок «Configuration required». Многие его просто игнорируют, а потом при перезагрузке забывают авторизовать сервер в домене. Вот такая мелочь, а сколько проблем потом!
Создание scope и нужных опций
Конечно, scope можно создать и через консоль dhcpmgmt.msc. Но если речь идёт о повторяемых инсталляциях, я лично предпочитаю работать со скриптами. Так документ проекта буквально за секунды превращается в готовый рабочий код. Это безумно удобно, экономит кучу времени.
# Офисная сеть 192.168.10.0/24
Add-DhcpServerv4Scope `
-Name "Office LAN" `
-StartRange 192.168.10.50 `
-EndRange 192.168.10.200 `
-SubnetMask 255.255.255.0 `
-LeaseDuration (New-TimeSpan -Days 8) `
-State Active
# Опции на scope
Set-DhcpServerv4OptionValue -ScopeId 192.168.10.0 `
-Router 192.168.10.1 `
-DnsServer 192.168.1.10, 192.168.1.11 `
-DnsDomain "corp.example.ru"
# Опция 066 и 067 — для IP-телефонов Yealink
Set-DhcpServerv4OptionValue -ScopeId 192.168.10.0 `
-OptionId 66 -Value "ftp.corp.example.ru"
Set-DhcpServerv4OptionValue -ScopeId 192.168.10.0 `
-OptionId 67 -Value "y000000000028.cfg"
На моей практике есть золотое правило: перед запуском scope я всегда пропинговываю весь диапазон по ICMP. Зачем? Чтобы случайно не раздать IP-адрес, который уже занимает какой-нибудь старенький принтер со статикой из прошлой жизни. Представляете, потом искать, кто кому мешает?
Резервирование IP и исключения
Резервирование мы используем для всего, что должно иметь постоянный IP в пределах scope, но при этом не выводится из DHCP. Возьмём, к примеру, наши корпоративные МФУ — Kyocera или Samsung. Если их IP-адрес вдруг поменяется, печать из 1С просто встанет. Кому это нужно? Никому!
Add-DhcpServerv4Reservation -ScopeId 192.168.10.0 `
-IPAddress 192.168.10.35 `
-ClientId "00-25-B3-44-AA-BB" `
-Description "МФУ Kyocera ресепшн"
# Исключить адреса, занятые статикой
Add-DhcpServerv4ExclusionRange -ScopeId 192.168.10.0 `
-StartRange 192.168.10.2 -EndRange 192.168.10.49
Один раз, это было в 2024 году, я не исключил диапазон .2–.49. И что вы думаете? Два маршрутизатора получили адреса, которые уже стояли на коммутаторе. Весь офис лег на 40 минут. С тех пор исключения прописываю исключительно до активации scope, никогда после. Урок усвоен!
DHCP Failover: зачем и как настраивать
Один-единственный DHCP-сервер — это, по сути, бомба с часовым механизмом. Представьте себе: виртуалка падает, и что дальше? Новые сотрудники не могут даже в домен войти, ведь они просто не получили IP-адрес. Катастрофа! Но с функцией DHCP Failover, которая появилась в Windows Server 2012 и всех последующих версиях, эта проблема решается очень элегантно, без всяких сложных «плясок» с кластером.
Add-DhcpServerv4Failover `
-ComputerName "dhcp01.corp.example.ru" `
-PartnerServer "dhcp02.corp.example.ru" `
-Name "FO-Office" `
-ScopeId 192.168.10.0, 192.168.20.0 `
-SharedSecret "S#перСекретAyT1fresh" `
-LoadBalancePercent 50 `
-MaxClientLeadTime (New-TimeSpan -Hours 1) `
-AutoStateTransition $true `
-StateSwitchInterval (New-TimeSpan -Minutes 60)
Для большинства офисов мы выбираем режим Load Balance 50/50: оба сервера активно работают, обслуживая клиентов. Если один вдруг упадёт, второй моментально подхватит весь трафик. А вот в сетях, где есть один основной и один «холодный» резерв, мы ставим Hot Standby с коэффициентом 80/20. Каждому своё.
Кейс: холдинг в Северном Бутово, 4 VLAN, 180 устройств
Вспомните август 2025 года. К нам тогда обратилась одна торговая компания из Северного Бутово. У них четыре филиала, около 180 устройств, Wi-Fi, IP-телефония Yealink, и, конечно, PXE-загрузка для тонких клиентов HP. До того, как мы пришли, за DHCP отвечал Mikrotik. И вот что там творилось: гостевая сеть постоянно получала адреса из рабочего VLAN, а телефоны вечно не могли автоматически подтянуть прошивку. Сплошной хаос!
Что мы сделали за две рабочие смены:
- Мы развернули две виртуалки с Windows Server 2022 Standard. Разместили их, конечно, на наших собственных серверах Dell с топовыми Xeon Platinum 8280, прямо в современном дата-центре МТС. Надёжность и производительность — это про нас!
- Затем мы создали четыре отдельных scope. Каждый под свой VLAN: 10 для офиса, 20 для Wi-Fi, 30 для голосового трафика и 40 для PXE. Порядок во всём!
- Для нашего голосового VLAN 30 мы сделали кое-что особенное. Настроили опцию 066, указав адрес FTP-сервера для автоматического провижена. А ещё добавили опцию 43 с тегом голосового VLAN. Зачем? Чтобы телефоны переключались сами, без вашего участия! Разве это не магия?
- Конечно, мы сразу же включили DHCP Failover! Выбрали режим Load Balance с распределением 50/50 между двумя серверами. Максимальная отказоустойчивость и равномерная нагрузка — вот что это даёт.
- И, конечно, чтобы вы спали спокойно, мы настроили ежедневное резервное копирование. База DHCP выгружается раз в сутки с помощью Export-DhcpServer прямо в общий сетевой шар. Так что ваша критически важная информация всегда будет в безопасности.
Знаете, во сколько это обошлось клиенту? Всего 95 000 рублей. А вот что действительно круто: за полгода после внедрения не было ни минуты простоя! И самое приятное — время на регистрацию нового телефона с нуля сократилось с 20 минут ручной настройки до каких-то 90 секунд. Телефон просто загружается и сам подхватывает все нужные prov-файлы. Фантастика, правда?
Мониторинг и резервное копирование
Что, если вдруг откажет сервер DHCP, а у вас нет бэкапа? Все ваши резервирования и настройки scope просто пропадут! Это серьёзный риск, особенно при фатальном сбое. Но не беда: в Windows Server есть встроенная команда, которая позволяет экспортировать абсолютно всё — да-да, всю базу — прямо в XML. Очень удобно!
# Еженедельный бэкап
Export-DhcpServer -ComputerName "dhcp01" `
-File "\\backup\dhcp\dhcp01-$(Get-Date -Format yyyy-MM-dd).xml" `
-Leases -Force
# Восстановление на новом сервере
Import-DhcpServer -ComputerName "dhcp01-new" `
-File "\\backup\dhcp\dhcp01-2025-11-20.xml" `
-BackupPath "C:\dhcp-restore" -Leases -ScopeOverwrite -Force
Мы мониторим DHCP, отслеживая всего два простых, но важных счётчика: сколько активных аренд и на сколько процентов заполнен scope. Наша система (будь то Zabbix или PRTG) подключается через WMI и сразу же шлёт тревожное сообщение в Telegram, если заполнение scope достигло 85%. Поверьте, это не раз спасало нас от криков типа «у нас в офисе у всех пропал интернет!» прямо посреди рабочего дня.
Типичные ошибки, которые вижу в чужих сетях
- DHCP на контроллере домена. Так делают, потому что «экономим лицензию». Но перевод роли DC, повышение/понижение и миграция становятся адскими.
- Один большой scope на /16. Диагностика broadcast-шторма в такой сети — отдельный вид спорта.
- Опция DNS указывает на провайдерский 8.8.8.8. При наличии AD клиенты не разрешают внутренние имена.
- Нет резервирования MFU и сетевой техники. Через месяц принтер получает новый IP, и все сотрудники снова добавляют его вручную.
- Scope активен без DHCP Failover. Отказ сервера = весь офис стоит.
- Журналы DHCP не ротируются. Спустя год C:\Windows\System32\dhcp раздувается до десятков ГБ.
Развернём DHCP и приведём в порядок IP-адресацию
Мы можем быстро поднять DHCP на Windows Server 2019 или 2022, расписать детальный план адресации, настроить Failover и, конечно, интеграцию с AD DNS. А ещё привяжем вашу IP-телефонию Yealink или Grandstream через опции 066/067, чтобы всё работало как часы. Работаем мы по Москве и МО, готовы выехать к вам в течение 2–4 часов, а удалённое сопровождение обеспечим по SLA.
Телефон: +7 903 729-62-41
Telegram: @ITfresh_Boss
Семёнов Евгений Сергеевич, директор АйТи Фреш
FAQ — частые вопросы по DHCP Windows Server
- Нужно ли ставить DHCP на контроллер домена?
- Формально можно, но я так давно не делаю. Правильнее держать DHCP на отдельном инфраструктурном сервере и поднимать второй узел для DHCP Failover.
- Как избежать конфликта IP с «левым» DHCP-сервером?
- В домене не авторизованный в AD DHCP-сервер Windows не начнёт выдавать адреса. Для неофициальных роутеров поможет DHCP Snooping на управляемом коммутаторе.
- Какой срок аренды оптимален для офиса?
- Обычно 8 суток. Для гостевой сети и Wi-Fi — 2–4 часа. Для инфраструктурных scope с редкими изменениями — 30 суток.
- Для чего настраивать опцию 066 и 067?
- Эти опции передают клиенту адрес TFTP-сервера и путь к загрузочному файлу. Используются для PXE и автопровижна IP-телефонов.
- Сохранит ли DHCP аренды при перезагрузке?
- Да, база dhcp.mdb в C:\Windows\System32\dhcp сохраняет состояние. После ребута служба встаёт за 10–30 секунд. Резервную копию делайте через Export-DhcpServer.
