noms d'interface réseau prévisibles dans systemd

15

Les versions récentes d'Ubuntu et Debian (stretch) apportent un nouveau schéma de dénomination d'interface réseau.

Maintenant, lors de la mise à jour à partir d'un système qui utilise des noms de style ancien comme "eth0", je voudrais savoir avant de démarrer quel sera le nouveau nom.

Comment puis-je faire ceci? Existe-t-il une invocation magique de "systemd" que je peux utiliser pour modifier / etc / network / interface avant le démarrage (et par la suite la perte de connectivité réseau)?

Ralf Hildebrandt
la source
1
Je suis tombé sur cela, et c'est la meilleure explication de son fonctionnement que j'ai trouvée jusqu'à présent: lists.debian.org/debian-user/2017/07/msg01453.html
Neil

Réponses:

7

Il existe deux schémas différents disponibles: biosdevname vs nom d'interface réseau prévisible.

biosdevname

Biosdevname semble être la valeur par défaut dans ubuntu. Il est activé en installant le package biosdevname.

Le biosdevname d'une interface peut être trouvé avec:

biosdevname -i eth0

Noms d'interface réseau prévisibles

Je pense que c'est la valeur par défaut dans l'étendue Debian, mais doit être explicitement activée lors de la mise à niveau des versions précédentes.

Le nom prévisible pour eth0 peut être trouvé avec:

udevadm test-builtin net_id /sys/class/net/eth0 | grep '^ID_NET_NAME_'
GnP
la source
Bien que la réponse réelle sur la façon de prédire "avant de démarrer ce que sera le nouveau nom" (selon le lien fourni par @Neil) est que le nouveau nom sera le même que l'ancien nom , car il existe toujours des règles udev qui configurent les anciens noms /etc/udev/rules.d/70-persistent-net.rules. Le lien fournira un guide de migration, si vous souhaitez basculer vers un nouveau schéma de dénomination.
Tuomas
2

Le nouveau schéma est apparemment appelé "noms d'interface réseau prévisibles" mais je ne trouve pas beaucoup de documentation sur la façon de réellement prédire le nom. Tout ce que j'ai trouvé à ce sujet pointe essentiellement vers ce commentaire de code source (qui renvoie lui-même au premier lien). D'après le commentaire, il n'est pas du tout clair comment savoir quel schéma d'adressage udev va utiliser pour le nom du périphérique réseau.

Par le premier lien, vous pouvez le désactiver et utiliser les noms traditionnels en ajoutant net.ifnames=0sur la ligne de commande du noyau dans Grub. Selon ce commentaire, il pourrait être nécessaire si vous prévoyez de créer une interface balisée VLAN, car l'extension ajoutée rendra le nom de l'interface trop long.

Sinon, il serait préférable de poser à nouveau la question pour expliquer ce que vous essayez de faire avec le nom (par exemple, configurer l'interface via ansible ou quelque chose de similaire)

DerfK
la source
2

Je ne suis pas sûr que ce soit toujours le cas avec les versions mises à jour, mais sur mes anciens systèmes, j'ai pu créer un fichier vide à /etc/udev/rules.d/80-net-name-slot.ruleset cela désactiverait la fonction de dénomination "prévisible". Vous pouvez également créer votre propre règle et nommer vous-même les interfaces en fonction de l'adresse mac ou des connexions PCI / USB.

user143311
la source
0

Cette documentation pourrait vous aider un peu. Voir la section sous "Qu'est-ce qui a précisément changé dans la v197?". Oui, je me rends compte que cela a une valeur quelque peu limitée, mais cela pourrait vous donner une avenue pour de plus amples recherches.

Charles Burge
la source