Predictable network interface names in systemd

debian-stretchlinux-networkingsystemd

Recent version of Ubuntu and Debian (stretch) bring a new network interface naming scheme.

Now, when updating from a system that's using old style names like "eth0", I'd like to know prior to booting what the new name will be.

How can I do this? Is there a magic invocation of "systemd" I can use to edit /etc/network/interface befor booting (and subsequently losing network connectivity)?

Best Answer

There's two different schemes available: biosdevname vs predictable network interface name.

biosdevname

Biosdevname seems to be the default in ubuntu. It is activated by installing the biosdevname package.

The biosdevname of an interface can be found with:

biosdevname -i eth0

Predictable network interface names

I believe this is the default in Debian stretch, but needs to be explicitly enabled on upgrade from previous releases.

The predictable name for eth0 can be found with:

udevadm test-builtin net_id /sys/class/net/eth0 | grep '^ID_NET_NAME_'