Les versions récentes d'Ubuntu et de 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 d'anciens noms de style 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 éditer/etc/network/interface avant le démarrage (et par la suite la perte de connectivité réseau)?
Il existe deux schémas différents disponibles: biosdevname vs nom d'interface réseau prévisible.
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
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_'
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 code source commentaire (qui lui-même renvoie 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=0
sur la ligne de commande du noyau dans Grub. Selon ce commentaire , cela pourrait être nécessaire si vous prévoyez de créer une interface étiquetée VLAN, car l'extension ajoutée rendra le nom de l'interface trop long.
Sinon, il pourrait être 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)
Je ne sais pas si c'est 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.rules
et 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.
Cette documentation pourrait 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 voie pour de plus amples recherches.