Linux: не работает сеть после восстановления (dd / snapshot / миграция)

Описание

После восстановления системы (через dd, snapshot или перенос на другую ВМ) сеть может не работать.

Типичные симптомы:

  • отсутствует IP-адрес;
  • интерфейс не поднимается;
  • нет доступа по SSH;
  • интерфейс отсутствует в конфигурации;
  • система видит интерфейс, но не применяет настройки.

Контекст

Типичные сценарии:

  • перенос ВМ между гипервизорами (ESXi → KVM / Proxmox);
  • клонирование ВМ;
  • восстановление из поблочного бэкапа (dd);
  • изменение типа сетевого адаптера (e1000 → virtio);
  • изменение MAC-адреса.

Основная причина

Linux использует predictable network interface names
(предсказуемые имена интерфейсов).

Имя интерфейса зависит от:

  • PCI-адреса;
  • типа адаптера;
  • порядка инициализации устройств.

После миграции:

  • было: ens160
  • стало: ens192

Конфигурация остаётся старой → интерфейс не поднимается.


⚠️ Риски

  • потеря удалённого доступа;
  • неправильная конфигурация может полностью изолировать сервер;
  • особенно критично для production-систем.

Диагностика

1. Проверка интерфейсов

ip link

Важно:

  • есть ли интерфейс вообще;
  • как он называется;
  • состояние (UP / DOWN).

2. Проверка IP-адресов

ip addr

3. Проверка драйвера

lspci | grep -i ethernet
lsmod | grep -i virtio

Если драйвер не загружен — интерфейс может не появиться.


4. Проверка конфигурации

Ubuntu / Debian:

ls /etc/netplan/

CentOS / RHEL:

ls /etc/sysconfig/network-scripts/

5. Проверка MAC-адреса

ip link

Проверить:

  • текущий MAC-адрес интерфейса;
  • совпадает ли он с конфигурацией.

Также можно посмотреть:

cat /sys/class/net/ens192/address

Если MAC изменился после миграции — конфигурация может не применяться.


Решение

1. Попытка пересборки initramfs

Актуально при смене драйверов или гипервизора:

update-initramfs -u
reboot

2. Проверка имени интерфейса

ip link

Запомнить текущее имя (например ens192).


3. Исправление netplan (Ubuntu / Debian)

vi /etc/netplan/50-cloud-init.yaml

Было:

ethernets:
  ens160:
    dhcp4: true

Стало:

ethernets:
  ens192:
    dhcp4: true

Применение:

netplan apply

4. Отключение привязки к MAC (если есть)

Иногда конфигурация привязана к MAC:

match:
  macaddress: xx:xx:xx:xx:xx:xx

После миграции MAC меняется → интерфейс не поднимается.

Решение:

  • удалить блок match
  • или обновить MAC

Для CentOS / RHEL:

В конфигурации может быть жёсткая привязка к MAC:

HWADDR=xx:xx:xx:xx:xx:xx

После миграции MAC меняется → интерфейс не поднимается.

Решение:

  • удалить параметр HWADDR;
  • либо обновить его на актуальный MAC.

5. CentOS / RHEL (network-scripts)

cd /etc/sysconfig/network-scripts/

Переименование:

mv ifcfg-ens160 ifcfg-ens192

Правка:

vi ifcfg-ens192

Важно:

DEVICE=ens192
NAME=ens192
ONBOOT=yes

6. Очистка старых правил udev

Иногда остаются старые привязки:

rm -f /etc/udev/rules.d/70-persistent-net.rules

После этого:

reboot

7. Перезапуск сети

Ubuntu:

netplan apply

CentOS:

systemctl restart network

Частые кейсы

1. Интерфейс есть, но без IP

Причина:

  • неправильный netplan / ifcfg

Решение:

  • проверить имя интерфейса
  • проверить DHCP / static настройки

2. Интерфейс отсутствует

Причина:

  • отсутствует драйвер
  • не пересобран initramfs

Решение:

  • update-initramfs
  • проверить lsmod

3. Интерфейс DOWN

ip link set ens192 up

4. DHCP не работает

Проверка:

dhclient -v ens192

5. После клонирования одинаковые MAC

  • конфликт в сети
  • DHCP не выдаёт адрес

Решение:

  • изменить MAC в гипервизоре

6. Интерфейс не поднимается из-за MAC

Причина:

  • MAC-адрес изменился после клонирования или миграции;
  • конфигурация привязана к старому MAC (match или HWADDR).

Решение:

  • проверить текущий MAC (ip link);
  • удалить привязку или обновить MAC в конфигурации;
  • применить настройки сети.

Ограничения

  • не решает проблемы на уровне гипервизора;
  • не исправляет ошибки сетевой инфраструктуры (VLAN, firewall);
  • требует консольного доступа.

Когда использовать

  • после восстановления через dd;
  • после миграции ВМ;
  • при смене гипервизора;
  • при отсутствии сети после загрузки.