Re: Accès carte réseau uniquement sous root

Page principale

Répondre à ce message
Auteur: Olivier Allard-Jacquin
Date:  
À: guilde
Sujet: Re: Accès carte réseau uniquement sous root
    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 !!