Comment puis-je créer un alias pour un périphérique réseau?

13

J'essaie de faire fonctionner un logiciel particulier qui utilise un gestionnaire de licences qui n'a pas remarqué que les nouvelles distributions Linux ne nomment plus leurs périphériques réseau eth0. Il essaie de vérifier l'adresse MAC, mais comme ma carte réseau est appelée ens1sur Centos 7, cela ne fonctionne pas.

Le fournisseur de ce logiciel a déjà corrigé cela sur un autre ordinateur, et j'aimerais comprendre comment ils l'ont fait. Ils ont créé une sorte d'alias pour ens1que le gestionnaire de licences puisse le retrouver eth0.

L'alias ne s'affiche pas du tout si je le fais ifconfig -a, mais il est visible lors de l'appel explicite ifconfig eth0. En utilisant la ip linkcommande, elle est visible comme suit:

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

Qu'ont-ils fait exactement ici, et comment puis-je recréer ce type d'alias sur un autre ordinateur?

Scientifique fou
la source
2
Ont-ils peut-être utilisé ip link set ens1 name eth0@ens1? Je doute que cela puisse survivre à un redémarrage comme ça, mais peut-être pouvez-vous faire le changement dans la DEVICEligne ifcfg-ens1ou quelque chose? Pouvez-vous voir les deux eth0@ens1et ens1dans votre ip linkliste, ou simplement le nouveau nom?
Eric Renouf
1
je viens de tester cela dans une machine virtuelle - ip link set ens1 name eth0@ens1montre également le nouveau nom ifconfig -a. et ip link set ens1 alias eth0s'affiche alias eth0sur une ligne distincte lorsque vous exécutez ip link.
cas

Réponses:

5

Cela se fait probablement en utilisant la macvlanfonctionnalité. Il permet d'ajouter des interfaces Ethernet virtuelles au-dessus d'une interface matérielle existante. Dans votre cas, cela aurait pu être fait comme ceci:

ip link add link ens1 name eth0 type macvlan

Par défaut, la nouvelle interface obtient une adresse MAC unicast administrée localement et choisie au hasard. Vous pouvez également spécifier l'adresse MAC avec address <MAC>.

starblue
la source
1

Vous pouvez utiliser une règle udev pour renommer la carte réseau à l'ancien eth0style.

par exemple, éditez /etc/udev/rules.d/70-persistent-net.rulespour avoir une ligne comme celle-ci:

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:xxest l'adresse MAC de votre carte réseau.

Vous devrez également mettre à jour toute configuration réseau afin qu'elle utilise le eth0nom plutôt queens1

Voir Noms d'interface réseau prévisibles pour plus d'informations sur les raisons de cette modification.

cas
la source
2
Je voudrais éviter de renommer complètement les interfaces, et je suis également curieux de savoir comment fonctionne l'alias qu'ils ont implémenté.
Mad Scientist
1
je n'ai jamais vu ce eth0@ens1formulaire auparavant, et googler pour cela ne montre que votre question. As-tu essayé grep -r eth0 /etc? si vous le trouvez, veuillez poster car je suis aussi curieux.
cas