Nicht überall will man Tailscale
Ich verwende sehr gerne Tailscale, aber manchmal ist es einfach nicht praktikabel oder möglich Tailscale auf jeder Maschine zu installieren. In so einem Fall kann man Tailscale-Optionen und sog. IP Tables verwenden um trotzdem ans Ziel zu kommen. Sehen wir uns ein Beispiel an.
Netzwerkshare für Proxmox Host einrichten
Wenn man auf Proxmox nicht direkt Tailscale installieren möchte – und dafür gibt es gute Gründe, denn ein Hypervisor sollte sich nur um das Verwalten von Containern und virtuellen Maschinen kümmern – sondern in Verbindung mit einem LXC Container, auf dem wiederum Tailscale läuft, verwendet, dann muss man ein paar Optionen aktivieren. Die wichtigste davon ist advertise-routes
und diese müssen dann auch noch mittels einer eigens eingerichteten IP-Route für den Host ersichtlich sein.
Dieser Befehl muss auf dem Proxmox Host ausgeführt werden:
ip route add 100.64.0.0/10 via <LXC-container-IP>
Oder noch besser gleich in der Netzwerkkonfiguration mit nano /etc/network/interfaces
diese Zeilen nach der statischen IP-Konfiguration (meist etwas mit vmbr0
) hinzufügen:
# Add a static route to the Tailnet
post-up ip route add 100.64.0.0/10 via <LXC-container-IP> dev vmbr0
post-down ip route del 100.64.0.0/10 via <LXC-container-IP> dev vmbr0
Diese IP-Adresse kommt daher, dass Tailscale IP-Adressen von 100.64.0.0 bis 100.127.255.255 als Tailscale IP zuweist. Damit sind also alle möglichen Tailscale Adressen abgedeckt.
Danach Netzwerkkonfiguration auf dem Proxmox Host neu laden mit:
ifreload -a
Anschließend muss man noch innerhalb des Tailscale LXC Containers das Routing anpassen. Dazu fügt man folgendes im Container hinzu:
iptables -t nat -A POSTROUTING -o tailscale0 -j MASQUERADE
Das überdauert dann aber nicht einen Neustart des Container.
Alternativ hat mir der Chatbot folgendes vorgeschlagen. Man erstellt unter /etc/pve/firewall/cluster.fw
folgenden Eintrag:
[OPTIONS]
{...}
[RULES]
GROUP tailnet
{...}
[group tailnet]
# Allow any device on vmbr0 to access Tailnet
IN ACCEPT -source x.x.x.0/24 -dest 100.64.0.0/10 -log info
Das geht auch in der GUI unter Datacenter/Firewall/Security Groups und dort “Add”. Nun braucht es auch noch den Verweis auf der Ebene des Hosts, unter /etc/pve/nodes/fp/host.fw
die so erstelle Security Group hinzufügen:
[RULES]
GROUP tailnet
Oder in der GUI unter Host/Firewall “Insert: Security Group” und dort die erstellte Gruppe hinzufügen.
Und das wäre die sauberere Lösung. Leider funktioniert sie nicht, ich weiß auch nicht wieso. Deshalb lasse ich es zurzeit bei der anderen. Eventuell könnte man ein kleines Skript schreiben, dass beim Neustart des Containers ausgeführt wird, dann sollte es auch dauerhaft sein. Aber lassen wir das einmal hier.
Jetzt kann man Netzwerkshares zwischen Geräten machen, die nicht im gleichen LAN sind und auch keine Tailscale-Instanz installiert haben!
Fazit
Diese IP-Tabellen sind relativ neu für mich, aber es ist grundsätzlich immer gut, wenn man sich mit diesen Sachen auseinandersetzt. Denn sowas taucht in der IT-Welt schnell einmal auf. Insofern eine gute Sache!