Re: probleme de udev ...

Top Page

Reply to this message
Author: Olivier Allard-Jacquin
Date:  
To: guilde
Subject: Re: probleme de udev ...
    Bonjour,

Le 21/04/2022 à 11:12, Jerome Kieffer a écrit :
> Bonjour,
>
> Je suis sur une machine debian11 assez standard et à jours. Suite à
> un reboot, les interfaces reseau sont dans le mauvais ordre, i.e.
> eth0 et eth1 sont inversées.
>
> Pourtant c'est bien déclaré, et ce depuis des années dans le
> fichier: /etc/udev/rules.d/70-persistent-net.rules
>
> Est ce que vous avez une idée de ce qui a pu se passer ? merci de
> votre aide


    c'est le problème classique des "predictive names"


    Une mise à jour quelconque (kernel, module, librairie), ou un initramfs
à mis en vrac un mécanisme qui "tombait en marche" depuis des années.


    D'après mes notes, à partir du 2020/06/01 sur mes Debian Testing j'ai
observé que le /etc/udev/rules.d/70-persistent-net.rules ne marchait
plus comme il le devait.


    C'est amusant, car pas plus tard que ce matin je travaillai à nouveau
sur ce sujet, à propos d'un adaptateur USB/Ethernet qui avait un nom qui
ne me plaisait pas.


    D'après
https://superuser.com/questions/1431018/network-interface-names-via-udev-for-usb-nics
, la solution peut passer par systemd-udev, et son
/etc/systemd/network/*.link . Voir /usr/share/doc/udev/README.Debian.gz
pour le détail.


    J'ai mis cela en place ce matin, et cela a marché en "hot plug". Par
contre, je n'ai pas la possibilité de rebooter la machine tout de suite,
donc je ne sais pas encore si cela résiste au reboot ... :)


    Sinon, l'autre possibilité est de passer par le
/etc/udev/rules.d/70-persistent-net.rules .  Mais attention au
commentaire qui dit que le paramètre ATTR est CASE SENSIVIVE !!


    Enfin, une toute autre approche (3ème solution):
- se résigner à accepter le "predicitive naming" (outch, pour les vieux
Linuxiens que nous somme cela fait mal ... :) )
- mais retrouver nos chers eth0, eth1, eth2, ... grâce au "rename" du
"/etc/network/interfaces". Exemple chez moi:


# less /etc/network/interfaces
rename enp3s0=eth0
rename enp1s5=eth1

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
         address         a.b.c.d
         netmask         255.255.255.0
         network         a.b.c.0
         broadcast       a.b.c.255
         dns-search    aaaaaa


auto eth1
iface eth1 inet static
         address         e.f.g.h
         netmask         255.255.255.0
         network         e.f.g.0
         broadcast       e.f.g.255
         dns-search    aaaaaa


    On voit dans journalctl les renomages d'interfaces réseaux lors du boot:


# journalctl |grep renamed
avril 20 00:32:32 aaa kernel: r8169 0000:01:05.0 enp1s5: renamed from
eth0
avril 20 00:32:32 aaa kernel: r8169 0000:03:00.0 enp3s0: renamed from
eth1
avril 20 00:32:39 aaa kernel: r8169 0000:03:00.0 eth0: renamed from
enp3s0
avril 20 00:32:39 aaa kernel: r8169 0000:01:05.0 eth1: renamed from
enp1s5

    Cordialement,


                            Olivier
-- 
~~~~~~~  _____/\_____  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Phoenix /   _ \/ _   \    Olivier Allard-Jacquin
        /   / \  / \   \   Web:  http://olivieraj.free.fr/
       /___/  /  \  \___\  Mail: olivieraj@???
~~~~ /////  ///\\\  \\\\\ ~~~~~~~~~~~~~~~~~~~~~~~ Linux Powered !!