Пользовательская схема именования сетевых устройств

266
Askhat Nuriddinov

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

Например, с файлом:

$ cat /etc/network/nic_names my_first_nic my_second_nic 

мне нужно получить

$ ip link list 1: lo 2: my_first_nic 3: my_second_nic 

Как я могу настроить образ для поддержки схемы именования моих пользовательских сетевых устройств?

1
Вероятно, было бы полезно заявить, почему вам это нужно. Требование к файлу накладывает ограничение на возможные решения, но оно может даже не применяться. Также добавьте, если вы можете расширить «все, что вы делаете» с помощью сценариев и т. Д. mtak 6 лет назад 1
Используйте правила `udev`, чтобы дать сетевым интерфейсам постоянные имена. Составьте правило (правила), чтобы оно соответствовало вашей схеме / списку, или сгенерируйте их из списка подходящих. Также подумайте о том, как MAC-адреса вписываются во все, что вы хотите сделать. dirkt 6 лет назад 0
Если вы не знаете, сколько сетевых карт может присутствовать, как вы ожидаете, что статического предопределенного списка будет достаточно? Seth 6 лет назад 0
@ Я знаю, что эта сумма не будет превышать заранее определенного числа. Askhat Nuriddinov 6 лет назад 0
@mtak Я использую программное обеспечение, которое требует, чтобы интерфейсы были названы определенным образом. Я могу использовать скрипты для этого переименования. Я пытался добавить `ip link set set $ old name $ name`, но не смог ssh после этого. Askhat Nuriddinov 6 лет назад 0

1 ответ на вопрос

1
Askhat Nuriddinov

Вот решение, которое я нашел:

$ cat /etc/udev/rules.d/71-rename-ifs.rules  SUBSYSTEM=="net" ATTRS=="2" NAME="my_first_nic" SUBSYSTEM=="net" ATTRS=="3" NAME="my_second_nic" ... 

ifindex==1 пропускается, так как это петлевой интерфейс.