Device names on linux guest, change between machine versions

chrcoluk

Renowned Member
Oct 7, 2018
269
67
68
47
So using latest on Proxmox 9.1 I have ens18
Using latest on Proxmox 9.2 also ens18
Choosing 10.1.2 on Proxmox 9.2 changes it to a longer enp name. Even though this was the latest version on Proxmox 9.1

Any idea whats happening here, the linux network naming scheme seems wild and unpredictable.
 
As far as I know that is for the host machine.

In this case its the guest machine, and the kernel on the guest hasnt changed.
 
It was not clear from your post you were talking about a guest.
Interface naming conventions change in other distro's too.
Which distro is on the guest? Is it a VM or LXC?
 
It is a debian VM.

I suspect QEMU does something that makes the devices detected differently, when the machine version is manually specified.

I am going to compare the command line for QEMU to see what changes on the configuration. Or maybe just a save a lot of time and use legacy eth0 ifnames moving forward on every linux guest.
 
Last edited:
In that case you can read all about it here:
https://wiki.debian.org/NetworkInterfaceNames
  • en: Prefix for Ethernet interfaces.
  • wl: Prefix for Wireless (WLAN) interfaces.
  • enpXsY: Derived from the PCI bus location. p stands for PCI bus number and s for slot number (e.g., enp0s3 is on PCI bus 0, slot 3).
  • enoX: Derived from the onboard device index (e.g., eno1 is the first onboard Ethernet device).
Switching from i440fx to q35 machine type in Proxmox changes the underlying PCI topology, which causes network interfaces (like net0) to be assigned new names based on their physical PCI bus location rather than legacy naming conventions.
  • i440fx (Legacy PCI): Typically uses predictable names like ens18, ens19, or eth0 depending on the interface index.
  • q35 (Modern PCIe): Uses predictable names based on PCI slot, such as enp6s18 or enp6s19, which often differs from the i440fx name.
The first network device in my Debian/Ubuntu (SeaBIOS/i440fx/VirtIO net0) VM's on Proxmox has been named ens18 as long as I can remember, and it didn't change with recent updates.
 
Last edited:
  • Like
Reactions: Markku and UdoB
Can you share the qm config VMIDHERE (on node) and the ip a (inside) output of both tests?