kyopages/docs/trucs/interfaces-nommage-classiqu...

4.7 KiB
Raw Blame History

s'applique à Debian > 8, donc Stretch

interfaces réseau nommage classique

retour au schéma classique de nommage

introduction rapide

Depuis la version 197 systemd/udev a introduit un nouveau schéma de nommage: Predictable Network Interface Names sensé stabiliser le nommage des interfaces réseau. Il fait disparaître les classiques noms ("eth0", "wlan0", ...). Il sappuie sur le nommage du noyau pour lui appliquer des règles, qui par défaut se trouvent dans /lib/systemd/network/99-default.link, avec notamment la règle NamePolicy=kernel database onboard slot path.

Le nom du noyau (issu de devfs du kernel, wlan0 par exemple) sera remplacé par un index du firmware(ID_NET_NAME_ONBOARD) ou un numéro de slot (ID_NET_NAME_SLOT), ou en cas de soucis (falls back):

  • un nom d'une base(ID_NET_NAME_FROM_DATABASE)
  • le nom issu de la localisation physique (ID_NET_NAME_PATH)

Ce nommage ne fonctionne pas toujours bien pour les périphériques USB, lent à s'initialiser(*****). Dans ce cas, il est utilisé un nommage basé sur l'adresse MAC (ID_NET_NAME_MAC) (voir /lib/udev/rules.d/73-usb-net-by-mac.rules), avec pour résultat un wlx94103ef6120a comme nom d'interface.

(*****)La lenteur d'initialisation est une idée personnelle de l'auteur, dû à quelques constats.

Ce nommage basé sur MAC, n'est pas prise en charge, pour une raison pas encore investigée, par NeworkManager (NM) et Wicd, alors que NM est censé jouer avec l'adresse MAC pour faciliter le spoofing_ (version 1.4 et +).

Jessie est censée avoir un jeu de règles pour prévenir cela (/lib/udev/rules.d/75-persistent-net-generator.rules) ce qui pouvait aussi poser problème avec un résultat comme rename1 par exemple. Cette règle est abandonnée dans Stretch

Debian annonce que ce vieux schéma est déprécié dans Stretch et plus du tout supporté dans Buster (je n'ai pas compris qu'elle était la portée réelle de cet avertissement).

Pour obtenir un résultat rapidement, il peut donc être utile de revenir à l'ancien nommage pour ces adaptateurs wifi USB, et de désactiver ces nouveaux noms persistants.

renommage via désactivation règle Udev

su # ou sudo su pour passer en root

on efface un éventuel fichier de règles personnalisé

rm /etc/systemd/network/99-default.link

un éventuel message d'erreur comme ci-dessous est normal s'il n'y avait pas de règles personnalisées

rm: impossible de supprimer « /etc/systemd/network/99-default.link »: Aucun fichier ou dossier de ce type

on désactive les règles de nommage des interfaces réseaux

mv /lib/systemd/network/99-default.link /lib/systemd/network/99-default.link.bak
ln -s /dev/null /lib/systemd/network/99-default.link

puis

reboot

attention

ça ne fonctionne que pour les interfaces wlan, mais pas les ethernet qui sont dans le devfs du noyau. cela répond à la problématique des adaptateurs wifi usb.

pour les traditionalistes qui voudrait éviter le renommage de toutes les interfaces, il faut reconstruire le initrd. ceci en cas d'adressage fixe sur ethernet simultané(?!), il vaut mieux le faire.

update-initramfs -u
reboot

pour vérifier après reboot:

ip address

renommage traditionnel via Grub

su # ou sudo su pour passer en root

on lance avec son éditeur préféré geany kate pluma gedit (plus confortable) ou nano emacs vi...

geany /etc/default/grub

ajouter les paramètres net.ifnames=0 biosdevname=0 dans une ligne de commande du kernel, en commentant la ligne existante et en la dupliquant, par exemple:

#GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX_DEFAULT="quiet net.ifnames=0 biosdevname=0"

enregistrer
quitter puis

update-grub

puis

reboot

pour vérifier après reboot:

ip address

retour à la normale, règle Udev

su # ou sudo su pour passer en root

on enlève le lien, et on on remet la règle en place

unlink /lib/systemd/network/99-default.link
mv /lib/systemd/network/99-default.link.bak /lib/systemd/network/99-default.link

puis

reboot

ou éventuellement, selon la procédure suivie

update-initramfs -u
reboot

retour à la normale, Grub

su # ou sudo su pour passer en root

on lance avec son éditeur préféré geany kate pluma gedit (plus confortable) ou nano emacs vi...

geany /etc/default/grub

supprimer la ligne GRUB_CMDLINE_LINUX_DEFAULT="quiet net.ifnames=0 biosdevname=0" (exemple)
dé-commenter la ligne originale:

GRUB_CMDLINE_LINUX_DEFAULT="quiet"

enregistrer
quitter puis

update-grub

puis

reboot