[systemd-devel] Proposal: integrate biosdevname into systemd tree

Alexander E. Patrakov patrakov at gmail.com
Fri Jan 4 02:12:11 PST 2013


2013/1/4 Reindl Harald <h.reindl at thelounge.net>:
> how can something like this be unreliable?
> hwaddresses does not change randomly
>
> SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:50:56:bd:00:04", ATTR{dev_id}=="0x0",
> ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

Good question, and it hits the very core of the problem. I don't know
the answer, maybe we should wait for Kay or Lennart to explain that. I
only know that it IS unreliable if the following renames have to be
the end result:

[removed card] -> eth0 (non-existing)
eth0 -> eth1
eth1 -> eth2

and it is claimed to be reliable for the case when the destination
names are not eth*, e.g.:

eth0 -> lan
eth1 -> wan

> currently syaadmins who knew over years how to handle
> 70-persistent-net.rules are more pissed of than ever before

Yeah, resistance to ANY change is an integral part of a human nature.
And it also makes a good sysadmin. The problem, as stated multiple
times, is that same-namespace renames do not work reliably, cannot
work reliably, and that the official preferred solution (yet to be
drilled into sysadmins' brains) now is to avoid them completely.

> you are missing the real problem with the new shiny biosdevname
> nobody can rely on eth0 any longer

Yes, that's a problem.

> if have thousands of firewall-scripts and configurations which
> are assuming eth0=LAN, eth1=WAn as example, the benefit of such
> scripts is that they can be easily adopted to a new but compareable
> setup and basic rules are always the same

You can achieve the same by manually writing the equivalent of the
persistent rules by hand, just don't name the renamed interfaces eth*.
Existing rules override what biosdevname thinks. And you can use
variables like $LAN and $WAN in the scripts.

-- 
Alexander E. Patrakov


More information about the systemd-devel mailing list