Нет сети в CentOS после клонирования

Linux Network tipsКаждая операционная система имеет свои подводные камни при клонировании и работе. В Linux они встречаются реже, чем в Windows, однако тоже бывают. В заметке речь пойдёт об одном из подводных камней CentOS и Fedora дистрибутивов – исчезновении сетевого интерфейса при клонировании. Причина этому — по умолчанию в настройках сетевого интерфейса этих операционных систем прописывается mac адрес устройства и его уникальный идентификатор. С учётом того, что все эти системы потомки RedHat, то не удивлюсь, что и в самом RedHat ситуация и лекарство аналогичны. Приступим?

CentOS 6

На данный момент это последний CentOS, который используется классическое наименование сетевых интерфейсов в формате eth[x]. Все новые дистрибутивы по умолчанию используют другую схему наименований, но об этом позже.

В CentOS 6 нужно отредактировать два файла конфигурации системы и проблема исчезновения интерфейсов при клонировании пропадёт.

Редактируем, непосредственно файл конфигурации интерфейса:

vi /etc/sysconfig/network-scripts/ifcfg-eth0

CentOS 6 interface config

Красными стрелками выделены параметры HWADDR (мак адрес) и UUID (уникальный идентификатор устройства), их следует удалить. Зелёной стрелкой выделен режим работы устройства, по умолчанию устройство при загрузке отключено, я рекомендую включить его, указав «yes».

Итоговый результат для файла конфигурации интерфейса такой:

CentOS 6 interface config result

Теперь редактируем, файл конфигурации менеджера устройств.

vi /etc/udev/rules.d/70-persistent-net.rules

В этом файле следует аккуратно удалить выделенный на скриншоте кусок строки.

CentOS 6 udev config

В результате получим рабочий файл, без привязки к mac адресу.

CentOS 6 udev config final

CentOS 7

В CentOS/RedHat 7 была введена новая схема наименования сетевых интерфейсов, призванная сделать наименование интерфейсов более предсказуемым. На самом деле схема не одна, а целых пять. В оригинале информация доступна на сайте RedHat, краткая суть:

  • Схема 1: Система преобразует информацию из BIOS и/или прошивки устройства для встроенных сетевых интерфейсов и преобразует в номер устройства. Например: eno1 (Ethernet network onboard 1). Если информация недоступна, система перейдёт на схему 2.
  • Схема 2: Система преобразует информацию из BIOS и/или прошивки устройства для сетевых интерфейсов PCI Express hotplug и преобразует в номер устройства. Например: ens1 (Ethernet network slot 1). Если информация недоступна, система перейдёт на схему 3.
  • Схема 3: Система преобразует информацию о физической точке подключения сетевого устройства и преобразует в номер устройства. Например: ensp2s0 (Ethernet network port 2 slot 1). Если информация недоступна, система сразу перейдёт на схему 5.
  • Схема 4: Система преобразует информацию из mac адреса в имя устройства. Например: enx78e7d1ea46da (Ethernet network with mac 78:e7:d1:ea:46:da). Данная схема отключена по умолчанию, но доступна для принудительного использования.
  • Схема 5: Классическая схема с назначением имени устройства ядром системы.

В CentOS 7 достаточно отредактировать исключительно файл конфигурации интерфейса. В моём случае интерфейс получил имя ens192, имя интерфейса в вашей системе можно узнать командой:

ip a

Итак, приступаем к редактированию

sudo vi /etc/sysconfig/network-scripts/ifcfg-ens192

На скриноте ниже красным выделена строка UUID, которую следует удалить. Если вы обратили внимание, то строки HWADDR нет и её удалять нам не приходится. Однако, вы можете сталкнуться с такими системами, где эта строка будет. Если вы видите такую строку в файле конфигурации интерфейса — удалите её. Зелёным выделен параметр, отвечающий за запуск устройства при загрузке системы. Рекомендую поставить «yes».

CentOS 7 interface config

Итоговый результат нашего редактирования:

CentOS 7 interface config final

Напомню, что мы готовим образы для клонирования в виртуальной инфраструктуре. При совпадении виртуального оборудования между шаблоном и клоном имя сетевого интерфейса меняться не будет.

Fedora 25

В последней версии операционной системы Fedora мак адрес не сохраняется в настройках демона udev, как это происходит в CentOS 6. Таким образом настройка полностью идентична настройке в CentOS 7 и описывать её отдельно не стоит.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *