I have a Proxmox node with 3x RJ-45 connectors and 2x SFP+ connectors.
It is losing L2 connectivity. I then have to physically reboot the node several times before it connects again.
Below is the output from the
Here is the main interface configuration file created by the Proxmox GUI.
Below are kernel messages related to interfaces after a successful boot:
The Udev service display these messages:
The system has no udev rules set on
After a long search, I found that Proxmox uses SystemD's versioned naming scheme for network device names.
SystemD seems to have pinned the interface names.
These are improper names, but I don't get why.
I tried to rename the interfaces in these files, but it keep loosing connectivity.
I prefer the interfaces use predictable names instead of "ethX".
How do I recreate the interfaces with the proper predictable names?
It is losing L2 connectivity. I then have to physically reboot the node several times before it connects again.
Below is the output from the
ip command:
Code:
[root@pvez ~]# ip -br link
lo UNKNOWN 00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP>
eth0 DOWN 00:f0:cb:ef:e3:94 <BROADCAST,MULTICAST>
eth2 UP 00:f0:cb:ef:e3:95 <BROADCAST,MULTICAST,UP,LOWER_UP>
eth3 DOWN 00:f0:cb:ef:e3:96 <BROADCAST,MULTICAST>
sfp1 DOWN 00:02:c9:9b:77:88 <BROADCAST,MULTICAST>
spf2 DOWN 00:02:c9:9b:77:89 <BROADCAST,MULTICAST>
wlo1 DOWN 40:ec:99:cf:7c:a9 <BROADCAST,MULTICAST>
vmbr0 UP 00:f0:cb:ef:e3:95 <BROADCAST,MULTICAST,UP,LOWER_UP>
vmbr0.12@vmbr0 UP 00:f0:cb:ef:e3:95 <BROADCAST,MULTICAST,UP,LOWER_UP>
(...)
Here is the main interface configuration file created by the Proxmox GUI.
Code:
[root@pvez ~]# cat /etc/network/interfaces
auto lo
iface lo inet loopback
iface eth0 inet manual
iface eth2 inet manual
iface eth3 inet manual
iface sfp1 inet manual
iface spf2 inet manual
iface wlo1 inet manual
auto vmbr0
iface vmbr0 inet manual
bridge-ports eth2
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes
bridge-vids 2-4094
#L2 Bridge
iface wl1 inet manual
auto vmbr0.12
iface vmbr0.12 inet static
address 10.12.11.10/24
gateway 10.12.11.1
#VLAN 12 PVEz
iface vmbr0.12 inet6 static
address fd01:10:12:11::10/64
gateway fd01:10:12:11::1
source /etc/network/interfaces.d/*
Below are kernel messages related to interfaces after a successful boot:
Code:
[root@pvez ~]# dmesg | grep -E 'renamed|eth|sfp|igc|mlx4'
[ 1.400419] igc 0000:01:00.0: PTM enabled, 4ns granularity
[ 1.411998] mlx4_core: Mellanox ConnectX core driver v4.0-0
[ 1.412024] mlx4_core: Initializing 0000:05:00.0
[ 1.449073] igc 0000:01:00.0 (unnamed net_device) (uninitialized): PHC added
[ 1.474386] igc 0000:01:00.0: 4.000 Gb/s available PCIe bandwidth (5.0 GT/s PCIe x1 link)
[ 1.474395] igc 0000:01:00.0 eth0: MAC: 00:f0:cb:ef:e3:94
[ 1.474655] igc 0000:02:00.0: PTM enabled, 4ns granularity
[ 1.522341] igc 0000:02:00.0 (unnamed net_device) (uninitialized): PHC added
[ 1.548310] igc 0000:02:00.0: 4.000 Gb/s available PCIe bandwidth (5.0 GT/s PCIe x1 link)
[ 1.548315] igc 0000:02:00.0 eth1: MAC: 00:f0:cb:ef:e3:95
[ 1.548488] igc 0000:03:00.0: PTM enabled, 4ns granularity
[ 1.595111] igc 0000:03:00.0 (unnamed net_device) (uninitialized): PHC added
[ 1.619975] igc 0000:03:00.0: 4.000 Gb/s available PCIe bandwidth (5.0 GT/s PCIe x1 link)
[ 1.619980] igc 0000:03:00.0 eth2: MAC: 00:f0:cb:ef:e3:96
[ 1.850836] igc 0000:03:00.0 eth3: renamed from eth2
[ 8.854350] mlx4_core 0000:05:00.0: DMFS high rate steer mode is: disabled performance optimized steering
[ 8.854685] mlx4_core 0000:05:00.0: 31.504 Gb/s available PCIe bandwidth, limited by 8.0 GT/s PCIe x4 link at 0000:00:1c.4 (capable of 63.008 Gb/s with 8.0 GT/s PCIe x8 link)
[ 8.905490] mlx4_en: Mellanox ConnectX HCA Ethernet driver v4.0-0
[ 8.905731] mlx4_en 0000:05:00.0: Activating port:1
[ 8.908262] mlx4_en: 0000:05:00.0: Port 1: Using 4 TX rings
[ 8.908268] mlx4_en: 0000:05:00.0: Port 1: Using 4 RX rings
[ 8.908662] mlx4_en: 0000:05:00.0: Port 1: Initializing port
[ 8.909160] mlx4_en 0000:05:00.0: registered PHC clock
[ 8.909353] mlx4_en 0000:05:00.0: Activating port:2
[ 8.909776] mlx4_en: 0000:05:00.0: Port 2: Using 4 TX rings
[ 8.909780] mlx4_en: 0000:05:00.0: Port 2: Using 4 RX rings
[ 8.910000] mlx4_en: 0000:05:00.0: Port 2: Initializing port
[ 8.928308] <mlx4_ib> mlx4_ib_probe: mlx4_ib: Mellanox ConnectX InfiniBand driver v4.0-0
[ 8.928795] <mlx4_ib> mlx4_ib_probe: counter index 2 for port 1 allocated 1
[ 8.928797] <mlx4_ib> mlx4_ib_probe: counter index 3 for port 2 allocated 1
[ 8.936820] mlx4_core 0000:05:00.0 sfp1: renamed from eth2
[ 8.936951] mlx4_core 0000:05:00.0 spf2: renamed from eth4
[ 10.050474] igc 0000:02:00.0 eth2: renamed from eth1
[ 10.064984] systemd[1]: eth0: systemd-udevd failed to process the device, ignoring: File exists
[ 11.704282] iwlwifi 0000:00:14.3 wlo1: renamed from wlan0
[ 12.698681] vmbr0: port 1(eth2) entered blocking state
[ 12.698688] vmbr0: port 1(eth2) entered disabled state
[ 12.698707] igc 0000:02:00.0 eth2: entered allmulticast mode
[ 12.698777] igc 0000:02:00.0 eth2: entered promiscuous mode
[ 16.203037] igc 0000:02:00.0 eth2: NIC Link is Up 2500 Mbps Full Duplex, Flow Control: RX
[ 16.203168] vmbr0: port 1(eth2) entered blocking state
[ 16.203171] vmbr0: port 1(eth2) entered forwarding state
[ 26.463046] fwbr1121i0: port 2(veth1121i0) entered blocking state
[ 26.463053] fwbr1121i0: port 2(veth1121i0) entered disabled state
[ 26.463068] veth1121i0: entered allmulticast mode
[ 26.463119] veth1121i0: entered promiscuous mode
[ 26.504586] eth0: renamed from vethzlAw0l
[ 27.244874] fwbr1121i0: port 2(veth1121i0) entered blocking state
[ 27.244883] fwbr1121i0: port 2(veth1121i0) entered forwarding state
[ 32.208652] fwbr1131i0: port 2(veth1131i0) entered blocking state
[ 32.208659] fwbr1131i0: port 2(veth1131i0) entered disabled state
[ 32.208673] veth1131i0: entered allmulticast mode
[ 32.208722] veth1131i0: entered promiscuous mode
[ 32.248985] eth0: renamed from vethXMZCGS
[ 33.004968] fwbr1131i0: port 2(veth1131i0) entered blocking state
[ 33.004975] fwbr1131i0: port 2(veth1131i0) entered forwarding state
[ 36.187092] fwbr1132i0: port 2(veth1132i0) entered blocking state
[ 36.187101] fwbr1132i0: port 2(veth1132i0) entered disabled state
[ 36.187121] veth1132i0: entered allmulticast mode
[ 36.187177] veth1132i0: entered promiscuous mode
[ 36.233513] eth0: renamed from veth2REjb8
[ 37.179160] fwbr1132i0: port 2(veth1132i0) entered blocking state
[ 37.179170] fwbr1132i0: port 2(veth1132i0) entered forwarding state
[ 40.553455] fwbr1133i0: port 2(veth1133i0) entered blocking state
[ 40.553462] fwbr1133i0: port 2(veth1133i0) entered disabled state
[ 40.553478] veth1133i0: entered allmulticast mode
[ 40.553532] veth1133i0: entered promiscuous mode
[ 40.590729] fwbr1141i0: port 2(veth1141i0) entered blocking state
[ 40.590737] fwbr1141i0: port 2(veth1141i0) entered disabled state
[ 40.590755] veth1141i0: entered allmulticast mode
[ 40.590808] veth1141i0: entered promiscuous mode
[ 40.596866] eth0: renamed from vethl3OtPZ
[ 40.634248] eth0: renamed from vethsJjCI2
[ 41.517490] fwbr1133i0: port 2(veth1133i0) entered blocking state
[ 41.517498] fwbr1133i0: port 2(veth1133i0) entered forwarding state
[ 41.535864] fwbr1141i0: port 2(veth1141i0) entered blocking state
[ 41.535871] fwbr1141i0: port 2(veth1141i0) entered forwarding state
The Udev service display these messages:
Code:
[root@pvez ~]# systemctl status systemd-udevd
● systemd-udevd.service - Rule-based Manager for Device Events and Files
Loaded: loaded (/usr/lib/systemd/system/systemd-udevd.service; static)
Drop-In: /usr/lib/systemd/system/systemd-udevd.service.d
└─syscall-architecture.conf
Active: active (running) since Tue 2026-01-20 16:30:09 -03; 52min ago
Invocation: 32e1c916d5e34fe59501943fb2f23d08
TriggeredBy: ● systemd-udevd-control.socket
● systemd-udevd-kernel.socket
Docs: man:systemd-udevd.service(8)
man:udev(7)
Main PID: 337 (systemd-udevd)
Status: "Processing with 24 children at max"
Tasks: 1
Memory: 50.4M (peak: 64.2M)
CPU: 3.474s
CGroup: /system.slice/systemd-udevd.service
└─udev
└─337 /usr/lib/systemd/systemd-udevd
Jan 20 16:30:10 pvez (udev-worker)[339]: lo: Invalid network interface name, ignoring:
Jan 20 16:30:10 pvez (udev-worker)[341]: eth0: Failed to rename network interface 2 from 'eth0' to 'eth1': File exists
Jan 20 16:30:10 pvez (udev-worker)[341]: eth0: Failed to process device, ignoring: File exists
Jan 20 16:30:12 pvez (udev-worker)[349]: vmbr0.12: Failed to rename network interface 9 from 'vmbr0.12' to 'eth2': File exists
Jan 20 16:30:12 pvez (udev-worker)[349]: vmbr0.12: Failed to process device, ignoring: File exists
Notice: journal has been rotated since unit was started, output may be incomplete.
The system has no udev rules set on
/etc/udev/rules.d/. The only one that exists is null.
Code:
[root@pvez ~]# ls -lah /etc/udev/rules.d/
lrwxrwxrwx 1 root root 9 Jan 1 21:34 60-bridge-network-interface.rules -> /dev/null
After a long search, I found that Proxmox uses SystemD's versioned naming scheme for network device names.
SystemD seems to have pinned the interface names.
Code:
[root@pvez ~]# ll /etc/systemd/network/
-rw-r--r-- 1 root root 55 Jan 1 21:51 10-eth1.link
-rw-r--r-- 1 root root 55 Jan 1 21:51 10-eth2.link
-rw-r--r-- 1 root root 55 Jan 1 21:51 10-eth3.link
-rw-r--r-- 1 root root 55 Jan 1 21:51 10-sfp1.link
-rw-r--r-- 1 root root 55 Jan 1 21:51 10-spf2.link
These are improper names, but I don't get why.
I tried to rename the interfaces in these files, but it keep loosing connectivity.
I prefer the interfaces use predictable names instead of "ethX".
How do I recreate the interfaces with the proper predictable names?
Last edited: