diff --git a/man/systemd-udevd.service.xml b/man/systemd-udevd.service.xml
index 1bc86469be..3107fb7ce9 100644
--- a/man/systemd-udevd.service.xml
+++ b/man/systemd-udevd.service.xml
@@ -234,13 +234,14 @@
systemd.link5
for more details. When the MAC address is specified, the policies are applied to the
interface which has the address. When no MAC address is specified, the policies are applied
- to all interfaces. This kernel command line argument can be specified multiple times. This
- argument is not directly read from systemd-udevd, but read and converted
- to a .link file by systemd-network-generator. So, to make this argument
- take effect, systemd-network-generator.service must be enabled and
- started before starting systemd-udevd.service. See
- systemd-network-generator.service8
- for more details about the service.
+ to all interfaces. This kernel command line argument can be specified multiple times.
+
+ This argument is not directly read by systemd-udevd, but is instead
+ converted to a .link file by
+ systemd-network-generator.service8.
+ For this argument to take effect, systemd-network-generator.service must be
+ enabled.
+
Example:
net.ifname-policy=keep,kernel,path,slot,onboard,01:23:45:67:89:ab
net.ifname-policy=keep,kernel,path,slot,onboard,mac
diff --git a/presets/90-systemd.preset b/presets/90-systemd.preset
index 8a1a08210c..25936d8f57 100644
--- a/presets/90-systemd.preset
+++ b/presets/90-systemd.preset
@@ -18,6 +18,7 @@ enable machines.target
enable getty@.service
enable systemd-timesyncd.service
enable systemd-networkd.service
+enable systemd-network-generator.service
enable systemd-resolved.service
enable systemd-homed.service
enable systemd-userdbd.socket
@@ -37,7 +38,6 @@ disable exit.target
disable systemd-networkd-wait-online.service
disable systemd-time-wait-sync.service
disable systemd-boot-check-no-failures.service
-disable systemd-network-generator.service
disable proc-sys-fs-binfmt_misc.mount
disable syslog.socket
diff --git a/units/systemd-networkd.service.in b/units/systemd-networkd.service.in
index 6acce036df..95dd2665b2 100644
--- a/units/systemd-networkd.service.in
+++ b/units/systemd-networkd.service.in
@@ -56,6 +56,10 @@ WantedBy=multi-user.target
Also=systemd-networkd.socket
Alias=dbus-org.freedesktop.network1.service
+# The output from this generator is used by udevd and networkd. Enable it by
+# default when enabling systemd-networkd.service.
+Also=systemd-network-generator.service
+
# We want to enable systemd-networkd-wait-online.service whenever this service
# is enabled. systemd-networkd-wait-online.service has
# WantedBy=network-online.target, so enabling it only has an effect if