---
name: "systemd-network-generator.service"
section: "8"
platform: "linux"
package: "systemd"
version: "262.1-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/systemd-network-generator.service"
---

# systemd-network-generator.service(8)

Generate network configuration from the kernel command line

## NAME

systemd-network-generator.service, systemd-network-generator - Generate network configuration from the kernel command line

## SYNOPSIS

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.network/5.md), [**systemd.netdev**(5)](/systemd.netdev/5.md), and [**systemd.link**(5)](/systemd.link/5.md) configuration files understood by [**systemd-networkd.service**(8)](/systemd-networkd.service/8.md) and [**systemd-udevd.service**(8)](/systemd-udevd.service/8.md).

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)](/systemd.generator/7.md) concept.

## KERNEL COMMAND LINE OPTIONS

This tool understands the following options:

*ip=*, *nameserver=*, *rd.route=*, *rd.peerdns=*

Translated into [**systemd.network**(5)](/systemd.network/5.md) files.

In addition to the parameters [**dracut.cmdline**(7)](/dracut.cmdline/7.md) 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.

Added in version 245.

*ifname=*, *net.ifname\_policy=*

Translated into [**systemd.link**(5)](/systemd.link/5.md) files.

Added in version 245.

*vlan=*, *bond=*, *bridge=*, *bootdev=*

Translated into [**systemd.netdev**(5)](/systemd.netdev/5.md) files.

Added in version 245.

*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)](/systemd.network/5.md) 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)](/dracut.cmdline/7.md) for details on the usage of these options.

Added in version 261.

See [**dracut.cmdline**(7)](/dracut.cmdline/7.md) and [**systemd-udevd.service**(8)](/systemd-udevd.service/8.md) for option syntax and details.

## CREDENTIALS

**systemd-network-generator** supports the service credentials logic as implemented by *ImportCredential=*/*LoadCredential=*/*SetCredential=* (see [**systemd.exec**(5)](/systemd.exec/5.md) 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)](/networkd.conf/5.md), [**systemd.link**(5)](/systemd.link/5.md), [**systemd.netdev**(5)](/systemd.netdev/5.md), [**systemd.network**(5)](/systemd.network/5.md) 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)](/systemd-networkd.service/8.md).

Added in version 256.

Note that by default the [**systemd-networkd.service**(8)](/systemd-networkd.service/8.md) service is set up to inherit the these credentials from the service manager.

## SEE ALSO

[**systemd**(1)](/systemd/1.md), [**systemd-networkd.service**(8)](/systemd-networkd.service/8.md), [**dracut**(8)](/dracut/8.md)
