Mit den neuen vSwitches erlaubt Hetzner Server standortübergreifend mit einem getaggten VLAN zu verbinden. Die Wiki-Seite erklärt die Konfiguration mit ifupdown. Allerdings benutzt das Herzner-Image Ubuntu 18.04 systemd-networkd zum Verwalten der Netzwerkkonfiguration. Aus diesem Grund möchte ich hier meine Konfiguration teilen.
Die Konfigurationsdateien befinden sich im Ordner /etc/systemd/network. Dort befindet sich normalerweise eine Datei pro Interface. Bei mir ist es eine Datei mit dem Namen 10-enp0s31f6.network. Diese muss um einen Eintrag für das neue VLAN erweitert werden. Im Abschnitt [Network] muss die Zeile VLAN=vlan.4000 hinzugefügt werden. Wobei vlan.4000 der Name der weiteren Konfigurationsdateien ist. Die geänderte Datei sieht bei mir folgendermaßen aus:
### Hetzner Online GmbH installimage
[Match]
Name=enp0s31f6
[Network]
Address=x:x:x:x::2/64
Gateway=x.x.x.x
Gateway=fe80::1
VLAN=vlan.4000
[Address]
Address=x.x.x.x
Peer=x.x.x.x/32
Da ich vlan.4000 als Name gewählt habe, erwartet systemd nun zwei weitere Dateien vlan.4000.netdev und vlan.4000.network in diesem Ordner.
Hier der Inhalt von vlan.4000.netdev:
[NetDev]
Name=vlan.4000
Kind=vlan
[VLAN]
Id=4000
Die letzte Zeile enthält die im Hetzner Robot gewählte VLAN-ID.
Die Datei vlan.4000.network enhält die IP-Konfiguration. In meinem Fall habe ich ein privates Subnetz gewählt und jedem Server eine eigene statische IP-Adresse zugewiesen.
[Match]
Name=vlan.4000
[Network]
DHCP=no
[Address]
Address=192.168.50.0/24
Die letzte Zeile enthält die IP-Adresse des Servers und muss für jeden Server angepasst werden.
Bei mehreren VLANs, müssen einfach mehrer VLAN-Zeilen in die Datei für das Interface, hier 10-enp0s31f6.network, eingefügt werden. Wichtig ist hierbei, dass ein anderer Name, z.B: vlan.4001, gewählt wird. Anschließen müssen dann auch für diesen Namen die .netdev und .network-Dateien angelegt werden, z.B. vlan.4001.netdev und vlan.4001.network. In der netdev-Datei muss dann die entsprechende VLAN-ID und in der network-Datei die verwendete IP-Adresse eingetragen werden.