bonjour

J'ai un serveur Debian domestique (Debian amd64 stable) munie de 2 interfaces réseaux qui ont gardé l'ancienne dénomination "eth0" et "eth1". Anciennement gérées dans /etc/network/interfaces, elles sont gérées par systemd.

 * eth0, type 8139too : interface réseau interne, configuration manuelle
 * eth1, type r8169 : interface externe, géré par un serveur DHCP (Freebox)

Tout allait bien jusqu'à ce que Debian "décide" lors d'un reboot impromptu (arrêt ordonné par l'onduleur suite coupure électrique) d'inverser les noms "eth0" et "eth1". De là on comprend que rien ne fonctionne car les services écoutent soit sur "eth0", soit sur "eth1".

Ma configuration :

*# cat /etc/systemd/network/10-eth0.network *

[Match]

Name=eth0

MACAddress=00:50:bf:d8:b9:1f

[Link]

#MACAddress=Changer l'adresse MAC

#MTUBytes=Changer la valeur du MTU

[Network]

Address=192.168.2.1/24

DNS=192.168.2.1 127.0.0.1

Domains=vets.in

IPv6PrivacyExtensions=false


*#cat /etc/systemd/network/10-eth1.network *

[Match]

Name=eth1

MACAddress=00:1a:92:90:41:58

[Network]

DHCP=ipv4

(j'ai rajouté le paramètre "Name=" dans chacun des fichiers, sans résultat)


*# cat /etc/udev/rules.d/70-persistent-net.rules *

# This file was automatically generated by the /lib/udev/write_net_rules

# program, run by the persistent-net-generator.rules rules file.

#

# You can modify it, as long as you keep each rule on a single

# line, and change only the value of the NAME= key.

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1a:92:90:41:58", ATTR{dev_id}=="0x0", 
ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:50:bf:d8:b9:1f", ATTR{dev_id}=="0x0", 
ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"


(le fichier a été créé à la main)



Situation :

# systemctl status systemd-networkd

● systemd-networkd.service - Network Configuration

     Loaded: loaded (/lib/systemd/system/systemd-networkd.service; enabled; 
preset: enabled)

     Active: active (running) since Sat 2024-08-03 12:34:51 CEST; 1h 48min ago

TriggeredBy: ● systemd-networkd.socket

       Docs:man:systemd-networkd.service(8)

             man:org.freedesktop.network1(5)

   Main PID: 2432 (systemd-network)

     Status: "Processing requests..."

      Tasks: 1 (limit: 6480)

     Memory: 1.5M

        CPU: 139ms

     CGroup: /system.slice/systemd-networkd.service

             └─2432 /lib/systemd/systemd-networkd

août 03 12:34:51 quietty systemd-networkd[2432]: lo: Link UP

août 03 12:34:51 quietty systemd-networkd[2432]: lo: Gained carrier

août 03 12:34:51 quietty systemd-networkd[2432]: Enumeration completed

août 03 12:34:51 quietty systemd[1]: Started systemd-networkd.service - Network 
Configuration.

août 03 12:37:11 quietty systemd-networkd[2432]: eth1: Link UP

août 03 12:37:11 quietty systemd-networkd[2432]: eth1: Gained carrier

août 03 12:37:16 quietty systemd-networkd[2432]: eth0: Link UP

août 03 12:37:18 quietty systemd-networkd[2432]: eth0: Gained carrier

août 03 14:13:36 quietty systemd-networkd[2432]: eth1: Link DOWN

août 03 14:13:36 quietty systemd-networkd[2432]: eth1: Lost carrier

# networkctl list

IDX LINK TYPE     OPERATIONAL SETUP

  1 lo   loopback carrier     unmanaged

  2 eth0 ether    routable    pending

  3 eth1 ether    carrier     pending

  4 tun0 none     routable    unmanaged

4 links listed.

# networkctl status

●        State: routable

  Online state: unknown

       Address: 192.168.1.1 on eth0

                192.168.3.1 on tun0

août 03 12:34:51 quietty systemd-networkd[2432]: tun0: Link UP

août 03 12:34:51 quietty systemd-networkd[2432]: tun0: Gained carrier

août 03 12:34:51 quietty systemd-networkd[2432]: lo: Link UP

août 03 12:34:51 quietty systemd-networkd[2432]: lo: Gained carrier

août 03 12:34:51 quietty systemd-networkd[2432]: Enumeration completed

août 03 12:34:51 quietty systemd[1]: Started systemd-networkd.service - Network 
Configuration.

août 03 12:37:11 quietty systemd-networkd[2432]: eth1: Link UP

août 03 12:37:11 quietty systemd-networkd[2432]: eth1: Gained carrier

août 03 12:37:16 quietty systemd-networkd[2432]: eth0: Link UP

août 03 12:37:18 quietty systemd-networkd[2432]: eth0: Gained carrier

root@quietty:~# networkctl status eth0

● 2: eth0

                     Link File: n/a

                  Network File: n/a

                         State: routable (pending)

                  Online state: unknown

                          Type: ether

             Alternative Names: enp2s0

              Hardware Address: 00:1a:92:90:41:58 (ASUSTek COMPUTER INC.)

                           MTU: 1500 (min: 68, max: 4074)

                         QDisc: fq_codel

  IPv6 Address Generation Mode: eui64

      Number of Queues (Tx/Rx): 1/1

              Auto negotiation: yes

                         Speed: 1Gbps

                        Duplex: full

                          Port: tp

                       Address: 192.168.1.1

août 03 12:16:41 quietty (udev-worker)[318]: eth0: Failed to rename network 
interface 3 from 'eth1' to 'eth0': Le fichier existe

août 03 12:16:41 quietty (udev-worker)[318]: eth0: Failed to process device, 
ignoring: Le fichier existe

août 03 12:37:16 quietty systemd-networkd[2432]: eth0: Link UP

août 03 12:37:18 quietty systemd-networkd[2432]: eth0: Gained carrier

root@quietty:~# networkctl status eth1

● 3: eth1

                     Link File: n/a

                  Network File: n/a

                         State: carrier (pending)

                  Online state: unknown

                          Type: ether

             Alternative Names: enp5s3

              Hardware Address: 00:50:bf:d8:b9:1f (Metalligence Technology 
Corp.)

                           MTU: 1500 (min: 68, max: 1770)

                         QDisc: fq_codel

  IPv6 Address Generation Mode: eui64

      Number of Queues (Tx/Rx): 1/1

              Auto negotiation: yes

                         Speed: 100Mbps

                        Duplex: full

                          Port: mii

août 03 12:16:41 quietty (udev-worker)[320]: eth1: Failed to rename network 
interface 2 from 'eth0' to 'eth1': Le fichier existe

août 03 12:16:41 quietty (udev-worker)[320]: eth1: Failed to process device, 
ignoring: Le fichier existe

août 03 12:37:11 quietty systemd-networkd[2432]: eth1: Link UP

août 03 12:37:11 quietty systemd-networkd[2432]: eth1: Gained carrier


(j'ai forcé eth0 à la main pour qu'il puisse obtenir une IP de la Freebox et  donc pouvoir y accéder)

extrait de la syslog (grep eth syslog), puis filtré

2024-08-03T12:17:02.162959+02:00 quietty (udev-worker)[318]: eth0: Failed to 
rename network interface 3 from 'eth1' to 'eth0': Le fichier existe
2024-08-03T12:17:02.162970+02:00 quietty (udev-worker)[318]: eth0: Failed to 
process device, ignoring: Le fichier existe
2024-08-03T12:17:02.162987+02:00 quietty (udev-worker)[320]: eth1: Failed to 
rename network interface 2 from 'eth0' to 'eth1': Le fichier existe
2024-08-03T12:17:02.162998+02:00 quietty (udev-worker)[320]: eth1: Failed to 
process device, ignoring: Le fichier existe
2024-08-03T12:17:02.166188+02:00 quietty kernel: [   16.685250] r8169 
0000:02:00.0 eth0: RTL8168b/8111b, 00:1a:92:90:41:58, XID 380, IRQ 17
2024-08-03T12:17:02.166191+02:00 quietty kernel: [   16.685261] r8169 
0000:02:00.0 eth0: jumbo features [frames: 4074 bytes, tx checksumming: ko]
2024-08-03T12:17:02.166216+02:00 quietty kernel: [   16.773937] 8139too 
0000:05:03.0 eth1: RealTek RTL8139 at 0x000000008c73e2a6, 00:50:bf:d8:b9:1f, 
IRQ 16
2024-08-03T12:37:11.883673+02:00 quietty kernel: [ 1249.164501] 8139too 
0000:05:03.0 eth1: link up, 100Mbps, full-duplex, lpa 0xC5E1
2024-08-03T12:37:11.883283+02:00 quietty systemd-networkd[2432]: eth1: Link UP
2024-08-03T12:37:11.884671+02:00 quietty systemd-networkd[2432]: eth1: Gained 
carrier
2024-08-03T12:37:16.141797+02:00 quietty systemd-networkd[2432]: eth0: Link UP
2024-08-03T12:37:16.143669+02:00 quietty kernel: [ 1253.425217] r8169 
0000:02:00.0 eth0: Link is Down
2024-08-03T12:37:18.810345+02:00 quietty systemd-networkd[2432]: eth0: Gained 
carrier
2024-08-03T12:37:18.811683+02:00 quietty kernel: [ 1256.091726] r8169 
0000:02:00.0 eth0: Link is Up - 1Gbps/Full - flow control rx/tx
2024-08-03T12:43:40.578099+02:00 quietty avahi-daemon[844]: Joining mDNS 
multicast group on interface eth0.IPv4 with address 192.168.1.1.
2024-08-03T12:43:40.580205+02:00 quietty avahi-daemon[844]: New relevant 
interface eth0.IPv4 for mDNS.
2024-08-03T12:43:40.580374+02:00 quietty avahi-daemon[844]: Registering new 
address record for 192.168.1.1 on eth0.IPv4.

extrait syslog concernant l'interface 8139too

2024-08-03T12:17:02.166175+02:00 quietty kernel: [   16.676339] r8169 
0000:02:00.0: can't disable ASPM; OS doesn't have ASPM control

2024-08-03T12:17:02.166188+02:00 quietty kernel: [   16.685250] r8169 
0000:02:00.0 eth0: RTL8168b/8111b, 00:1a:92:90:41:58, XID 380, IRQ 17

2024-08-03T12:17:02.166191+02:00 quietty kernel: [   16.685261] r8169 
0000:02:00.0 eth0: jumbo features [frames: 4074 bytes, tx checksumming: ko]

2024-08-03T12:37:16.099733+02:00 quietty kernel: [ 1253.380972] RTL8211B 
Gigabit Ethernet r8169-0-200:00: attached PHY driver 
(mii_bus:phy_addr=r8169-0-200:00, irq=MAC)

2024-08-03T12:37:16.143669+02:00 quietty kernel: [ 1253.425217] r8169 
0000:02:00.0 eth0: Link is Down

2024-08-03T12:37:18.811683+02:00 quietty kernel: [ 1256.091726] r8169 
0000:02:00.0 eth0: Link is Up - 1Gbps/Full - flow control rx/tx

J'ai compris que les interfaces étaient démarrées et nommées sans tenir compte des fichiers de configuration dans /etc/systemd/network

et que la règle udev du coup n'était pas appliquée car les noms existent déjà.

Je pense soit à une fausse manipulation de ma part (mais rien trouvé de pertinent en cherchant les noms d'interface ou MAC dans /etc) ou à un changement de comportement lié à un nouveau noyau (les paquets mis à jour s'installent sans reboot) ou un paramétrage du noyau mal maîtrisé.

j'ai noté aussi que les interfaces étaient au status "pending" au lieu de "configured"

Merci d'avance de vos idées

amitiés

Erwann



Répondre à