Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

DHCP_FAILOVER_STATE_MISMATCH Сетевое оборудование и VPN

DHCP Failover State Mismatch: ошибка синхронизации Binding Update

Обновлено: 25.08.2026 · Официальная документация ↗
  • В логах DHCP-сервера появляется ошибка failover peer <name>: binding update rejected: state mismatch.
  • Кластер переходит в статус partner-down, communications-interrupted или shutdown.
  • Клиенты получают одинаковые IP-адреса от обоих серверов (IP conflict / Duplicate Address Detection).
  • Время аренды (Lease) для клиентов сбрасывается до значения MCLT (Maximum Client Lead Time).

1. Анализ статуса кластера Failover

На первичном и вторичном серверах выполните проверку состояния пиров:

# ISC-DHCP (dhcpd-pools) / dhcpctl
omctrl -s localhost -p 7911

# Для Kea DHCPv4
kea-ctrl-agent -c '{"command": "ha-heartbeat"}'
kea-ctrl-agent -c '{"command": "status-get"}'

2. Проверка синхронизации системного времени

Рассинхронизация часов NTP более чем на 1 секунду между узлами кластера автоматически блокирует binding-update транзакции:

chronyc sources -v
chronyc tracking

3. Очистка расхождений в файлах аренды (ISC-DHCP)

Если базы аренды повреждены:

# 1. Остановите оба сервиса
systemctl stop isc-dhcp-server

# 2. На Secondary сервере сделайте бэкап и очистите базу
cp /var/lib/dhcp/dhcpd.leases /var/lib/dhcp/dhcpd.leases.bak
> /var/lib/dhcp/dhcpd.leases

# 3. Запустите Primary, затем Secondary для полной синхронизации
systemctl start isc-dhcp-server # на Primary
# Дождитесь перехода Primary в 'normal'
systemctl start isc-dhcp-server # на Secondary

4. Корректировка параметров Failover в dhcpd.conf

failover peer "dhcp-failover" {
  primary;
  address 10.0.0.1;
  port 647;
  peer address 10.0.0.2;
  peer port 647;
  max-response-delay 60;
  max-unacked-updates 10;
  mclt 3600;
  split 128;
  load balance max seconds 3;
}
💡 Практика специалистов: Никогда не копируйте файл leases с одного работающего сервера на другой при включенном failover — это гарантированно приведет к State Mismatch. Синхронизация должна выполняться исключительно по протоколу TCP/647.

Частые вопросы (FAQ)

Что означает параметр split 128 в конфигурации DHCP Failover?

Значение split 128 делит пул хэшей MAC-адресов поровну (50/50) между primary и secondary узлами. Значение 256 отдает весь пул первичному серверу, а 0 — вторичному.

Почему статус communications-interrupted не выдает адреса на полный срок аренды?

В режиме потери связи с пиром сервер не может гарантировать монопольное владение пулом, поэтому выдает адреса исключительно на срок MCLT (обычно 1 час), чтобы предотвратить дублирование.

Какой TCP-порт использует протокол DHCP Failover?

Связь между пирами и обмен binding updates осуществляется по протоколу TCP через порт 647 (или 847 для DHCPv6).

Как безопасно вывести один узел кластера на техобслуживание?

Переведите узел в режим 'partner-down' или 'paused' перед остановкой службы, чтобы оставшийся сервер легитимно взял на себя обслуживание пула без генерации конфликтов аренды.

Полезные материалы
Рекомендуем