Wie kann ich einen Alias ​​für ein Netzwerkgerät erstellen?

13

Ich versuche, eine bestimmte Software zum Laufen zu bringen, die einen Lizenzmanager verwendet, der nicht bemerkt hat, dass neuere Linux-Distributionen ihre Netzwerkgeräte nicht mehr benennen eth0. Es wird versucht, die MAC-Adresse zu überprüfen, aber da meine ens1Netzwerkkarte unter Centos 7 aufgerufen wird, funktioniert dies nicht.

Der Anbieter dieser Software hat dies bereits auf einem anderen Computer behoben, und ich würde gerne verstehen, wie sie dies getan haben. Sie haben eine Art Alias ​​für erstellt, ens1damit der Lizenzmanager sie eth0wieder finden kann .

Der Alias ​​wird in diesem Fall überhaupt nicht angezeigt ifconfig -a, ist jedoch beim expliziten Aufruf sichtbar ifconfig eth0. Mit dem ip linkBefehl wird Folgendes angezeigt:

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

Was genau haben sie hier gemacht und wie kann ich diese Art von Alias ​​auf einem anderen Computer neu erstellen?

Verrückter Wissenschaftler
quelle
2
Haben sie vielleicht benutzt ip link set ens1 name eth0@ens1? Ich bezweifle, dass das einen solchen Neustart überleben würde, aber vielleicht können Sie die Änderung in der DEVICELeitung vornehmen ifcfg-ens1oder so? Können Sie beide eth0@ens1und ens1in Ihrer ip linkListe sehen oder nur den neuen Namen?
Eric Renouf
1
Ich habe dies gerade in einer VM getestet - ip link set ens1 name eth0@ens1zeigt auch den neuen Namen in ifconfig -a. und ip link set ens1 alias eth0wird alias eth0beim Ausführen in einer separaten Zeile angezeigt ip link.
Cas

Antworten:

5

Dies geschieht wahrscheinlich mit der macvlanFunktion. Es ermöglicht das Hinzufügen virtueller Ethernet-Schnittstellen zu einer vorhandenen Hardwareschnittstelle. In Ihrem Fall hätte es so gemacht werden können:

ip link add link ens1 name eth0 type macvlan

Standardmäßig erhält die neue Schnittstelle eine zufällig ausgewählte lokal verwaltete Unicast-MAC-Adresse. Alternativ können Sie die MAC-Adresse mit angeben address <MAC>.

Sternenblau
quelle
1

Sie können eine udev-Regel verwenden, um die Netzwerkkarte wieder in den alten eth0Stil umzubenennen .

zB bearbeiten /etc/udev/rules.d/70-persistent-net.rules, um eine Zeile wie diese zu haben:

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

Wo xx:xx:xx:xx:xx:xxist die MAC-Adresse Ihrer Netzwerkkarte?

Sie müssen auch alle Netzwerkkonfigurationen aktualisieren, damit der eth0Name anstelle von verwendet wirdens1

Weitere Informationen dazu, warum diese Änderung vorgenommen wurde, finden Sie unter Vorhersagbare Netzwerkschnittstellennamen .

cas
quelle
2
Ich möchte vermeiden, die Schnittstellen vollständig umzubenennen, und ich bin auch gespannt, wie der von ihnen implementierte Alias ​​funktioniert.
Mad Scientist
1
Ich habe dieses eth0@ens1Formular noch nie gesehen und das Googeln zeigt nur Ihre Frage. Hast du es versucht grep -r eth0 /etc? Wenn du es findest, poste es bitte, da ich auch neugierig bin.
Cas