lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.1.10.0903241140530.16753@asgard.lang.hm>
Date:	Tue, 24 Mar 2009 11:49:26 -0700 (PDT)
From:	david@...g.hm
To:	Matt Domsch <Matt_Domsch@...l.com>
cc:	netdev@...r.kernel.org, linux-hotplug@...r.kernel.org,
	linux-kernel@...r.kernel.org
Subject: Re: Network Device Naming mechanism and policy

On Tue, 24 Mar 2009, Matt Domsch wrote:

> You may recall http://lkml.org/lkml/2006/9/29/268, wherein I described
> network device enumeration and naming challenges, and several possible
> fixes.  Of these, Fix #1 (fix the PCI device list to be sorted
> breadth-first) has been implemented in the kernel, and Fix #3 (system
> board routing rules) have been implemented on Dell PowerEdge 10G and
> 11G servers (11G begin selling RSN).
>
> However, these have not been completely satisfactory.  In particular,
> it keeps getting harder and harder to route PCI-Express lanes to
> guarantee the same ordering between a depth-first and breadth-first
> walk, and it turns out, that isn't sufficient anyhow.
>
>
> Problem:  Users expect on-motherboard NICs to be named eth0..ethN.  This can be difficult to achieve.

I dispute this statement.

I have several hundred servers that have the on-motherboard NICs as the 
last ones.

anyone who's been making the assumption you describe will have been 
running into problems for many years.

it's just not a valid assumption.

> Ethernet device names are initially assigned by the kernel, and may be
> changed by udev or nameif in userspace.  The initial name assigned by
> the kernel is in monotonically increasing order, starting with eth0.
> In this instance, the enumeration directly leads to an assigned name.
>
> Complications:
>
> 1) Devices are discovered, and presented to the kernel for name
>   assignment, based on several factors:
>
>   a) the kernel hotplug mechanism emits events for udev to catch, to
>
>
>   b) udev may run modprobes in parallel.  It guarantees that the
>
>      To get any consistent ordering now, one of two things must
>      happen:
>
>      i) drivers must be loaded before udev begins loading drivers
>         (either very early in initscripts, or in the inital ramdisk).
>     ii) something must "fix up" the kernel-assigned names after
>         udev's modprobes complete.  udev does this as well.
>
> 2) udev may have rules to change the device names.  This is most often
>   seen in the '70-persistent-net.rules' file.  Here we have
>   additional challenges:
>
>   a) this does not exist the first time devices are discovered; the
>
>   b) it introduces state (MAC addresses) to the system, on a system
>
>   c) udev may not always be able to change a device's name.  If udev
>

not everyone uses udev. I compile the nessasary drivers into the kernel 
and don't need udev to get interfaces.

> 3) End users have the (reasonable?) expectation that NIC ports

as noted above, only some users have this unrealistic expectation.

> 4) When adding a network card to an existing system, what should the
>   ports on the new card be named?  If it is added, they will be named
>   ethN+1... above the existing named cards.  This means a (new)
>   add-in card in PCI slot 3 may have ports named eth5 and eth6, while
>   an add-in card in PCI slot 5 may have ports named eth2 and eth3.
>   This is not intuitive.

this approach causes serious problems in a few cases, including

1. a NIC goes bad and you replace it. now all the configs change

2. you reinstall a box and it's interface names change.

David Lang
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ