Drop-ins
Basics
systemctl edit servicename
systemctl revert servicename
systemctl cat servicename
Enable debug mode for systemd-networkd
systemctl edit systemd-networkd
And then add the following to the newly created drop-in:
[Service]
Environment=SYSTEMD_LOG_LEVEL=debug
Units
Simple dhcp config
/etc/systemd/network/00-wired.network
[Match]
Name=enp1s0
[Network]
DHCP=yes
Bridge
3 files are needed to make it work. Each file is described below
/etc/systemd/network/10-bridge.netdev
[NetDev]
Name=br0
Kind=bridge
/etc/systemd/network/20-bridge.network
[Match]
Name=br0
[Network]
Address=192.168.29.99/24
Gateway=192.168.29.1
DNS=192.168.29.1
/etc/systemd/network/30-enp3s0.network
[Match]
Name=enp3s0
[Network]
Bridge=br0
DHCP Server
/etc/systemd/network/eno1.network
[Match]
Name=eno1
[Link]
RequiredForOnline=yes
[Network]
Address=192.168.40.1/24
Address=fddb:40::1/16
DNS=192.168.40.1
DHCPServer=yes
IPv6AcceptRA=no
IPv6SendRA=yes
[IPv6SendRA]
EmitDNS=yes
DNS=fddb:40::1
[IPv6Prefix]
Prefix=fddb:40::/64
[DHCPServer]
ServerAddress=192.168.40.1/24
EmitDNS=yes
DNS=192.168.40.1
EmitRouter=Yes
Router=192.168.40.1
PoolOffset=100
PoolSize=100
BindToInterface=yes