[systemd-devel] Stable interface names even when hardware is added or removed, not true
Pekka Sarnila
sarnila at adit.fi
Wed Nov 16 13:33:42 UTC 2016
On 'Predictable Network Interface Names' it states as a benefit of the
new policy:
Stable interface names even when hardware is added or removed, i.e.
no re-enumeration takes place
Unfortunately this is not true.
I'm running a mail server, kernel 4.8.6. Graphics card started to fail.
Replaced it with new one (newer model). Booted the system.
All seemed to be fine, network seemed to work. But after some time got
angry cries: 'can't read the mail !!!'. A big headache.
Although the new card was in the same slot as the old one kernel had
changed the name enp6s0 -> enp3s0 (no firmware/BIOS index available and
kernel policy was used as default). Since enp6s0 was not found our
server instead of fixed ip address used our dhcp-server to get a random
temp address. Thus network worked, but not in the mail-servers correct
address.
To figure this out took some nervous time.
Now, I don't know why kernel driver got a different name for this
network interface (ethernet hardware is on the motherboard, and it is
the only net hardware on the system). But obviously it can happen.
Could there be general solution for this? On ordinary system MAC could
be used, but on virtual one. And there are of course docking systems for
laptops. So that is not general enough.
It would seem there is no general way to enumerate persistently network
interfaces unless the network hardware itself directly gives its name
(and have unique names over the world). Or is there?
However could there be a way for systemsd/udev to know that there is
only one interface in the system? At least then always as a default the
same name could be given.
Pekka
More information about the systemd-devel
mailing list