передбачувані імена мережевого інтерфейсу в systemd


15

Останні версії Ubuntu та Debian (розтягування) пропонують нову схему іменування мережевого інтерфейсу.

Тепер, оновлюючись із системи, яка використовує старі імена стилів, наприклад, "eth0", я хотів би знати перед завантаженням, яким буде нове ім'я.

Як я можу це зробити? Чи є магічний виклик "systemd", який я можу використовувати для редагування / etc / network / interface для завантаження (і згодом втрачає мережеве підключення)?


1
Я наткнувся на це, і це найкраще пояснення того, як це працює, я знайшов поки що: list.debian.org/debian-user/2017/07/msg01453.html
Ніл

Відповіді:


7

Існує дві різні схеми: biosdevname vs передбачувана назва мережевого інтерфейсу.

biosdevname

Здається, біобудівництво за замовчуванням у ubuntu. Активується шляхом встановлення пакета biosdevname.

Biosdevname інтерфейсу можна знайти за допомогою:

biosdevname -i eth0

Передбачувані імена мережевого інтерфейсу

Я вважаю, що це дефолт у розтягуванні Debian, але його потрібно чітко включити при оновленні попередніх версій.

Передбачуване ім'я eth0 можна знайти за допомогою:

udevadm test-builtin net_id /sys/class/net/eth0 | grep '^ID_NET_NAME_'

Хоча фактична відповідь про те, як передбачити "до завантаження, яким буде нове ім'я" (за посиланням, наданим @Neil), нове ім'я буде таким самим, як і старе ім'я , оскільки все ще є правила udev, які налаштовують старі назви в /etc/udev/rules.d/70-persistent-net.rules. Посилання надає посібник з міграції, якщо ви хочете перейти до нової схеми іменування.
Туомас

2

Нова схема, мабуть, називається "передбачувані імена мережевого інтерфейсу", але я не знаходжу багато документації щодо того, як насправді передбачити ім'я. Все, що я знайшов про це, в основному вказує на цей коментар до вихідного коду (який сам вказує на перше посилання). З коментаря зовсім не зрозуміло, як знати, яку схему адресації udev використовуватиме для імені мережевого пристрою.

За першим посиланням ви можете відключити його та використовувати традиційні імена, додавши net.ifnames=0в командний рядок ядра в Grub. Відповідно до цього коментаря це може знадобитися, якщо ви плануєте створити інтерфейс з тегом VLAN, оскільки додане розширення зробить назву інтерфейсу занадто довгою.

В іншому випадку може бути краще задати питання, щоб пояснити, що ви намагаєтеся зробити з ім'ям (наприклад, налаштувати інтерфейс через ansible або щось подібне)


2

Я не впевнений, що це все ще стосується оновлених версій, але в моїх старих системах мені вдалося створити порожній файл у, /etc/udev/rules.d/80-net-name-slot.rulesі це відключить функцію "передбачуваного" іменування. Ви також можете створити своє власне правило та назвати інтерфейси самостійно на основі mac-адреси чи підключень PCI / USB.


0

Ця документація може трохи допомогти. Дивіться розділ "Що саме змінилося в v197?". Так, я розумію, що це дещо обмежене значення, але це може дати вам дорогу для подальших досліджень.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.