diff --git a/docs/trucs/interfaces-nommage-classique.md b/docs/trucs/interfaces-nommage-classique.md new file mode 100644 index 0000000..0b2fe55 --- /dev/null +++ b/docs/trucs/interfaces-nommage-classique.md @@ -0,0 +1,165 @@ +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 + +```shell +su # ou sudo su pour passer en root +``` + +on efface un éventuel fichier de règles personnalisé +```shell +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 +````shell +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 +```shell +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 +```shell +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. + +```shell +update-initramfs -u +reboot +``` + +pour vérifier après reboot: +```shell +ip address +``` + +## renommage _traditionnel_ via Grub + +```shell +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... +```shell +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**: +```shell +#GRUB_CMDLINE_LINUX_DEFAULT="quiet" +GRUB_CMDLINE_LINUX_DEFAULT="quiet net.ifnames=0 biosdevname=0" +``` +enregistrer +quitter +puis +```shell +update-grub +``` + +puis +```shell +reboot +``` + +pour vérifier après reboot: +```shell +ip address +``` + +## retour à la normale, règle Udev + +```shell +su # ou sudo su pour passer en root +``` + +on enlève le lien, et on on remet la règle en place +```shell +unlink /lib/systemd/network/99-default.link +mv /lib/systemd/network/99-default.link.bak /lib/systemd/network/99-default.link + +``` + +puis +```shell +reboot +``` + +**ou** éventuellement, selon la procédure suivie +```shell +update-initramfs -u +reboot +``` + +## retour à la normale, Grub + +```shell +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... +```shell +geany /etc/default/grub +``` + +supprimer la ligne `GRUB_CMDLINE_LINUX_DEFAULT="quiet net.ifnames=0 biosdevname=0"` (exemple) +dé-commenter la ligne originale: +```shell +GRUB_CMDLINE_LINUX_DEFAULT="quiet" +``` + +enregistrer +quitter +puis +```shell +update-grub +``` + +puis +```shell +reboot +``` diff --git a/mkdocs.yml b/mkdocs.yml index 3eca6bf..e0657dd 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -39,9 +39,10 @@ pages: - TermRecord: softs/termrecord.md - liens: softs/liens.md - trucs: - - iso sur clé usb: trucs/iso-sur-usb.md + - interfaces nommage classique: trucs/interfaces-nommage-classique.md - irc usage: trucs/irc-usage.md - irc admin: trucs/irc-admin.md + - iso sur clé usb: trucs/iso-sur-usb.md - kernel nomodeset: trucs/kernel-nomodeset.md - kernel boot options: trucs/kernel-boot-options.md - kernel parameters: trucs/kernel-parameters.md