---
name: "systemd-network-generator"
section: "8"
platform: "linux"
package: "systemd"
version: "257.13-1~deb13u1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/systemd-network-generator.service"
---

# systemd-network-generator(8)

Generate network configuration from the kernel command line

Part of [systemd-network-generator.service(8)](/systemd-network-generator.service/8.md).

## 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.

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)
