· 13 мин чтения

DHCP Failover на Windows Server: отказоустойчивость без кластера

Меня зовут Семёнов Евгений Сергеевич, директор АйТи Фреш. За 15 лет администрирования AD-инфраструктуры я пересмотрел все способы обеспечить отказоустойчивость DHCP — от классического split-scope 80/20 до полноценного Failover Cluster с shared storage. И каждый раз прихожу к выводу: для офиса до 1000 РМ встроенный в Windows Server 2012+ механизм DHCP Failover — оптимальный выбор. Не нужен кластер, не нужна общая СХД, настройка занимает 15 минут, отказоустойчивость N+1 из коробки. В статье — как это правильно развернуть и какие грабли встречаются на практике.

Зачем резервировать DHCP

DHCP — тихий, но критичный сервис. Пользователи не замечают, когда он работает, но начинают звонить в техподдержку через 10 минут после того, как он упал — на ноутбуках «нет сети», на телефонах по сети «нет регистрации», новые подключения не получают адрес. Особенно больно на MAC-адресах неслучайного назначения — IP-телефоны Yealink, принтеры, камеры при перезагрузке получают новые адреса или не получают вовсе.

Типичные причины падения одиночного DHCP:

Наличие второго DHCP-сервера с синхронизированным scope решает все эти проблемы.

Режимы Failover: Load Balance vs Hot Standby

ПараметрLoad BalanceHot Standby
Как работаетОба сервера активны, делят запросыPrimary отвечает, Standby молчит
Резерв пулаНе нужен (делится по формуле)Обычно 5% адресов за Standby
При паденииОставшийся обслуживает всё через MCLTStandby автоматически подхватывает
Типичный сценарийОдин сайт, две равноценные машиныДва сайта, один основной
СложностьПрощеТребует понимания роли

У нас на практике 90% офисов — Load Balance. Оставшиеся 10% — распределённые сети, где основной DHCP в ЦО и резерв в филиале с Hot Standby, чтобы не создавать дополнительный трафик по WAN-каналу.

Подготовка: установка роли DHCP на два сервера

Требования: два Windows Server 2019 или 2022 в одном домене, разные физические/виртуальные хосты, сетевой доступ друг к другу по TCP 647. Имена — например DHCP01 и DHCP02.

# На DHCP01 и DHCP02 (запускать в разное время)
Install-WindowsFeature DHCP -IncludeManagementTools
Add-DhcpServerSecurityGroup
netsh dhcp add securitygroups
Restart-Service dhcpserver

# Авторизация в AD
Add-DhcpServerInDC -DnsName dhcp01.corp.local -IPAddress 10.10.10.11
Add-DhcpServerInDC -DnsName dhcp02.corp.local -IPAddress 10.10.10.12

# Запретить анонимную регистрацию (best practice)
Set-DhcpServerSetting -DynamicBootp $false -NapEnabled $false

Создание scope на primary

Создаём scope только на DHCP01 — Failover автоматически реплицирует его на DHCP02 после настройки отношения. Пример для VLAN 30 (USERS):

Add-DhcpServerv4Scope -Name "VLAN30-USERS" `
  -StartRange 10.10.30.10 -EndRange 10.10.31.250 `
  -SubnetMask 255.255.254.0 -State Active `
  -LeaseDuration 8.00:00:00

Set-DhcpServerv4OptionValue -ScopeId 10.10.30.0 `
  -Router 10.10.30.1 `
  -DnsServer 10.10.10.21,10.10.10.22 `
  -DnsDomain corp.local

# Резервирование для принтеров
Add-DhcpServerv4Reservation -ScopeId 10.10.30.0 `
  -IPAddress 10.10.30.50 -ClientId "00-11-22-33-44-55" `
  -Name "printer-office-1"

Настройка Failover Relationship

Теперь собственно сама настройка отказоустойчивости. Делается одной командой на DHCP01:

# Load Balance 50/50
Add-DhcpServerv4Failover -Name "DHCP-Failover-Relationship" `
  -PartnerServer dhcp02.corp.local `
  -ScopeId 10.10.20.0,10.10.30.0,10.10.40.0,10.10.50.0,10.10.60.0 `
  -LoadBalancePercent 50 `
  -SharedSecret "S3cr3tSharedKey#2026" `
  -AutoStateTransition $true `
  -StateSwitchInterval 01:00:00

# Либо Hot Standby
Add-DhcpServerv4Failover -Name "DHCP-HotStandby" `
  -PartnerServer dhcp02.corp.local `
  -ScopeId 10.10.30.0 `
  -ServerRole Active -ReservePercent 5 `
  -SharedSecret "S3cr3tSharedKey#2026"

Параметры:

Проверка и мониторинг

# Статус Failover Relationship
Get-DhcpServerv4Failover
# Name                : DHCP-Failover-Relationship
# PartnerServer       : dhcp02.corp.local
# Mode                : LoadBalance
# State               : Normal
# LoadBalancePercent  : 50

# Детальная статистика
Get-DhcpServerv4ScopeStatistics -ScopeId 10.10.30.0 -ComputerName dhcp01.corp.local
Get-DhcpServerv4ScopeStatistics -ScopeId 10.10.30.0 -ComputerName dhcp02.corp.local

# Проверка репликации scope между серверами
Invoke-DhcpServerv4FailoverReplication -Name "DHCP-Failover-Relationship" -Force

Состояния Failover:

Тест отказоустойчивости

После настройки обязательно проверяем, что failover реально работает. Сценарий:

  1. Запустить на тестовом клиенте ipconfig /release и ipconfig /renew — проверить получение адреса.
  2. Выключить DHCP01 (shutdown /s /t 0).
  3. На другом клиенте снова release/renew — должен получить адрес от DHCP02.
  4. Включить DHCP01, проверить Get-DhcpServerv4Failover — состояние должно вернуться в Normal.

Реальный кейс: миграция split-scope на Failover

В феврале 2025 года к нам пришла логистическая компания с четырьмя филиалами в Москве и Подмосковье. DHCP был настроен по старой схеме split-scope 80/20 на двух серверах Windows Server 2012 — когда primary падал, secondary отдавал только 20% адресов, быстро исчерпывался, новые клиенты не получали IP.

Задача — перейти на Failover с Load Balance 50/50, мигрировать все 14 scope без прерывания сервиса.

План:

Работы заняли 1 день (в офисе без пересадки пользователей, с плавным переводом на новые серверы). Через год работы — 0 инцидентов, связанных с DHCP. Стоимость — 35 000 руб. за проект.

Бэкап базы DHCP

База DHCP — jet-engine файл в C:\Windows\System32\dhcp\dhcp.mdb. Автоматический бэкап выполняется в C:\Windows\System32\dhcp\backup\ каждые 60 минут. Но этого мало — при сбое диска вы потеряете всё.

# Скрипт еженедельного бэкапа на сетевую шару
$source = "C:\Windows\System32\dhcp\backup"
$target = "\\backup-server\dhcp-backup\$(Get-Date -Format yyyyMMdd)"
New-Item -ItemType Directory -Force -Path $target | Out-Null
robocopy $source $target /E /R:3 /W:10 /LOG+:C:\Logs\dhcp-backup.log

# Экспорт в XML (для версионирования)
Export-DhcpServer -ComputerName $env:COMPUTERNAME -File "$target\dhcp-export.xml" -Leases -Force

Типичные ошибки при настройке Failover

Настроим DHCP Failover в вашей сети

Развёртывание двух Windows Server 2022 с DHCP-ролью, миграция существующих scope с одиночного сервера или split-scope, настройка Load Balance/Hot Standby, интеграция с AD и DNS, мониторинг через Zabbix, бэкап базы. За 1 рабочий день для офиса до 300 РМ.

Телефон: +7 903 729-62-41
Telegram: @ITfresh_Boss
Семёнов Евгений Сергеевич, директор АйТи Фреш

FAQ — частые вопросы

Что такое DHCP Failover?
Механизм отказоустойчивости Windows Server 2012+ для DHCP-службы. Два сервера синхронизируют scope и lease базу, при падении одного второй обслуживает клиентов. Не требует Failover Cluster.
Чем отличается Load Balance от Hot Standby?
Load Balance — оба сервера активно выдают адреса в пропорции. Hot Standby — primary выдаёт всё, secondary только если primary недоступен. Для офиса 50-500 РМ выбирают Load Balance.
Сколько scope можно синхронизировать?
До 500 scope на один failover relationship. На практике реальная нагрузка ощутима уже после 20-30 scope с 10000+ leases.
Нужен ли DC для DHCP Failover?
DHCP-сервер должен быть авторизован в AD (только для домена). Сам механизм Failover не использует AD — прямой обмен между двумя DHCP-серверами по TCP 647.
Что происходит при split-brain?
Если линк упал, оба переходят в Communication Interrupted и обслуживают клиентов из своего пула. При восстановлении — автоматический reconcile базы leases за 2-5 минут.

Подпишитесь на рассылку ITfresh

Раз в неделю — практические гайды для руководителя IT и сисадмина: безопасность, 1С, миграции, резервные копии, лайфхаки из реальных проектов.

Реквизиты оператора персональных данных

ООО «АЙТИ-ФРЕШ», ИНН 7719418495, КПП 771901001. Юридический адрес: 105523, г. Москва, Щёлковское шоссе, д. 92, корп. 7. Контакт: info@itfresh.ru, +7 903 729-62-41. Оператор обрабатывает e-mail подписчика в целях рассылки информационных и рекламных материалов до момента отзыва согласия.