зміна назв мережевих інтерфейсів, debian wheezy


14

Я намагаюся встановити ім'я для інтерфейсу "ethLan" замість eth0. Це також гарантує, що ім'я if залишатиметься послідовним при кожному перезавантаженні та ядрі.

Я знайшов деякі статті в темі, але всім їм пару років:
http://www.debian-administration.org/articles/463
http://www.linuxfromscratch.org/hints/downloads/files/ nameif.txt

Я зробив, як вони сказали, і додав ethLan mac до / etc / mactabs / . На даний момент у мене є дві проблеми:
1) if [...] && /sbin/nameifСценарій, який я розміщую в /etc/network/if-pre-up.d/ , не працює. Я вирішив це, додавши це до /etc/init.d/networking , але чому не працює if-pre-up.d ?
2) Інтерфейс не завантажиться, якщо я вручну не виконаю ifconfig ethLan up , незважаючи на додавання його до / etc / network / interfaces . Що я роблю неправильно?

Відповіді:


17

Знайдені вами статті дещо застаріли. Зараз існує простий метод присвоїти імена мережевим інтерфейсам через Udev .

На Debian та похідних (включаючи Ubuntu) слідкуйте за файлом під назвою /etc/udev/rules.d/70-persistent-net.rules. Цей файл створюється за /lib/udev/rules.d/75-persistent-net-generator.rulesдопомогою сценарію /lib/udev/write_net_rules. Щоразу, коли udev бачить новий мережевий пристрій, він присвоює йому новий номер та додає це число до /etc/udev/rules.d/70-persistent-net.rules. Таким чином, номери інтерфейсів зберігаються під час перезавантаження та зберігатимуться після перевстановлення, якщо ви відновите /etc.

(Якщо ваш дистрибутив не доставляє ці файли, шукайте їх у пакеті Debian .)

Якщо ви хочете дати змістовному імені інтерфейсу і у вас є /etc/udev/rules.d/70-persistent-net.rules, все, що вам потрібно зробити, - це відредагувати цей файл і змінити "eth0"на "ethLan". Запустіть, udevadm trigger --sysname eth0щоб перейменувати існуючий пристрій після того, як ви відредагували файл (я думаю, це вимагає вимкнення інтерфейсу). Якщо у вас немає цього файлу, ви можете написати однорядковий збіг самостійно (складні сценарії, які додає Debian, потрібно зробити це автоматично):

SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="01:23:45:67:89:ab", NAME="ethLan"

1
Якщо ви хочете зручний список атрибутів, які можна використовувати у правилах udev, ви можете спробувати щось на кшталт udevadm info -a /sys/class/net/eth0. (див. udevadm(8)подробиці)
Остін Адамс

1
У цьому питанні чітко зазначено, що це стосується Wheezy, але, можливо, варто відзначити, що ця відповідь більше не є дійсною для нових Debian та Ubuntu. Починаючи з системного 220-7 інтерфейсу, іменування потрібно проводити за допомогою інших засобів.
сампі

@sampi Моя відповідь все ще стосується Debian jessie (поточний стабільний реліз). Це не вдається на розтягнення, або це просто рекомендувати застарілий метод? Чи знаєте ви, який реліз Ubuntu є обрізним?
Жил "ТАК - перестань бути злим"

@Gilles Я не вникав досить глибоко в деталі, щоб знати, чи насправді це не вдається чи просто рекомендована депресія. Здається, Ubuntu Wily та новіші системи користуються системою вище 220-7 .
сампі

6

Для людей, які переходять на цю публікацію через пошукову систему, як я:

У розтягуванні Debian і новіших версіях ви можете використовувати файли systemd .link для перейменування пристроїв. Див. Https://manpages.debian.org/stretch/udev/systemd.link.5.en.html для цієї сторінки.

Приклад:

cat /etc/systemd/network/10-uplink0.link 
[Match]
MACAddress=00:0d:b9:49:8a:18

[Link]
Name=uplink0

Не забудьте запустити update-initramfs -uзгодом, щоб вставити ці оновлені конфігураційні файли у свої initramfs, де вони будуть застосовані.


Якщо файли посилань присутні в системі з udev.rules.d, який з них матиме перевагу?
vfclists

1

Існує дещо простіший спосіб зробити це з пакетом з іменем ifrename. Він має окремий (від udev) файл конфігурації, і ви можете використовувати MAC адреси для ідентифікації інтерфейсів.

wireless-toolsОднак це суперечить .


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