Bonsoir Jérôme,
Le 08/02/2023 à 11:23, Jerome Kieffer a écrit :
> J'ai demandé que les interfaces réseau utilisent le nomage "logique" au boot pour être sur d'eviter les interferances avec les noms historique.
> Parametre de boot du kernel `net.ifname=1`
Tu utilises cela ?
Chez moi c'est "biosdevname=1", mais je ne suis pas convaincu à 100%
que cela marche mieux.
Regarde aussi dans ton /etc/sysctl.d/ , si tu n'as pas des vielles
commandes qui changent les paramètres kernel.
Passé un temps, je me servais d'un "/etc/sysctl.d/disable_ipv6.conf"
pour désactiver IPv6 , mais cela ne marche plus. Cela a été remplacé par
un "ipv6.disable=1" en paramètre du kernel
Il y a un truc que je ne comprends pas dans ta configuration :
> ```
> /etc/systemd/network % for i in $(ls); do echo "#######################";echo Filename: $i; cat $i; done
> #######################
> Filename: eth0.link
> [Match]
> MACAddress=48:4d:7e:f0:02:88
> Driver=e1000e
>
> [Link]
> Name=eth0
>
> #######################
> Filename: eth1.link
> [Match]
> MACAddress=a0:36:9f:e0:1d:88
> Driver=igb
>
> [Link]
> Name=eth1
> #######################
> Filename: eth2.link
> [Match]
> MACAddress=00:1b:21:07:db:d4
> Driver=e1000
>
> [Link]
> Name=eth2
> #######################
> Filename: eth3.link
> [Match]
> MACAddress=00:1b:21:07:db:d5
> Driver=e1000
>
> [Link]
> Name=eth3
Ici, tu nommes tes cartes réseaux avec "l'ancien" système à base de eth*
> Et pour sur que ce soit compris, j'ai aussi mis ca dans /etc/network/interfaces
> ```
> rename eth0=enp0s25
> rename eth1=enp8s0
> rename eth2=enp7s2f0
> rename eth3=enp7s2f1
> ```
Mais ici, tu renommes les anciens noms avec le nouveau système de nom
dit "prédictif".
Ce n'est pas logique:
1) Ce n'est pas l'exemple que j'ai donné
2) mais surtout, je ne suis pas sûr que tu ais le "droit" d'utiliser ces
noms-là, car ils sont générés par le kernel.
Autre chose pour les /etc/systemd/network/*.link : L'ordre alphabétique
du NOM du fichier permet de définir l'ordre de chargement des cartes réseaux
>
> et en pratique, l'option du kernel à l'air d'être prise en compte, mais ni systemd, ni interfaces
> % sudo dmesg |grep eth
> [ 1.476481] igb 0000:08:00.0: added PHC on eth0
> [ 1.476595] igb 0000:08:00.0: eth0: (PCIe:2.5Gb/s:Width x1) a0:36:9f:e0:1d:88
Cela correspond au /etc/systemd/network/eth0.link
> [ 1.476848] igb 0000:08:00.0: eth0: PBA No: H30936-003
> [ 1.597502] e1000e 0000:00:19.0 eth1: (PCI Express:2.5GT/s:Width x1) 48:4d:7e:f0:02:88
Cela correspond au /etc/systemd/network/eth1.link
> [ 1.597568] e1000e 0000:00:19.0 eth1: Intel(R) PRO/1000 Network Connection
> [ 1.597661] e1000e 0000:00:19.0 eth1: MAC: 11, PHY: 12, PBA No: FFFFFF-0FF
> [ 1.778206] e1000 0000:07:02.0 eth2: (PCI:33MHz:32-bit) 00:1b:21:07:db:d4
Cela correspond au /etc/systemd/network/eth2.link
> [ 1.778265] e1000 0000:07:02.0 eth2: Intel(R) PRO/1000 Network Connection
> [ 2.110182] e1000 0000:07:02.1 eth3: (PCI:33MHz:32-bit) 00:1b:21:07:db:d5
Cela correspond au /etc/systemd/network/eth3.link
Je dirais donc que jusque là tout est OK.
Il faudrait "décompiler" le initrd, mais je pense que du fait que cela
se charge en 2.11s, cette configuration a probablement été injecté par
"initramfs" dans l'initrd. Ce qui laisse à supposer que les
modifications des /etc/systemd/network/*.link nécessitent un passage par
initramfs.
> [ 2.110256] e1000 0000:07:02.1 eth3: Intel(R) PRO/1000 Network Connection
> [ 3.366001] e1000e 0000:00:19.0 enp0s25: renamed from eth1
> [ 3.388333] e1000 0000:07:02.1 enp7s2f1: renamed from eth3
> [ 3.432084] igb 0000:08:00.0 enp8s0: renamed from eth0
> [ 3.452167] e1000 0000:07:02.0 enp7s2f0: renamed from eth2
Là par contre, je ne vois quel est le mécanisme qui est derrière.
Probablement le kernel lui-même, ou un morceau d'initrd qui fait quelque
chose
> [ 20.744829] e1000e 0000:00:19.0 eth1: renamed from enp0s25
> [ 20.850718] igb 0000:08:00.0 eth4: renamed from enp8s0
> [ 20.884010] e1000 0000:07:02.0 eth2: renamed from enp7s2f0
> [ 20.911999] e1000 0000:07:02.1 eth3: renamed from enp7s2f1
En toute logique, c'est "systemctl start Networking" qui passe par là.
Cela explique le 20s.
Par contre, tu noteras un truc bizarre, c'est que les interfaces sont
nommés de eth1 à eth4, alors que ton fichier les nommes eth0 à eth1
> Le fait que les interfaces soit renomées à 20secondes fait penser à un
> process en user-space, mais j'ai beau faire des grep de partout dans /etc/ rien !
>
> Pour info, vers 20" il y a le driver nvidia qui se charge, donc on est
> en train de faire des "modprobe", mais la beauté de systemd, c'est de
> faire ca en parallel.
>
> J'ai pas l'impression d'avoir avancé d'un poil.
Suggestions:
- passe "biosdevname=1" en paramètre du kernel, à la place de "net.ifname=1"
- supprime les lignes "rename" de /etc/network/interfaces
Enfin, note que tu es en debian11, alors que je suis en testing. Or,
c'est en 2021 et 2022 que j'ai observé que le comportement des noms des
cartes réseaux avait changé.
Cordialement,
Olivier
--
~~~~~~~ _____/\_____ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Phoenix / _ \/ _ \ Olivier Allard-Jacquin
/ / \ / \ \ Web: http://olivieraj.free.fr/
/___/ / \ \___\ Mail: olivieraj@???
~~~~ ///// ///\\\ \\\\\ ~~~~~~~~~~~~~~~~~~~~~~~ Linux Powered !!