Proxmox, tinc und VLANs

Ü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!