Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.
systemd-networkd: DHCPv4 client failed: Lease expired / No offer Linux / DevOps

DHCPv4 client failed: No offer — Сбой получения IP в systemd-networkd

Обновлено: 18.08.2026  ·  Официальная база знаний

Архитектура ошибки и симптомы сбоя

Сообщение «systemd-networkd: DHCPv4 client failed: Lease expired / No offer / Connection timed out» регистрируется встроенным DHCP-клиентом systemd-networkd. Ошибка означает, что система отправила широковещательный запрос DHCPDISCOVER, но не получила ответного предложения DHCPOFFER от DHCP-сервера, либо аренда IP-адреса истекла (Lease Expired), а запрос на продление был проигнорирован. В результате интерфейс теряет IP-адрес и маршрут по умолчанию, вызывая полную потерю сетевой доступности.

Диагностическая таблица параметров сбоя

ПараметрЗначениеИнженерный смысл сбоя
DHCPDISCOVERBroadcast UDP 67/68Широковещательный запрос поиска доступных DHCP-серверов в сегменте.
No OfferTimeout / FilteredDHCP-сервер перегружен, исчерпан пул адресов (Pool Exhausted) или порт коммутатора заблокирован STP.
DUIDType / ClientIDduid / macФормат идентификатора хоста для выдачи постоянного IP-адреса.

Пошаговое дерево решений и сценарии траблшутинга

Сценарий 1: Проверка физического линка и прохождения DHCP трафика

# Проверка статуса сетевого кабеля (Carrier / Link Detected):
networkctl status eth0

# Захват исходящих и входящих DHCP пакетов утилитой tcpdump:
sudo tcpdump -i eth0 -n -vvv port 67 or port 68

Сценарий 2: Переключение ClientID с DUID на MAC-адрес

Многие старые корпоративные DHCP-серверы (Cisco, Windows Server) не понимают формат DUID (по умолчанию в systemd) и требуют стандартный MAC-адрес:

# Отредактируйте /etc/systemd/network/10-eth0.network:
[Match]
Name=eth0

[Network]
DHCP=ipv4

[DHCPv4]
ClientIdentifier=mac
SendHostname=yes
UseDomains=yes

# Перезапустите сеть:
sudo systemctl restart systemd-networkd

Сценарий 3: Настройка статического IP-адреса в аварийной ситуации

Если DHCP-сервер недоступен, задайте статические параметры сети:

# Настройка статического IP в /etc/systemd/network/10-eth0.network:
[Match]
Name=eth0

[Network]
Address=192.168.1.100/24
Gateway=192.168.1.1
DNS=1.1.1.1 8.8.8.8

# Примените конфигурацию:
sudo networkctl reload

Сценарий 4: Устранение задержки Spanning Tree Protocol (STP) на коммутаторе

Если порт свитча тратит 30 секунд на инициализацию STP, включите на портах коммутатора режим PortFast / Edge Port, либо увеличьте таймаут в networkd:

[DHCPv4]
RouteMetric=100
MaxAttempts=infinity
Серверы теряют сетевую связность из-за сбоев аренды DHCP?
ITSTM спроектирует отказоустойчивую сетевую инфраструктуру с резервированием DHCP-серверов (DHCP Snooping/Relay) и статическим IPAM.
Практический опыт инженера: При развертывании серверов через PXE/Cloud-Init всегда явно прописывайте ClientIdentifier=mac в шаблонах systemd-networkd во избежание смены выданного IP-адреса при регенерации machine-id хоста.

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

Почему systemd-networkd по умолчанию отправляет DUID вместо MAC-адреса?

Стандарт RFC 4361 предписывает использование единого идентификатора DUID (DHCP Unique Identifier) для IPv4 и IPv6. Однако многие маршрутизаторы MikroTik и шлюзы не умеют привязывать статические лизы к DUID, требуя ClientIdentifier=mac.

Что означает опция SendHostname=yes?

Она указывает клиенту передавать свое сетевое имя (hostname) в Option 12 DHCP-пакета, позволяя локальному DNS-серверу автоматически зарегистрировать имя хоста.

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

Выполните команду: sudo networkctl renew eth0.

Что делать, если IP-адрес выдается, но маршрут по умолчанию отсутствует?

Убедитесь, что в секции [DHCPv4] установлено UseGateway=yes и UseRoutes=yes.