схемы именования сетевых устройств (Network device naming schemes)
История (History)
The following "naming schemes" have been defined (which may be
chosen at system boot-up time via the net.naming-scheme= kernel
command line switch, see above):
v238
This is the naming scheme that was implemented in systemd
238.
v239
Naming was changed for virtual network interfaces created
with SR-IOV and NPAR and for devices where the PCI network
controller device does not have a slot number associated.
SR-IOV virtual devices are named based on the name of the
parent interface, with a suffix of "vport", where port is the
virtual device number. Previously those virtual devices were
named as if completely independent.
The ninth and later NPAR virtual devices are named following
the scheme used for the first eight NPAR partitions.
Previously those devices were not renamed and the kernel
default ("ethN") was used.
Names are also generated for PCI devices where the PCI
network controller device does not have an associated slot
number itself, but one of its parents does. Previously those
devices were not renamed and the kernel default was used.
v240
The "ib" prefix and stable names for infiniband devices are
introduced. Previously those devices were not renamed.
The ACPI index field (used in ID_NET_NAME_ONBOARD=) is now
also used when 0.
A new naming policy NamePolicy=keep was introduced. With this
policy, if the network device name was already set by
userspace, the device will not be renamed again. Previously,
this naming policy applied implicitly, and now it must be
explicitly requested. Effectively, this means that network
devices will be renamed according to the configuration, even
if they have been renamed already, if keep
is not specified
as the naming policy in the .link file. See systemd.link(5)
for a description of NamePolicy=.
v241
MACAddressPolicy=persistent
was extended to set MAC addresses
based on the device name. Previously addresses were only
based on the ID_NET_NAME_* attributes, which meant that
interface names would never be generated for virtual devices.
Now a persistent address will be generated for most devices,
including in particular bridges.
Note: when userspace does not set a MAC address for a bridge
device, the kernel will initially assign a random address,
and then change it when the first device is enslaved to the
bridge. With this naming policy change, bridges get a
persistent MAC address based on the bridge name instead of
the first enslaved device.
v243
Support for renaming netdevsim (simulated networking) devices
was added. Previously those devices were not renamed.
Previously two-letter interface type prefix was prepended to
ID_NET_LABEL_ONBOARD=. This is not done anymore.
v245
When systemd-nspawn(1) derives the name for the host side of
the network interface created with --network-veth
from the
container name it previously simply truncated the result at
15 characters if longer (since that's the maximum length for
network interface names). From now on, for any interface name
that would be longer than 15 characters the last 4 characters
are set to a 24bit hash value of the full interface name.
This way network interface name collisions between multiple
similarly named containers (who only differ in container name
suffix) should be less likely (but still possible, since the
24bit hash value is very small).
v247
When a PCI slot is associated with a PCI bridge that has
multiple child network controllers, the same value of the
ID_NET_NAME_SLOT property might be derived for those
controllers. This would cause a naming conflict if the
property is selected as the device name. Now, we detect this
situation and don't produce the ID_NET_NAME_SLOT property.
v249
PCI hotplug slot names for the s390 PCI driver are a
hexadecimal representation of the function_id device
attribute. This attribute is now used to build the
ID_NET_NAME_SLOT. Before that, all slot names were parsed as
decimal numbers, which could either result in an incorrect
value of the ID_NET_NAME_SLOT property or none at all.
Some firmware and hypervisor implementations report
unreasonable high numbers for the onboard index. To prevent
the generation of bogus onbard interface names, index numbers
greater than 16381 (2^14-1) were ignored. For s390 PCI
devices index values up to 65535 (2^16-1) are valid. To
account for that, the limit is increased to now 65535.
The udev rule NAME= replaces ":", "/", and "%" with an
underscore ("_"), and refuses strings which contain only
numerics.
Note that latest
may be used to denote the latest scheme known
(to this particular version of systemd).