systemd-network-generator.service
systemd
systemd-network-generator.service
8
systemd-network-generator.service
systemd-network-generator
Generate network configuration from the kernel command line
systemd-network-generator.service
/usr/lib/systemd/systemd-network-generator
Description
systemd-network-generator.service is a system service that translates ip= and related settings on the kernel command line (see below) into systemd.network(5), systemd.netdev(5), and systemd.link(5) configuration files understood by systemd-networkd.service(8) and systemd-udevd.service(8).
Files are generated in /run/systemd/network/.
Note: despite the name, this generator executes as a normal systemd service and is not an implementation of the systemd.generator(7) concept.
Kernel command line options
This tool understands the following options:
ip=; nameserver=; rd.route=; rd.peerdns=
Translated into systemd.network(5) files.
In addition to the parameters dracut.cmdline(7) defines the ip= option accepts the special value link-local. If selected, the network interfaces will be configured for link-local addressing (IPv4LL, IPv6LL) only, DHCP or IPv6RA will not be enabled.
ifname=; net.ifname_policy=
Translated into systemd.link(5) files.
vlan=; bond=; bridge=; bootdev=
Translated into systemd.netdev(5) files.
BOOTIF=; rd.bootif=
When BOOTIF is specified in the interface field of ip=, it is treated as a special placeholder rather than a real interface name. Then, in combination with the MAC address provided by BOOTIF=, this is translated into a systemd.network(5) file which matches on the provided MAC address. When rd.bootif=0 is passed, this functionality is disabled, and the BOOTIF= option is ignored.
See dracut.cmdline(7) for details on the usage of these options.
See dracut.cmdline(7) and systemd-udevd.service(8) for option syntax and details.
Credentials
systemd-network-generator supports the service credentials logic as implemented by ImportCredential=/LoadCredential=/SetCredential= (see systemd.exec(5) for details). The following credentials are used when passed in:
network.conf.*; network.link.*; network.netdev.*; network.network.*
These credentials should contain valid networkd.conf(5), systemd.link(5), systemd.netdev(5), systemd.network(5) configuration data. From each matching credential a separate file is created. Example: a passed credential network.link.50-foobar will be copied into a configuration file 50-foobar.link.
Note that the resulting files are created world-readable, it is hence recommended to not include secrets in these credentials, but to supply them via separate credentials directly to systemd-networkd.service(8).
Note that by default the systemd-networkd.service(8) service is set up to inherit the these credentials from the service manager.
See Also
systemd(1), systemd-networkd.service(8), dracut(8)
谢谢你的反馈!