On Thu, 16 Aug 2012, Colin Guthrie wrote:

'Twas brillig, and Christiaan Welvaart at 16/08/12 20:30 did gyre and
gimble:
hi,

When I finally rebooted a cauldron system that acts as a router, it
turned out the network interfaces eth0 and eth1 were switched, exposing
"internal" services to the outside world and leaving me without internet
access. Syslog contains:
Aug 15 22:48:29 zem systemd-udevd[404]: error changing net interface
name eth0 to eth1: File exists
Aug 15 22:48:29 zem systemd-udevd[404]: error changing net interface
name eth1 to eth0: File exists

Of course this has worked for years, so it breaking is not something
anyone would expect. It also seems to be unneeded. After some looking
around I could (temporarily) fix it quite easily by adding:
        ifrename -i eth0 -n rename0
        ifrename -i eth1 -n rename1
        ifrename -i rename0
        ifrename -i rename1
to /etc/init.d/network and describing the mapping in /etc/iftab . So now
I have two questions:
- Has anyone else seen this?
- What change is causing this: kernel, udev/systemd, or something else?

The network devices use the same driver so there is no other way to
distinguish them than by MAC address or PCI ID.

Yeah this is no longer supported upstream as it was apparently very
hacky. Last time I asked Kay about it, there was something else to
replace it but I've not followed up what that is recently. I'll ask him
again next time we're chatting.

So it's udev (I tried to install an old udev but that didn't work). Commit looks to be:
http://cgit.freedesktop.org/systemd/systemd/commit/src/udev?id=97595710b77aa162ca5e20da57d0a1ed7355eaad

Waiting 90s hoping the interface name becomes available is no fun of course but in fact this works fine when the user configured it properly: it did exactly what I now use as workaround only without global control. So we could simply revert it but I wonder why this change was considered necessary. So far I have not found any discussion about it.


    Christiaan

Reply via email to