Monday, 1 June 2015

Re: Proposal: enable stateless persistant network interface names

On Fri, May 08, 2015 at 07:27:39AM +0200, Martin Pitt wrote:
> Proposal
> --------
> I propose to retire [mac], i. e. drop
> /lib/udev/rules.d/75-persistent-net-generator.rules and enable
> [ifnames] by default on all platforms (client, server, touch, snappy),
> and stop installing biosdevname on server.
> This will provide the new stable interface names for all new
> installations, stop the different handling of server/client, work with
> system-image, and stops the woes cloud providers have with Ubuntu's
> [mac].

I know I'll complain about the new names endlessly, please allow me to
apologize in advance for that, but this makes sense to me. The original
eth0 style naming is quite fine for hobbiest machines where a human is
around to fix problems, but the number of situations it doesn't handle
gracefully is astonishing.

biosdevname seemed promising, except it seems to only partially work, and
I'm pretty sure I've seen more complaints about "renameX" interfaces with
biosdevname than without it.

So even though I'll never get the hang of the ifnames names, the fact that
they won't have race conditions that leave "renameX" noise around is alone
probably worth the transition.

How will ifnames handle:
- a new pcie interface is added?
- a pcie interface is moved to a different slot?
- two pcie interfaces are swapped?
- a quad-port pcie interface is replaced with a dual-port interface?
- usb interface added?
- a usb interface is moved to a different hub?
- two usb interfaces are swapped?

Will there be changes to myrinet or infiniband interface names too?

There will be endless amounts of documentation invalidated once 'eth0'
is no longer the name of the only NIC on the system; is there a handy
one-liner available to use to discover The Name Of The One NIC on
ifnames-based names?