Осень 2024 года. Нас вызвали в торговую компанию на юге Москвы — оптовая продажа стройматериалов, 50 компьютеров, три этажа офисного здания. Жалоба звучала так: «Евгений, у нас интернет постоянно пропадает, каждый день кто-то не может выйти в сеть, 1С отваливается, менеджеры не могут выписывать накладные». Приехали, открыли настройки сетевых адаптеров на первых трёх компьютерах — и всё стало понятно. IP-адреса прописаны вручную. На бумажке у сисадмина список: «Иванова — 192.168.1.15, Петров — 192.168.1.16...». Список заканчивался на 40-м сотруднике. Остальные десять получили адреса «на глазок». Три компьютера сидели на одинаковом IP — 192.168.1.25. Отсюда и конфликты, и отвалы.

Мы подняли DHCP-сервер на их Windows Server 2022 за два часа. Настроили область, исключения для принтеров и серверов, резервирования для бухгалтерии. С того дня — ни одного звонка по теме «интернет пропал». Экономия времени сисадмина — часов пять в неделю, которые он раньше тратил на ручную раздачу адресов новым сотрудникам.

DHCP — это одна из тех вещей, которые «просто работают», когда настроены правильно. Но если настроены криво или не настроены вовсе — головная боль обеспечена. В этой статье я расскажу, как сделать правильно. С конкретными шагами, командами PowerShell и разбором типичных проблем. Всё из реальной практики.

Что такое DHCP и зачем он нужен в офисе

DHCP — Dynamic Host Configuration Protocol. Протокол, который автоматически раздаёт IP-адреса устройствам в сети. Вместо того чтобы лезть в настройки каждого компьютера и вбивать адрес руками, вы один раз настраиваете сервер, а дальше всё происходит само.

Как это работает на пальцах. Новый компьютер подключается к сети и кричит в эфир: «Эй, кто тут раздаёт адреса?» (DHCP Discover). Сервер отвечает: «Я! Вот тебе адрес 192.168.1.50, шлюз 192.168.1.1, DNS-сервер 192.168.1.10, пользуйся 8 дней» (DHCP Offer → Request → Acknowledge). Четыре пакета — и компьютер в сети. Без звонков сисадмину, без бумажек с адресами.

Зачем это в офисе? Объясняю на цифрах:

Из практики: В каждой второй компании, куда мы приходим на аудит, DHCP либо не настроен, либо раздаётся роутером. Домашний роутер TP-Link Archer C6 в роли DHCP для офиса на 40 человек — это не редкость, а, к сожалению, норма. Работать будет, но без резервирований, без логов, без отказоустойчивости. А когда роутер зависнет — вся сеть встанет.

Установка роли DHCP Server

Итак, у вас есть Windows Server. Подойдёт 2016, 2019, 2022 или 2025 — процесс одинаковый. Сервер должен иметь статический IP-адрес. Это важно: DHCP-сервер сам не может получать адрес по DHCP. Звучит очевидно, но я видел и такое.

Допустим, наш сервер имеет адрес 192.168.1.10, маска 255.255.255.0, шлюз 192.168.1.1. Сеть — 192.168.1.0/24.

Через Server Manager

Классический способ через графический интерфейс. Подходит тем, кто любит мышку.

  1. Откройте Server Manager (он запускается автоматически при входе)
  2. Нажмите Add roles and features (или Управление → Добавить роли и компоненты в русской версии)
  3. В мастере кликайте Next до шага Server Roles
  4. Поставьте галочку напротив DHCP Server
  5. Появится окно с зависимостями — нажмите Add Features
  6. Жмите Next до конца и нажмите Install
  7. Дождитесь завершения. Перезагрузка не требуется

После установки в Server Manager появится жёлтый флажок с предупреждением. Нажмите на него и выберите Complete DHCP configuration. Мастер создаст группы безопасности DHCP Administrators и DHCP Users и, если сервер в домене, авторизует его в Active Directory.

Важно: Если сервер входит в домен, DHCP обязательно нужно авторизовать в Active Directory. Без этого сервер обнаружит, что он неавторизован, и откажется выдавать адреса. Это защитный механизм — Microsoft не хочет, чтобы случайный сервер начал раздавать адреса в доменной сети.

Через PowerShell

Для тех, кто ценит скорость. Одна команда вместо семи кликов:

Install-WindowsFeature DHCP -IncludeManagementTools

Всё. Роль установлена, консоль управления — тоже. Теперь авторизация в AD (если сервер в домене):

Add-DhcpServerInDC -DnsName dc01.company.local -IPAddress 192.168.1.10

И создание групп безопасности:

netsh dhcp add securitygroups
Restart-Service dhcpserver

Убираем жёлтый флажок в Server Manager (он раздражает, а мы уже всё сделали):

Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\ServerManager\Roles\12" -Name "ConfigurationState" -Value 2

Четыре команды — и DHCP-сервер готов к настройке области. На практике я всегда использую PowerShell: быстрее, воспроизводимо, можно сохранить как скрипт для следующего сервера.

Создание области (Scope)

Область (scope) — это диапазон IP-адресов, которые сервер будет раздавать клиентам. Без области DHCP-сервер как магазин без товара — стоит, работает, но выдать нечего.

Диапазон адресов

Для нашей сети 192.168.1.0/24 нужно определить, какие адреса пойдут клиентам. Вся подсеть — 254 адреса (от .1 до .254). Но раздавать все нельзя — нужно оставить место для серверов, принтеров, коммутаторов и прочего оборудования со статическими адресами.

Мой стандартный подход, который я использую уже лет десять:

Создаём область через консоль DHCP:

  1. Откройте DHCP из меню Tools в Server Manager (или dhcpmgmt.msc)
  2. Разверните сервер, кликните правой кнопкой по IPv4New Scope
  3. Имя области: Office-LAN (или как вам удобно, но лучше осмысленное название)
  4. Начальный IP: 192.168.1.50, конечный: 192.168.1.249
  5. Маска: 255.255.255.0 (длина префикса 24)
  6. Срок аренды: 8 дней (для стационарных офисных компьютеров это оптимально)
  7. Нажмите Yes, I want to configure these options now

Через PowerShell это одна команда:

Add-DhcpServerv4Scope -Name "Office-LAN" `
  -StartRange 192.168.1.50 `
  -EndRange 192.168.1.249 `
  -SubnetMask 255.255.255.0 `
  -LeaseDuration 8.00:00:00 `
  -State Active

Исключения (принтеры, серверы)

Исключения — это адреса внутри диапазона, которые DHCP не будет выдавать. Зачем? Допустим, у вас принтер Kyocera ECOSYS M2040dn стоит на адресе 192.168.1.55 (кто-то когда-то так настроил). Переносить его на другой адрес — значит перенастраивать печать на всех компьютерах. Проще добавить исключение.

Add-DhcpServerv4ExclusionRange -ScopeId 192.168.1.0 `
  -StartRange 192.168.1.55 -EndRange 192.168.1.55

Можно исключать диапазоны. Например, если у вас IP-телефоны Yealink T46U стоят на адресах .60-.69:

Add-DhcpServerv4ExclusionRange -ScopeId 192.168.1.0 `
  -StartRange 192.168.1.60 -EndRange 192.168.1.69
Совет: Я предпочитаю не использовать исключения без необходимости. Лучше изначально спланировать диапазон так, чтобы статические устройства были за его пределами. Исключения — это костыль для ситуаций, когда адресация уже сложилась исторически и менять её дорого.

Параметры (шлюз, DNS, домен)

Область создана, но пока она раздаёт только IP-адреса. Без шлюза и DNS компьютер получит адрес, но в интернет не выйдет и имена серверов не разрешит. Нужно настроить опции.

Через консоль: разверните область → Scope Options → правой кнопкой → Configure Options.

Минимальный набор опций:

Через PowerShell:

# Шлюз
Set-DhcpServerv4OptionValue -ScopeId 192.168.1.0 -OptionId 3 -Value 192.168.1.1

# DNS-серверы
Set-DhcpServerv4OptionValue -ScopeId 192.168.1.0 -OptionId 6 -Value 192.168.1.10,8.8.8.8

# DNS-суффикс
Set-DhcpServerv4OptionValue -ScopeId 192.168.1.0 -OptionId 15 -Value "company.local"
Частая ошибка: Указывать внешний DNS (8.8.8.8) как основной. В доменной сети основным DNS всегда должен быть контроллер домена. Иначе клиенты не найдут AD, не смогут применить групповые политики, не подключатся к сетевым папкам по имени. Внешний DNS — только как резервный.

Резервирование адресов (Reservations)

Резервирование — это когда конкретное устройство всегда получает один и тот же IP-адрес по DHCP. Выглядит как статический адрес, но управляется централизованно с сервера.

Зачем это нужно? Вот типичные сценарии:

Для создания резервирования нужен MAC-адрес устройства. Узнать его можно так:

# На самом компьютере
ipconfig /all
# Ищите строку Physical Address: 00-1A-2B-3C-4D-5E

# Или с сервера — посмотреть текущие аренды
Get-DhcpServerv4Lease -ScopeId 192.168.1.0 | Format-Table IPAddress, HostName, ClientId

Создаём резервирование:

Add-DhcpServerv4Reservation -ScopeId 192.168.1.0 `
  -IPAddress 192.168.1.100 `
  -ClientId "00-1A-2B-3C-4D-5E" `
  -Name "BUH-PC01" `
  -Description "Компьютер главного бухгалтера"

Через GUI: в консоли DHCP разверните область → Reservations → правой кнопкой → New Reservation.

Массовое создание резервирований. Когда у вас 20 бухгалтерских машин, вбивать руками каждую — тоска. Я обычно готовлю CSV-файл и загружаю его скриптом:

# Файл reservations.csv:
# IPAddress,ClientId,Name,Description
# 192.168.1.100,00-1A-2B-3C-4D-5E,BUH-PC01,Главный бухгалтер
# 192.168.1.101,00-1A-2B-3C-4D-5F,BUH-PC02,Бухгалтер Иванова

Import-Csv .\reservations.csv | ForEach-Object {
    Add-DhcpServerv4Reservation -ScopeId 192.168.1.0 `
      -IPAddress $_.IPAddress `
      -ClientId $_.ClientId `
      -Name $_.Name `
      -Description $_.Description
}
Лайфхак: Резервирование удобнее статического IP ещё и потому, что вы можете разом поменять DNS или шлюз для всех зарезервированных машин — просто отредактировав опции на сервере. Со статическими адресами пришлось бы обходить каждый компьютер.

DHCP Failover — отказоустойчивость

Если DHCP-сервер упадёт — новые устройства не смогут получить адреса. Те, у кого аренда ещё не истекла, продолжат работать. Но ноутбук, который сотрудник принёс из дома, или новый компьютер — останутся без сети.

Решение — DHCP Failover. Появился в Windows Server 2012 и с тех пор работает стабильно. Два сервера делят одну область между собой. Если один падает — второй продолжает выдавать адреса.

Два режима работы:

Настройка через PowerShell (Hot Standby):

# На основном сервере (dc01)
Add-DhcpServerv4Failover -Name "DHCP-Failover" `
  -PartnerServer "dc02.company.local" `
  -ScopeId 192.168.1.0 `
  -SharedSecret "MySuperSecretKey2026!" `
  -Mode HotStandby `
  -ReservePercent 10 `
  -ServerRole Active `
  -AutoStateTransition $true `
  -StateSwitchInterval (New-TimeSpan -Minutes 30)

Ключевые параметры: ReservePercent 10 — 10% адресов зарезервировано для резервного сервера на случай отказа основного. StateSwitchInterval 30 минут — через полчаса недоступности основного сервера резервный берёт на себя всю область.

Настройка через GUI: в консоли DHCP кликните правой кнопкой по области → Configure Failover. Мастер проведёт через все шаги.

После настройки проверяем:

Get-DhcpServerv4Failover

# Должны увидеть:
# Name          : DHCP-Failover
# Mode          : HotStandby
# State         : Normal
# PartnerServer : dc02.company.local
Из опыта: У одного нашего клиента — производственная компания в Туле, 150 машин — основной сервер однажды вышел из строя из-за сгоревшего блока питания (Dell PowerEdge T440, если интересно). Резервный DHCP подхватил всю сеть за 30 минут. Сотрудники даже не заметили проблемы. Без failover простой составил бы несколько часов — пока привезли бы новый блок, пока заменили.

Мониторинг и устранение проблем

DHCP настроен и работает. Но проблемы рано или поздно случаются. За 15 лет я собрал целую коллекцию типичных ситуаций. Вот три самые частые.

«Компьютер получил адрес 169.254.x.x»

Адрес из диапазона 169.254.0.0/16 (APIPA — Automatic Private IP Addressing) означает одно: компьютер не смог найти DHCP-сервер. Он отправил запрос, не получил ответа и назначил себе случайный адрес из этого диапазона.

Что проверять:

  1. Физическое подключение. Кабель воткнут? Индикаторы на порте коммутатора горят? Звучит банально, но в 30% случаев проблема именно в этом. Особенно если уборщица двигала мебель ночью
  2. DHCP-сервер запущен? Проверьте: Get-Service dhcpserver. Статус должен быть Running
  3. В области есть свободные адреса? Проверьте: Get-DhcpServerv4ScopeStatistics -ScopeId 192.168.1.0. Если Free = 0, сервер выдал все адреса. Нужно расширить диапазон или уменьшить время аренды
  4. Порт 67/68 UDP не заблокирован? Если между клиентом и сервером стоит файрвол, он должен пропускать DHCP-трафик
  5. DHCP-сервер авторизован в AD? Проверьте: Get-DhcpServerInDC. Если вашего сервера в списке нет — вот и причина

Быстрое исправление на клиенте:

ipconfig /release
ipconfig /renew

Если не помогает:

# Сброс стека TCP/IP
netsh int ip reset
netsh winsock reset
# Перезагрузить компьютер

Конфликт IP-адресов

Windows выдаёт сообщение: «Обнаружен конфликт IP-адресов». Это значит, что два устройства в сети имеют одинаковый IP.

Откуда конфликты, если есть DHCP? Три причины:

Детективная работа — найти, кому принадлежит конфликтный адрес:

# Посмотреть ARP-таблицу
arp -a | findstr "192.168.1.100"

# На сервере — посмотреть аренду
Get-DhcpServerv4Lease -ScopeId 192.168.1.0 -IPAddress 192.168.1.100

# Если адрес статический (не выдан DHCP), ищите по MAC в коммутаторе

DHCP не выдаёт адреса после обновления сервера

Мы с этим столкнулись в январе 2025-го у клиента на Windows Server 2022 после обновления KB5034129. Обновление сбросило привязку сетевого интерфейса — сервер пытался слушать на интерфейсе, которого больше нет (сменился GUID после обновления драйвера Intel I350-T2).

Диагностика:

# Проверяем, на каких интерфейсах слушает DHCP
netsh dhcp server show bindings

# Если видим "Disabled" на нужном интерфейсе:
netsh dhcp server set bindings interface="Ethernet0" enable

Или через PowerShell:

# Просмотр привязок
Get-DhcpServerv4Binding

# Включение на нужном интерфейсе
Set-DhcpServerv4Binding -InterfaceAlias "Ethernet0" -BindingState $true
Restart-Service dhcpserver

Ещё одна частая причина после обновлений — служба DHCP не запустилась автоматически:

# Проверяем статус и тип запуска
Get-Service dhcpserver | Select-Object Status, StartType

# Если стоит Manual или служба остановлена:
Set-Service dhcpserver -StartupType Automatic
Start-Service dhcpserver
Правило: После каждого обновления Windows Server проверяйте работу DHCP. Хотя бы выполните Get-DhcpServerv4ScopeStatistics и убедитесь, что адреса выдаются. Занимает 10 секунд, но экономит часы нервотрёпки.

Управление DHCP через PowerShell (полезные команды)

Графическая консоль DHCP — это хорошо для разовых операций. Но когда нужно быстро проверить состояние, найти проблему или настроить что-то на нескольких серверах — PowerShell незаменим. Вот команды, которые я использую каждую неделю.

Статистика области:

Get-DhcpServerv4ScopeStatistics -ScopeId 192.168.1.0

# InUse         : 47
# Free          : 153
# PercentageInUse: 23.5

Все текущие аренды:

Get-DhcpServerv4Lease -ScopeId 192.168.1.0 |
  Sort-Object IPAddress |
  Format-Table IPAddress, HostName, ClientId, LeaseExpiryTime -AutoSize

Найти конкретное устройство по имени:

Get-DhcpServerv4Lease -ScopeId 192.168.1.0 |
  Where-Object { $_.HostName -like "*buh*" }

Экспорт конфигурации (бэкап!):

# Экспорт всей конфигурации DHCP в файл
Export-DhcpServer -File "C:\Backup\dhcp-config-$(Get-Date -Format 'yyyy-MM-dd').xml" -Leases

# Импорт на другой сервер (или после переустановки)
Import-DhcpServer -File "C:\Backup\dhcp-config-2026-03-26.xml" -BackupPath "C:\Backup\dhcp-old" -Leases

Удалить просроченные аренды:

# Показать просроченные
Get-DhcpServerv4Lease -ScopeId 192.168.1.0 |
  Where-Object { $_.AddressState -eq "Expired" }

# Подчистить (DHCP делает это автоматически, но иногда нужно вручную)

Проверить свободные адреса:

Get-DhcpServerv4FreeIPAddress -ScopeId 192.168.1.0 -NumAddress 5
# Покажет 5 свободных адресов

Мониторинг — оповещение при нехватке адресов:

# Если свободных адресов меньше 10% — отправить письмо
$stats = Get-DhcpServerv4ScopeStatistics -ScopeId 192.168.1.0
if ($stats.PercentageInUse -gt 90) {
    Send-MailMessage -From "dhcp@company.local" -To "admin@company.local" `
      -Subject "DHCP: мало свободных адресов!" `
      -Body "В области 192.168.1.0 занято $($stats.PercentageInUse)% адресов." `
      -SmtpServer "mail.company.local"
}
Совет: Сохраните эти команды в скрипт C:\Scripts\dhcp-daily-check.ps1 и запускайте через Task Scheduler каждое утро. Две минуты на настройку, зато вы всегда в курсе состояния DHCP. Мы так делаем у всех клиентов на обслуживании.

FAQ

Можно ли поднять DHCP-сервер на обычной Windows 10/11?

Нет, встроенная роль доступна только в серверных редакциях. Можно использовать сторонние утилиты (Open DHCP Server), но для корпоративной сети это плохой вариант — нет интеграции с AD и отказоустойчивости. Для 20+ машин — только Windows Server.

Что будет, если в сети окажутся два DHCP-сервера?

Будут конфликты IP-адресов. Классика: сотрудник принёс из дома роутер TP-Link «чтобы Wi-Fi был», а на нём включён DHCP. Половина офиса потеряла доступ к внутренним ресурсам. Мораль: используйте DHCP Snooping на управляемых коммутаторах, чтобы блокировать несанкционированные DHCP-серверы.

Как узнать, от какого DHCP-сервера компьютер получил адрес?

Откройте командную строку и выполните ipconfig /all. В разделе сетевого адаптера найдите строку DHCP Server — там будет IP-адрес сервера, выдавшего аренду. Через PowerShell: Get-NetIPConfiguration | Select-Object InterfaceAlias, DhcpServer.

На какой срок выдавать аренду (lease)?

Для офисных стационарных машин — 8 дней. Для Wi-Fi с гостевым доступом — 4-8 часов. Для VPN — 1-2 часа. Правило: срок аренды минимум вдвое больше типичного периода подключения устройства.

Нужно ли авторизовать DHCP-сервер в Active Directory?

Да, если сервер в домене — обязательно. Неавторизованный DHCP-сервер в доменной среде не будет выдавать адреса. Это встроенная защита Microsoft от появления «левых» DHCP-серверов. Авторизация — одна команда: Add-DhcpServerInDC -DnsName server.company.local -IPAddress 192.168.1.10. Если сервер не в домене (рабочая группа), авторизация не нужна.

Заключение

DHCP — фундамент любой офисной сети. Настройте один раз правильно — и забудете о проблемах с IP-адресами на годы.

Та торговая компания, с которой я начал статью, работает с нашим DHCP уже полтора года. 50 компьютеров, 8 принтеров, 12 IP-телефонов — всё получает адреса автоматически. Сисадмин Дмитрий, который раньше вёл табличку в Excel, теперь говорит: «Почему я не сделал это три года назад?».

Если у вас в офисе больше 10 компьютеров и DHCP до сих пор раздаёт роутер — самое время это исправить. Настройка занимает пару часов, а экономит десятки часов в год.

Нужна помощь с настройкой DHCP или аудит сетевой инфраструктуры? Мы в АйТи Фреш этим занимаемся каждый день. Позвоните или оставьте заявку — разберёмся.

Официальная документация: Microsoft Learn — DHCP Server, Microsoft Learn — DhcpServer PowerShell Module

Нужна помощь с настройкой DHCP?

ООО «АйТи Фреш» настроит сетевую инфраструктуру за вас

Не хотите разбираться с областями, резервированиями и failover? Мы настроим DHCP, DNS, Active Directory и всё остальное под ключ — с гарантией стабильности. Работаем с юридическими лицами в Москве и регионах. Поддержка 24/7.

15+лет опыта
25+клиентов
40Gсвоя сеть
24/7поддержка