Zum Inhalt springen

WireGuard, ZeroTier, Bonding

Nachdem selbst mein Raspberry PI Zero W knapp zwei Tage inkl. WireGuard durchlief (mit PersistentKeepalive-Option) und auch mein Macbook Air „versehentlich“ drei Tage unbemerkt via WireGuard getunnelt hat, bin ich noch mehr von WG überzeugt: Es ist super stabil und kommt ohne viel tooling aus. Wer es mag, kann es komplett mit „ip(8)“ steuern und braucht operativ keinerlei tools wie z.B. das „wg-quick“ script.

Wie der WireGuard-Autor wiederholt bei Vorträgen zu WireGuard gesagt hat, war eines der Ziele ursprünglich das zuverlässige, sichere Exfiltrieren im Rahmen von offensive security-Projekten, nicht unbedingt ein general purpose VPN.

Deshalb ist WireGuard auch das Gegenteil von Geschwätzig und sendet by default keine Keepalives, weshalb man hier selbst Hand anlegen muss. Es gibt auch kein Schlüsselaustauschprotokoll, kein dynamisches Routing oder Mesh. Man solle die Tools verwenden, die man eh schon hat z.B. DevOps für Schlüsselverwaltung oder eben bgp für dynamisches Routing.

Auf der anderen Seite des Spektrums befindet sich ein anderes OpenSource-Projekt namens „ZeroTier„: Ein Software Defined Network mit zentralem Controller, der auch Verbindungen zwischen zwei ge-NAT-teten Clients ermöglicht und noch viel mehr. Ähnlich wie z.B. auch bei Syncthing gibt es Relay-Nodes die Traffic notfalls auch durchleiten, sollte zwischen Teilnehmern keine direkte Verbindung möglich sein.

Das alles klingt erstmal sehr gut, andererseits steht dahinter ein US-Unternehmen welches VC erhalten hat und damit auch ordentlich Geld verdienen muss: Der „Controller“ ist eine Cloud-Lösung und bisher nicht OpenSource bzw. nur eine veraltete Version davon ist frei verfügbar. Meines Wissens regelt der Controller auch, wer einzelnen SDN beitreten darf und könnte so auch für z.B. die NSA von Interesse sein…

Ob und wie man so eine SDN-Lösung ohne Abhängigkeiten (Discovery/Relay/Management) zu einem Unternehmen betreiben kann, bleibt offen. Für die nächste ZeroTier-Version ist eine Multipath-Unterstützung geplant, sodass man verschiedene Anbindungen bündeln kann (bonding).

Das geht mit WireGuard unter Linux (und nur dort) wahrscheinlich auch, wenn man auf beiden Seiten Kernel mit MPTCP-Unterstützung am Start hat. Aus dem OVH und Free-Umfeld in Frankreich stammen viele Projekte um MPTCP und Uplink-Bündelungen, bei denen bisher zB shadowsocks eingesetzt wird.

Unabhängig von WireGuard interessant, wenn man unter einer angespannten Breitbandversorgung, insbesondere beim upstream, leidet. Ich erhoffe von diesen Projekten auch eine Evaluierung von WireGuard für die Bonding-Zwecke und versuche immer mal wieder die Updates zu verfolgen:

Linkliste:

2 Kommentare

  1. Super Artikel! Wollte nur mal noch ein kleines Kommentar abgeben was die beiden SDNs/VPNs angeht.
    ZeroTier ist Layer 2, d.h. man kann z.B. Drucker, PXE Boot server usw. über es nutzen. Das ist verdammt praktisch, vorallem da man eine L2-bridge einrichten kann – d.h. man kann z.B. einen (oder mehrere) Nodes im LAN als „bridge“ mit `iproute2` einrichten und muss dann _gar nichts_ mehr auf den Nodes installieren. Super nützlich was z.B. den Aufbau von „förderierten lokalen Datencentern“ angeht.
    WireGuard hingegen ist Layer 3. Mehr als TCP/IP (und UDP?) geht dort nicht.
    Und was den freie-Software-ZeroTier-Controller angeht: Hier ist eine vollkommen „airgapped“ Lösung, sogar mit modernem Web-Interface: https://github.com/key-networks/ztncui.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

* Die DSGVO-Checkbox ist ein Pflichtfeld

*

Ich stimme zu