Як я можу створити псевдонім для мережевого пристрою?


13

Я намагаюся запустити певну частину програмного забезпечення, яка використовує менеджер ліцензій, який не помічав, що нові дистрибутиви Linux вже не називають своїх мережевих пристроїв eth0. Він намагається перевірити MAC-адресу, але, оскільки мій NIC викликається ens1в Centos 7, це не працює.

Постачальник цього програмного забезпечення вже виправив це на іншому комп'ютері, і я хотів би зрозуміти, як вони це зробили. Вони створили певний псевдонім для ens1того, щоб менеджер ліцензій міг eth0знову знайти .

Псевдонім взагалі не відображається ifconfig -a, але я його видно, коли явно дзвоню ifconfig eth0. За допомогою ip linkкоманди видно наступне:

eth0@ens1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT
link/ether [mac address] brd ff:ff:ff:ff:ff:ff

Що саме вони тут робили, і як я можу відтворити подібний псевдонім на іншому комп’ютері?


2
Вони, можливо, використовували ip link set ens1 name eth0@ens1? Я сумніваюся, що переживе таке перезавантаження, але, можливо, ви можете внести зміни в DEVICEрядку ifcfg-ens1чи щось таке? Ви можете бачити і те, eth0@ens1і ens1в своєму ip linkсписку, або просто нове ім’я?
Ерік Реноф

1
Я щойно перевірив це в VM - також ip link set ens1 name eth0@ens1показує нове ім'я ifconfig -a. і ip link set ens1 alias eth0показується alias eth0на окремому рядку під час запуску ip link.
cas

Відповіді:


5

Можливо, це робиться за допомогою macvlanфункції. Це дозволяє додавати віртуальні інтерфейси Ethernet поверх існуючого апаратного інтерфейсу. У вашому випадку це могло бути зроблено так:

ip link add link ens1 name eth0 type macvlan

За замовчуванням новий інтерфейс отримує випадково обрану локально керовану одноадресову MAC-адресу. Можна також вказати MAC-адресу address <MAC>.


1

Ви можете використовувати правило udev, щоб перейменувати NIC в старий eth0стиль.

наприклад, відредагуйте /etc/udev/rules.d/70-persistent-net.rulesтакий рядок:

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="xx:xx:xx:xx:xx:xx", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

де xx:xx:xx:xx:xx:xxMAC-адреса вашого NIC.

Вам також доведеться оновити будь-яку мережеву конфігурацію, щоб вона використовувала саме eth0ім'я, ніжens1

Див. Передбачувані імена мережевого інтерфейсу для отримання додаткової інформації про те, чому ця зміна сталася.


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

1
Я ніколи не бачив такої eth0@ens1форми раніше, і гуглінг для неї лише показує ваше запитання. Ви пробували grep -r eth0 /etc? якщо ви знайдете його, будь ласка, напишіть, як мені цікаво.
cas
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.