Zum Hauptinhalt springen
Vexaro MeshGlossarNAT-Traversal

Was ist NAT-Traversal?

Die meisten Geräte haben keine eigene öffentliche Internetadresse; sie sitzen hinter Network Address Translation (NAT) auf einem Router, der eine öffentliche Adresse unter vielen internen Geräten teilt. Das ist in Ordnung, um Server zu erreichen, bedeutet aber, dass zwei solche Geräte einander nicht einfach direkt anwählen können. NAT-Traversal ist die Sammlung von Techniken, die es ihnen dennoch erlauben, eine direkte Verbindung herzustellen.

Kurz gesagt

NAT-Traversal ist der Satz an Techniken, die es zwei Geräten hinter Routern (NAT) erlauben, eine direkte Verbindung zu bilden, obwohl keines eine öffentliche Adresse hat, die das andere anwählen kann.

Wie NAT-Traversal funktioniert

  • 01

    Ein Koordinations- oder Signaling-Dienst hilft den beiden Peers, die von außen sichtbare Adresse und den Port des jeweils anderen zu erfahren, also wie die Außenwelt sie durch ihre NATs sieht.

  • 02

    STUN ist ein gängiger Weg für einen Peer, seine eigene von außen sichtbare Adresse und seinen Port zu entdecken, wie sie von außerhalb seines NAT gesehen werden.

  • 03

    Mit dieser Information versuchen die Peers „Hole-Punching“: Beide senden gleichzeitig Pakete aufeinander zu, sodass jedes NAT einen Pfad für den Verkehr des anderen öffnet.

  • 04

    Wenn kein direkter Pfad geöffnet werden kann (manche strikten NATs blockieren ihn), kann ein Relay (oft TURN genannt) den Verkehr als Fallback weiterleiten. Das kostet einen zusätzlichen Hop.

UDP-Hole-Punching, Schritt für Schritt

In einem typischen Ablauf kontaktiert jeder Peer einen Signaling-Server und erfährt über STUN die öffentliche Adresse und den Port, die sein NAT nach außen zeigt. Der Server teilt jedem Peer den externen Kandidaten des anderen mit. Beide Peers senden dann ungefähr gleichzeitig Pakete an die externe Adresse des jeweils anderen. Das erste ausgehende Paket jeder Seite veranlasst ihr NAT, eine temporäre Zuordnung anzulegen, die eine Antwort erwartet; trifft das Paket der anderen Seite ein, passt es zu dieser Zuordnung und kommt durch. Sobald in beide Richtungen einige Pakete durchgekommen sind, ist ein direkter, beidseitiger Pfad offen, und der verschlüsselte Tunnel läuft darüber.

Wann ein Relay benötigt wird

Hole-Punching gelingt bei den meisten NAT-Typen, doch manche (sogenannte symmetrische NATs oder strikte Unternehmens-Firewalls) vergeben unvorhersehbare Ports oder blockieren den Versuch, sodass kein direkter Pfad zustande kommt. Dann hilft ein Relay: ein Server, den beide Peers erreichen und der ihren Verkehr weiterleitet. In gut entworfenen Systemen leitet das Relay nur bereits verschlüsselte Pakete weiter, die es nicht lesen kann; es fügt Latenz und einen Hop hinzu, sieht aber die Daten nicht. Ein gutes Mesh nutzt Relays nur als letztes Mittel, wenn ein direkter Tunnel unmöglich ist.

Wie das zu Vexaro Mesh (in Entwicklung) steht

Vexaro Mesh, derzeit in Entwicklung, ist mit integriertem NAT-Traversal ausgelegt: Peers hinter NAT verbinden sich direkt, wo immer das Netzwerk es zulässt, und nur sonst über ein Relay. Gateways sollen verschlüsselte Tunnel über jede Verbindung aufbauen, ohne Portweiterleitung oder öffentliche Adressen. So bleiben die Pfade zwischen Standorten kurz.

Die geplanten Funktionen ansehen

Häufige Fragen

Warum können sich zwei Geräte hinter NAT nicht einfach direkt verbinden?
Weil keines eine öffentliche Adresse hat, die das andere erreichen kann, und ihre Router unaufgeforderten eingehenden Verkehr standardmäßig verwerfen. NAT-Traversal umgeht dies, indem beide Seiten gleichzeitig initiieren (Hole-Punching), nachdem ein Signaling-Dienst jeder mitgeteilt hat, wie die andere von außen erscheint, sodass jeder Router einen Pfad für die Pakete des anderen öffnet.
Erfordert NAT-Traversal das Öffnen von Ports an meiner Firewall?
In der Regel nicht. Techniken wie Hole-Punching sollen gerade Konnektivität ohne manuelle Portweiterleitung herstellen: Die Peers erzeugen die nötigen temporären Zuordnungen selbst, indem sie ausgehenden Verkehr starten. Systeme, die darauf beruhen, sind darauf ausgelegt, hinter NAT ohne Portweiterleitung oder öffentliche Adressen zu funktionieren, und Vexaro Mesh soll ebenfalls ohne beides auskommen.

Verfolgen Sie, wie Vexaro Mesh entsteht.

Vexaro Mesh ist in Entwicklung. Erzählen Sie uns von Ihren Standorten, und wir melden uns zu Early Access.