Netlan, Systemd-Networkd und Dummy Interfaces

Nach einigen Recherchen hat sich herausgestellt, dass Netplan in der aktuellen Version (Stand heute) keine Dummy Interfaces anlegen kann (siehe Link unten).
Die Konfiguration von IP-Adressen mittels Netplan ist allerdings möglich.
Als Workarround wird vorgeschlagen, Network Bridges anzulegen, auf diese eine IP-Adresse zu legen und kein Interface einzuhängen.
Das wirkt im ersten Moment vielleicht ganz okay, allerdings gibt es valide Gründe dafür, ein Dummy Interface nutzen zu wollen.
Bis die Funktion in Netplan intergriert ist, gibt es zwei elegante Lösungen:
- Systemd-Networkd Konfiguration selbst schreiben, statt Netplan
- Dummy Interface automatisch anlegen lassen und mit Netplan konfigurieren
In diesem Artikel werden beide Varianten erklärt und es ist ebenfalls möglich das Anlegen des Interfaces über Systemd-Networkd durchführen zu lassen, die IP-Konfiguration aber mittels Netbox.
Generell ist es hilfreich zu verstehen, dass Netplan aus den YAML-Dateien Systemd-Networkd Einstellungen generiert, welche dann vom gleichnamigen Programm geladen werden. Netplan selbst nimmt keine Konfiguration der Schnittstellen vor!
Dummy via Systemd-Networkd
Anlegen der Dummy-Schnittstelle
# File: /etc/systemd/network/99-dummy10.netdev
[NetDev]
Name=dummy10
Kind=dummy
Konfiguration der IP-Adresse(n)
Dieser Schritt ist nicht zwingend nötig, da die Konfiguration der IP-Adresse auch via Netplan erfolgen kann.
# File: /etc/systemd/network/99-dummy10.network
[Match]
Name=dummy10
[Network]
Address=10.10.10.33/24
Dummy automatisch anlegen lassen (Kernel-Modul)
Die Dummy-Interfaces werden von einem Kernel Modul bereitgestellt, welches im Regelfall erst geladen wird, wenn es notwendig ist. Durch die Hinzugabe von Parametern lassen sich bereits beim Laden mehrere Schnittstellen anlegen. Diese werden der Menge nach durchnummeriert.
Laden des Moduls mit 5 Interfaces
modprobe dummy numdummies=5
Nach dem Laden sind 5 Interfaces erzeugt worden:
$ ip -o link | grep dummy
44572: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000\ link/ether 72:a0:77:02:5e:57 brd ff:ff:ff:ff:ff:ff
44573: dummy1: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000\ link/ether 36:dd:a2:0c:81:d0 brd ff:ff:ff:ff:ff:ff
44574: dummy2: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000\ link/ether 1e:f3:22:bc:6a:74 brd ff:ff:ff:ff:ff:ff
44575: dummy3: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000\ link/ether 56:ef:c3:3b:9a:b9 brd ff:ff:ff:ff:ff:ff
44576: dummy4: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000\ link/ether 5a:92:bf:48:9f:82 brd ff:ff:ff:ff:ff:ff
Diese können nun durch Netplan, oder direkt in Systemd-Networkd konfiguriert werden. Wichtig hierbei ist zu wissen, dass bei diesem Verfahren die Schnittstellen nicht umbenannt werden können (außer evtl. mittels udev).
Möchte man einen bestimmten Namen für ein Dummy-Interface festlegen, sollte dieses mittels Systemd-Networkd konfiguriert werden!
Alternativen
Weitere Wege, die aber nicht empfehlenswert sind:
- ifupdown2 (stark veraltet, nicht empfohlen)
- Skript zum anlegen der Interfaces mittels Cronjob, local.rc oder Systemd-Unit
- manuelles anlegen (nicht reboot sicher)
Es bietet sich also an, einen der oben genannten Wege zu gehen. Je nach persönlicher Präferenz.
Links
Systemd-Networkd Dokumentation im Archlinux Wiki (deutsch)
https://wiki.archlinux.de/title/Systemd/systemd-networkd
offizielle Doku von Systemd-Networkd
https://www.freedesktop.org/software/systemd/man/systemd.network.html
offizielle Projekt-Seite von netplan
https://netplan.io/
Bug Report zum Support von Dummy Interfaces
https://bugs.launchpad.net/netplan/+bug/1774203