Настройка DHCP на Windows Server: шаг за шагом, без теории
Привет! Это Евгений Семенов, на связи АйТи Фреш. Знаете, вместо того чтобы углубляться в бесконечные теории, я сразу перейду к делу. Хочу поделиться, как мы — я и вся наша команда — обычно поднимаем DHCP-серверы для наших клиентов. Удивительно, но даже в 2026-м, при всем изобилии корпоративных решений, старый добрый Windows DHCP для меня остаётся бесспорным фаворитом. Особенно он хорош для сетей от 20 до 1000 рабочих мест. Это же минимум головной боли с экзотикой, зато максимум бесшовной интеграции с Active Directory. А это, согласитесь, всегда ключевой момент.
Подготовка: что проверить перед установкой
Вот новичок, что первым делом делает? Сразу лезет в Server Manager и жмет «Install Roles». Мы так не работаем. У меня другой подход: сначала железный чек-лист, и только потом начинается сама установка. Я придерживаюсь этого принципа с 2015 года, и поверьте, это не просто так. Он помогает избежать, наверное, 9 из 10 типичных проблем. Просто попробуйте!
- Итак, первое правило для вашего будущего DHCP-сервера: ему нужен строго статический IP. И ни в коем случае не включайте DHCP на его сетевом адаптере — это было бы странно, согласитесь?
- Время должно быть идеально синхронизировано с контроллером домена. Иначе что? Иначе Kerberos, наша любимая система авторизации, просто не даст вам войти. Представьте себе: секунда разницы — и доступ закрыт.
- Убедитесь, что на сетевом адаптере прописан правильный DNS-сервер. Он обязательно должен указывать на ваш контроллер домена (DC). Без этого никуда.
- Выбирайте имя тщательно. Оно должно быть согласованным: никаких пробелов, забудьте про кириллицу и никаких лишних точек, кроме того самого доменного суффикса. Немного строгих правил, но это сэкономит кучу нервов потом.
- Важно: сервер должен быть введён в домен. И это нужно сделать **до** того, как вы начнёте устанавливать на него какие-либо роли. Не перепутайте последовательность!
- Не забудьте про место на диске C:! Мы всегда рекомендуем минимум 40 ГБ. Причина проста: база dhcp.mdb со временем может разрастись очень сильно. Никто не хочет столкнуться с нехваткой места в самый неподходящий момент, верно?
Достаточно пропустить какую-то одну, казалось бы, совсем крохотную галочку — и все, жди беды. Гарантированно! Например, вдруг перестает работать регистрация клиентов в DNS. Или, что куда страшнее, пользователи просто не могут авторизоваться в Active Directory. А это уже совсем другая история.
Установка роли
Я лично всегда за PowerShell. Да, это просто невероятно удобно! Представьте: вы один раз написали команду, сохранили ее в репозитории. А потом, если вдруг что-то пойдет не так или нужно быстро развернуть на резервный сервер, просто одной строкой запускаете — и готово. Это же сколько времени и нервов экономит! Просто бесценно.
Install-WindowsFeature -Name DHCP -IncludeManagementTools
Add-DhcpServerSecurityGroup
Restart-Service dhcpserver
# Авторизация в Active Directory
Add-DhcpServerInDC -DnsName "dhcp-srv01.corp.fresh.ru" `
-IPAddress 10.10.0.20
# Завершение post-install
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\ServerManager\Roles\12" `
-Name ConfigurationState -Value 2
После всех настроек открываем консоль dhcpmgmt.msc. Если все ОК, увидите зеленый значок на сервере. А если значок вдруг красный, не паникуем: сразу идем в Event Viewer. Там, как правило, все подробно расписано. Прямым текстом, без загадок.
Создание первой области (scope)
Что такое Scope? По сути, это тот самый диапазон IP-адресов, который наш DHCP-сервер будет раздавать устройствам в конкретной подсети. И тут без вариантов: я их создаю всегда только скриптом. Даже когда настраиваю все с нуля в первый раз, делаю это исключительно через скрипт. И вот почему:
Add-DhcpServerv4Scope `
-Name "Main Office 10.10.10.0/24" `
-StartRange 10.10.10.100 `
-EndRange 10.10.10.240 `
-SubnetMask 255.255.255.0 `
-LeaseDuration (New-TimeSpan -Days 8) `
-State Active
Set-DhcpServerv4OptionValue -ScopeId 10.10.10.0 `
-Router 10.10.10.1 `
-DnsServer 10.10.0.10, 10.10.0.11 `
-DnsDomain "corp.fresh.ru"
Add-DhcpServerv4ExclusionRange -ScopeId 10.10.10.0 `
-StartRange 10.10.10.2 -EndRange 10.10.10.99
Диапазон от .2 до .99 мы всегда резервируем под инфраструктуру: это все наши коммутаторы, принтеры, серверы, IP-камеры. Пользователям же достаются адреса от .100 до .240. А что насчет .241–.254? Их я оставляю пустыми — на случай, если вдруг понадобятся аварийные резервирования. Мало ли что может случиться, лучше быть готовым.
Опции и резервирования
Для большинства базовых задач нам, как правило, хватает всего трех опций. Это 003 — наш шлюз, 006 — конечно же, DNS-сервер, и 015 — имя домена. Если же у клиента есть телефония или используется PXE-загрузка, мы обязательно добавляем еще 066 и 067. Все эти опции, которые я собрал в табличке ниже, прошли боевое крещение и работают в 90% наших проектов. Проверено на собственной практике!
| Номер | Назначение | Пример значения |
|---|---|---|
| 003 | Router | 10.10.10.1 |
| 006 | DNS Servers | 10.10.0.10, 10.10.0.11 |
| 015 | DNS Domain | corp.fresh.ru |
| 042 | NTP Servers | 10.10.0.10 |
| 066 | TFTP/Prov Server | ftp.corp.fresh.ru |
| 067 | Boot File | y000000000028.cfg |
Что касается резервирований, их мы делаем по MAC-адресам. В основном это касается сетевого оборудования и, конечно же, всех принтеров. Так точно ничего не потеряется:
Add-DhcpServerv4Reservation -ScopeId 10.10.10.0 `
-IPAddress 10.10.10.45 `
-ClientId "00-23-AC-F4-11-02" `
-Description "Kyocera TASKalfa 3253ci — Ресепшн"
DHCP Failover: отказоустойчивость без кластера
Failover в Windows Server — это удивительно простой, но при этом железобетонно надежный механизм. Два DHCP-сервера постоянно синхронизируют между собой Scope, все аренды и, конечно, опции. Если вдруг один из них выйдет из строя, второй моментально подхватывает работу. Клиенты вообще ничего не заметят. Никаких прерываний!
Add-DhcpServerv4Failover `
-ComputerName "dhcp-srv01" `
-PartnerServer "dhcp-srv02" `
-Name "FO-Office" `
-ScopeId 10.10.10.0 `
-SharedSecret "Strong$ecret!42" `
-LoadBalancePercent 50 `
-MaxClientLeadTime (New-TimeSpan -Hours 1)
У нас в ITFresh, к слову, своя инфраструктура построена на восьми мощных серверах Dell Xeon Platinum 8280. И вот для DHCP-сервиса мы держим целую failover-пару: это две виртуальные машины, которые живут на разных физических нодах. Между ними — 40-гигабитный Mellanox, так что синхронизация происходит просто мгновенно. Никаких задержек!
Кейс: проектная организация в Бутово, 52 сотрудника
Вот, вспоминается один случай, это был Март 2025 года. К нам обратилось одно проектное бюро. У них 52 сотрудника, офис раскинулся на трех этажах, а DHCP-сервис — вы не поверите! — крутился на стареньком L3-коммутаторе HP 2920. И главная головная боль: каждые две-три недели принтеры внезапно получали новые IP-адреса. Сотрудники, конечно, были на грани. Постоянные жалобы: «1С не печатает накладные!» — вот такое слышали каждый день.
Что мы сделали за один рабочий день:
- Недавно мы успешно развернули Windows Server 2022 Standard. Всё это происходило на виртуалке нашего клиента, которая была выделена с такими параметрами: 4 виртуальных процессора (vCPU) и 4 гигабайта оперативной памяти (RAM). Вполне достаточно для старта.
- Нам нужно было перенести все резервирования со старого HP на новенький Windows DHCP. Мы не стали делать это вручную! Сначала выгрузили все данные через команду `show` прямо на коммутаторе, а затем моментально импортировали их с помощью специально написанного скрипта. Быстро, без ошибок.
- Чтобы было удобнее управлять, мы разделили общий диапазон адресов. Теперь у нас есть выделенная инфраструктурная часть – это адреса с .2 по .99. А для пользователей зарезервирован диапазон с .100 по .240. Всё чётко и по полочкам, так гораздо логичнее, разве нет?
- Мы уже заглядываем в будущее! Специально добавили опции 066 и 067. Зачем? Чтобы наш предстоящий переход на IP-телефонию Yealink прошёл максимально гладко и без лишних танцев с бубном. Готовимся заранее!
- Теперь на L3-коммутаторе мы прописали `ip helper-address`, чтобы он чётко указывал на наш Windows DHCP. И, конечно же, сразу отключили встроенный DHCP на самом коммутаторе. Зачем нам два сервера, создающих хаос? Только один, главный!
Итого, наши работы обошлись им в 38 000 рублей. Зато теперь принтеры уже 13 месяцев работают как часы, без единой смены IP-адреса! А еще, пока мы настраивали DHCP, клиент заодно согласовал с нами переход на современную телефонию. И знаете что? Все нужные DHCP-опции для этого у них уже оказались на месте. Удобно же!
Мониторинг и обслуживание
База DHCP, которая уютно расположилась по адресу C:\Windows\System32\dhcp, без должного ухода рано или поздно просто обрастет мусором. Чтобы избежать этого беспорядка, мы используем специальный сервисный скрипт. Он настроен на автоматический запуск раз в неделю, и вот он-то и наводит там порядок. Всегда чистота!
# Резервное копирование
Backup-DhcpServer -ComputerName "dhcp-srv01" `
-Path "\\backup01\dhcp\dhcp-srv01-$(Get-Date -f yyyy-MM-dd)"
# Экспорт в XML — на случай перехода на новую версию
Export-DhcpServer -ComputerName "dhcp-srv01" `
-File "\\backup01\dhcp\dhcp-srv01-full.xml" -Leases -Force
# Очистка устаревших лизов
Invoke-Command -ComputerName "dhcp-srv01" -ScriptBlock {
Get-DhcpServerv4Scope | ForEach-Object {
Get-DhcpServerv4Lease -ScopeId $_.ScopeId |
Where-Object { $_.AddressState -eq "Declined" } |
Remove-DhcpServerv4Lease
}
}
И, конечно, куда без мониторинга! Мы используем Zabbix, он отслеживает число активных аренд и, что важно, количество свободных IP-адресов в каждом Scope. Как только занятость превышает 85%, дежурный администратор тут же получает алерт в Telegram. Это позволяет нам реагировать заранее, до того, как клиенты начнут испытывать проблемы с получением адресов. Всегда держим руку на пульсе.
Частые ошибки и их лечение
- Клиенты получают 169.254.x.x. Сервер не авторизован в AD или сеть не проходит. Проверяем
Get-DhcpServerInDCи ARP-таблицу на клиенте. - Регистрация в DNS не работает. Не включён динамический апдейт в свойствах scope, либо DHCP-сервер не член группы DnsUpdateProxy.
- Адреса уходят «в пустоту». Неправильный scope на чужом VLAN, или DHCP Relay смотрит не на тот адрес сервера.
- Failover рассинхронизирован.
Invoke-DhcpServerv4FailoverReplicationвозвращает состояние. Обычно лечится перезапуском службы на ведомом. - Служба не запускается после обновления Windows. Права на папку C:\Windows\System32\dhcp слетают раз в пятилетку — выставляем NETWORK SERVICE: Full Control.
Настроим DHCP и DNS в вашем офисе
Мы готовы провести аудит вашей сетевой адресации, разработать сегментацию VLAN, развернуть DHCP Windows Server с Failover, подключить мониторинг и взять на себя полное сопровождение. Работаем по Москве и области, а наше SLA – до 2 часов.
Телефон: +7 903 729-62-41
Telegram: @ITfresh_Boss
Семёнов Евгений Сергеевич, директор АйТи Фреш
FAQ — частые вопросы по DHCP Windows Server
- Сколько памяти и CPU нужно DHCP-серверу?
- Для офиса до 200 клиентов хватает 2 vCPU и 2 ГБ RAM. База лизов почти не ест ресурсы, главное — SSD под system32\dhcp.
- Почему клиенты получают адреса из старого диапазона?
- Скорее всего, у них ещё живая аренда. Сделайте ipconfig /release + /renew, проверьте ip helper-address на L3-коммутаторах.
- Можно ли собрать Failover из разных версий Windows Server?
- Microsoft поддерживает 2012 R2 и новее, но я советую обе ноды одного поколения. Меньше головной боли.
- Нужно ли открывать порты DHCP в firewall?
- UDP 67/68 открываются автоматически. Для Failover добавьте TCP 647 между парой серверов.
- Как выдать разные DNS для гостевой и рабочей сети?
- Разные scope с разными значениями опции 006. Гостевой — публичный DNS, рабочий — внутренний DC.
