Über mehrere Proxmox-Nodes soll ein VPN gespannt werden, über das mehrere VLANs den VMs zur Verfügung gestellt werden. Dies sollte mit Bordmitteln geschehen.
Das VPN wird mit tinc aufgesetzt, weil es schnell, einfach und mesh-fähig ist.
Ziel ist, einen einzigen tinc-Tunnel für mehrere VLANs zu verwenden.
Konfiguration
Die Konfiguration ist am Standard angelehnt, Besonderheiten sind fett.
Device=/dev/net/tun DeviceType=tap Forwarding=kernel PMTUDiscovery=yes PriorityInheritance=yes Interface=eth200 AddressFamily=any Mode=switch ProcessPriority=high Name=v0 PrivateKeyFile=/etc/tinc/pvebridge/rsa_key.priv ConnectTo=v1 ConnectTo=v2 ConnectTo=...
tinc wird mit systemctl enable tinc@pvebridge ins System eingebunden und dann mit systemctl start tinc@pvebridge gestartet.
Das Start-script tinc-up bindet das Interface an die Bridge.
!/bin/sh BRIDGE=vmbr666 ip address add 10.66.66.2/24 dev $INTERFACE ip link set $INTERFACE master $BRIDGE ip link set $BRIDGE up ip link set $INTERFACE up bridge vlan add vid 2-4094 dev $INTERFACE
Das Interface benötigt eine IP-Adresse, bevor es in die Bridge aufgenommen wird!
Das bridge-Kommando mappt alle verfügbaren VLAN-IDs auf das darunterliegende Interface. Es funktioniert erst, nachdem das Interface in die bridge aufgenommen wurde.
Testen
Jetzt wird der erste Container (hier Ubuntu 18.04) angelegt und mit Netzwerk konfiguriert.

Nach der Generierung des zweiten Containers auf einem anderen Knoten

funktioniert der ping zwischen beiden Knoten über das VLAN.
Fallstricke
Bei Änderungen an der tinc-Konfiguration sollten die Instanzen auf den einzelnen Knoten mit zeitlichem Abstand gestartet werden, da sonst die einzelnen Instanzen ihre Gegenseite nicht finden und somit keine Verbindung zustande kommt.
Nicht vergessen, die evtl. vorhandene Zerotier-Konfiguration anzupassen und die VLAN-Interfaces auszusparen!