4.7 KiB
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 s’appuie 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