Как предотвратить переименование eth0 в ens3?

Вопрос или проблема

Я работаю с Digital Ocean, и их команда поддержки не может помочь мне зарегистрировать сеть на VPS, созданном с их резервного образа, несмотря на более десяти писем. Их инструкции по изменению grub для отображения сетевого устройства как eth0 вместо ens3 не работают. Мне нужно остановить переименование на ens3, чтобы я мог следовать их инструкциям по настройке eth0 как статического IP.

$ dmesg | grep -i eth
[     8.676459] virtio_net virtio0 ens3: renamed from eth0

Вывод от

$ ip addr show

введите описание изображения здесь

Их инструкции, которые я выполнил без ошибок от grub, были следующими:

  1. Откройте файл “/etc/default/grub.d/50-cloudimg-settings.cfg” в вашем любимом текстовом редакторе, например, vim. Найдите строку, в которой написано
    “GRUB_CMDLINE_LINUX_DEFAULT”, и добавьте “net.ifnames=0” в конец
    строки, внутри кавычек. После этого она должна выглядеть так:

    GRUB_CMDLINE_LINUX_DEFAULT=”console=tty1 console=ttyS0 net.ifnames=0″

  2. Сохраните и закройте файл

  3. Обновите GRUB с новыми настройками и перезагрузите Droplet, выполнив следующие команды:

    $ update-grub

    $ reboot

Я сделал это, а также следовал аналогичным инструкциям снова без успеха здесь https://www.itzgeek.com/how-tos/mini-howtos/change-default-network-name-ens33-to-old-eth0-on-ubuntu-16-04.html

Редактировать: основываясь на комментариях, особенно от @Terrance и также @Stephen Boston, этот файл, кажется, является источником проблемы, но я не уверен, что именно изменить:

 $ cat /etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="72:9d:39:b5:f6:ef", NAME="ens3"

(В этой директории больше нет файлов.)

Является ли ATTR MAC-адресом? Значение в этом файле соответствует тому, которое показано выше в ip addr show для ens3. Как я могу определить, каким оно должно быть. Вопрос: Является ли одиночный = после NAME вместо двойного == причиной проблемы?

Как только я получу ens3 просто как eth0, остальное будет просто. (Кстати, whereis netplan не показывает результатов, нет директории /etc/netplan, и я не совсем системный администратор.)

mkdir -p /etc/systemd/network && ln -s /dev/null /etc/systemd/network/99-default.link

В v197 systemd представил Предсказуемые Имена Сетевых Интерфейсов, чтобы гарантировать, что любой конкретный интерфейс всегда получает одно и то же имя при загрузке. Это контролируется файлом /usr/lib/systemd/network/99-default.link, который можно “замаскировать” (переопределить) с помощью команды выше.

.

Ответ или решение

Теория

Проблема с изменением имени сетевого интерфейса в вашем виртуальном сервере (VPS), предоставляемом Digital Ocean, связана с так называемой системой "Predictable Network Interface Names", введенной в systemd начиная с версии 197. Эта система автоматически назначает интерфейсам предсказуемые имена, такие как ens3, на основе различных факторов, включая тип оборудования и порт подключения. Однако в некоторых случаях, таких как ваш, требуется вернуть старый формат именования, например eth0, чтобы соблюсти определенные настройки или инструкции.

Пример

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

Применение

Чтобы решить эту проблему, необходимо внести изменения, которые отменят действие системы "Predictable Network Interface Names". Следующие шаги помогут вам в этом:

  1. Редактирование конфигурации GRUB:

    Убедитесь, что у вас действительно добавлена строка net.ifnames=0 и biosdevname=0 в файл /etc/default/grub.d/50-cloudimg-settings.cfg. Она должна выглядеть так:

    GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0 net.ifnames=0 biosdevname=0"

    После этого обновите настройки GRUB и перезагрузите сервер:

    update-grub
    reboot
  2. Изменение правил udev:

    Проверьте файл /etc/udev/rules.d/70-persistent-net.rules. Вы можете изменить имя интерфейса следующим образом:

    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="72:9d:39:b5:f6:ef", NAME="eth0"

    Если записи не существует, можно создать ее, заменяя MAC-адрес на тот, что назначен вашему устройству.

  3. Маскирование конфигурации systemd:

    Выполните команды для маскировки конфигурации, отвечающей за предсказуемые имена:

    mkdir -p /etc/systemd/network
    ln -s /dev/null /etc/systemd/network/99-default.link

    Это позволит обойти использование предсказуемых имен.

После выполнения данных шагов снова перезагрузите сервер и проверьте результат с помощью команды ip addr show. Интерфейс должен вернуться к прежнему имени eth0.

Эти методы помогут вам восстановить желаемое имя сетевого интерфейса и продолжить настройку VPS в соответствии с вашими потребностями.

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

Капча загружается...