Nouveau nom des interfaces réseau sous Stretch

Paramétrer le Raspberry Pi B/B+ pour se connecter via Ethernet ou une clé WiFi USB

Modérateurs : Francois, maxty01

Jojo
Messages : 25
Enregistré le : ven. 29 sept. 2017 11:49
Localisation : Pays De La Loire

Nouveau nom des interfaces réseau sous Stretch

Messagepar Jojo » mar. 31 oct. 2017 12:59

Bonjour à tous,

Comme l'ont certainement remarqué ceux qui ont fait la migration vers Raspbian Stretch, le nom des interfaces réseau à changé depuis la nouvelle mouture de Raspbian.
Exit donc le classique eth0, place à une dénomination bien plus barbare de la forme enxb827eb******.
Comme on peut le voir voir en tapant la commande "ifconfig", ce nouveau nom correspond à l'adresse MAC de votre carte réseau.

L'adresse MAC du Raspberry Pi se décline ainsi : b8:27:eb:**:**:** avec la suite de 6 premiers caractères correspondant à la plage d'adresses MAC dévolues à la fondation.
Et le nom de l'interface réseau est directement tiré de cette adresse MAC, préfixée des 3 caractères "enx".
Ainsi une RPi dont l'adresse MAC serait b8:27:eb:01:02:03 aura pour nom d'interface ethernet : enxb827eb010203.

Dans la pratique cela ne change rien si vous utilisez votre Raspberry sans toucher aux réglages réseau, aucun souci, on branche et c'est bon.
Mais si pour un projet x ou y vous avez besoin de modifier ces réglages (ip fixe par exemple), cela peut-être plus contraignant.

Pour récupérer le nom de la nouvelle interface ethernet, vous pouvez utiliser la commande :

Code : Tout sélectionner

find /sys/class/net/ -name enx* -execdir echo {} ';' | tail -c+3

Celle-ci va chercher dans le répertoire /sys/class/net le dossier correspondant à l'interface enx... et vous donne le nom de celui-ci.

Autre solution qui fonctionne si l'interface enx... est listée en première quand vous tapez la commande ifconfig :

Code : Tout sélectionner

ifconfig >> temp && head -1 temp | cut -b 15 && rm temp


Ou encore (plus propre) :

Code : Tout sélectionner

 echo "enx" >> temp && cat /sys/class/net/enx*/address >> temp && tr -d '\r\n' < temp > temp2 && tr -d ':' < temp2 > temp3 && cat temp3 && rm temp*

Mais j'aime moins ces deux options car elles créent des fichiers temporaires.

Dans le cadre d'une utilisation domestique où l'on est rarement amené à toucher à ces réglages c'est un peu abattre une mouche avec un bazooka, la commande "ifconfig" associée au bon vieux duo papier-crayon est bien plus rapide.
Mais pour automatiser une procédure d'installation sur une série de Raspberry Pi, il peut être pratique de pouvoir récupérer facilement ce nom d'interface.

Un peu de documentation sur le pourquoi de ce changement :
https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/
https://www.debian.org/releases/stable/armhf/release-notes/ch-whats-new.en.html#new-interface-names

A+

Jojo


NB : Je sais qu'il est possible de modifier le nom des interfaces réseau pour retrouver le bon vieux eth0 mais comme ces changements semblent définitifs, autant s'y adapter tout de suite ;)

[EDIT] Je n'ai pas pu tester ce fonctionnement avec une Raspberry disposant de plusieurs interfaces ethernet avec des HAT par exemple, seulement avec des RPi possédant deux interfaces : une Ethernet classique et une simulée sur le port série (protocole PPP).
[EDIT 2] Il existe certainement une méthode plus simple mais je n'ai rien trouvé sur G... qui me convienne.
"Il ne faut jamais remettre au lendemain ce que l'on peut faire le surlendemain." ~ Alphonse Allais

Retourner vers « Le réseau sur le Raspberry Pï »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité