Zum Hauptinhalt springen
Alle Begriffe

NAT-Traversal & Hole Punching

Techniken, die es zwei Geräten hinter getrennten Routern (NAT) erlauben, sich direkt zu verbinden, indem sie sich über einen Hilfsserver koordinieren und einen Pfad durch jede Firewall „stanzen“.

Warum NAT im Weg steht

Die meisten Computer sitzen hinter einer Netzwerkadressübersetzung (NAT): einem Router, der eine öffentliche Adresse auf viele private verteilt und nur Pakete hereinlässt, die auf eine von innen gestartete Verbindung antworten. Zwei Rechner in verschiedenen Heim- oder Büronetzen können deshalb nicht einfach eine Verbindung zueinander öffnen: Jeder Router verwirft das erste Paket der Gegenseite.

Wie schwer das Problem ist, hängt vom Router ab. RFC 4787 beschreibt, wie NATs UDP-Verkehr zuordnen und filtern: Verwendet ein Router für jedes Ziel denselben öffentlichen Port, ist ein direkter Pfad meist leicht zu finden; wählt er für jedes Ziel einen neuen Port (oft symmetrisches NAT genannt), ist es deutlich schwieriger.

Wie Hole Punching funktioniert

NAT-Traversal ist die Sammlung von Techniken, die trotzdem einen direkten Pfad finden. Zuerst erfährt jede Seite, wie sie von außen aussieht, meist durch eine Anfrage an einen STUN-Server. Die beiden Seiten tauschen diese Kandidatenadressen über einen Koordinationsserver aus und senden dann gleichzeitig Pakete zueinander. Jeder Router sieht zuerst ein ausgehendes Paket und behandelt die Antwort als Teil dieses Datenflusses. So öffnet sich ein Pfad in beide Richtungen. RFC 5128 gibt einen Überblick über diese Techniken.

Router lassen sich auch direkt fragen: UPnP IGD, NAT-PMP und sein Nachfolger, das Port Control Protocol (RFC 6887), erlauben einer Anwendung, eine Portweiterleitung anzufordern. Manche Unternehmensfirewalls und Carrier-Grade-NAT verhindern jede dieser Techniken. Wenn nichts davon klappt, weicht die Sitzung auf ein Relay aus, das den Verkehr zwischen beiden Seiten weiterleitet.

Wie Vexaro Desk sich verbindet

Eine Vexaro-Desk-Sitzung verbindet sich direkt, wo immer das Netzwerk es zulässt, und sonst über ein authentifiziertes Vexaro-Relay. Einzustellen gibt es nichts: Der Client findet selbst einen Weg.

Der Installer legt eine Windows-Firewall-Regel an, damit direkte Verbindungen und Verbindungen im lokalen Netz funktionieren; eine portable Version kann das nicht, ihre Sitzungen laufen daher häufiger über ein Relay. Direkte Verbindungen lassen sich in den Einstellungen abschalten, und das Sitzungsfenster zeigt, ob eine Sitzung direkt oder über ein Relay läuft. Direkte Sitzungen sind Ende-zu-Ende-verschlüsselt. Erzwingt ein Netzwerk eine Verbindung über ein Relay, bleibt der Datenverkehr auf dem Übertragungsweg über die von Vexaro betriebenen Relays verschlüsselt.

Techniken für NAT-Traversal

Techniken für NAT-Traversal
TechnikWas sie tutGrenzen
Portweiterleitung (UPnP IGD, NAT-PMP, PCP)3Bittet den Router, einen Port an die Anwendung weiterzuleitenFunktioniert nur, wo der Router es unterstützt und das Netzwerk es erlaubt
STUN4Teilt einem Gerät die öffentliche Adresse und den Port mit, die außen sichtbar sindFindet Adressen; überträgt keinen Sitzungsverkehr
Gleichzeitiges Hole Punching2Beide Seiten senden zuerst, sodass jeder Router die Pakete der Gegenseite als Antworten akzeptiertScheitert oft an symmetrischem NAT und strengen Firewalls
Viele Ports ausprobieren1,2Erhöht die Trefferchance bei symmetrischem NATEin Treffer ist trotzdem nicht garantiert
RelayLeitet Verkehr weiter, wenn es keinen direkten Pfad gibtFunktioniert, sobald beide Seiten es erreichen, kostet aber Latenz und Bandbreite des Betreibers

Direkten Verbindungen zum Erfolg verhelfen

  1. Installieren Sie den Client, statt die portable Version zu starten, damit die Windows-Firewall-Regel vorhanden ist.
  2. Erlauben Sie ausgehendes UDP: Vexaro-Desk-Sitzungen laufen über UDP, direkt wie über ein Relay.
  3. Nutzen Sie IPv6, wo Ihr Netz es bietet: Ohne Adressübersetzung dazwischen ist ein direkter Pfad leichter zu finden.

Häufig gestellte Fragen

Was ist NAT und warum blockiert es direkte Verbindungen?
NAT lässt viele private Geräte eine öffentliche Adresse teilen, und der Router lässt nur Pakete durch, die auf eine von innen gestartete Verbindung antworten. Ein Verbindungsversuch von außen wird deshalb verworfen, solange nichts vorher einen Pfad geöffnet hat.
Was ist Hole Punching?
Beide Rechner erfahren ihre öffentlichen Adressen, tauschen sie über einen Koordinationsserver aus und senden sich im selben Moment Pakete. Jeder Router behandelt die Pakete der Gegenseite als Antworten auf die eigenen, und ein direkter Pfad öffnet sich.
Funktioniert Hole Punching immer?
Nein. Symmetrisches NAT, strenge Firewalls und Carrier-Grade-NAT können es verhindern. Deshalb halten Fernzugriffstools ein Relay als Fallback bereit; Vexaro Desk verbindet sich direkt, wo immer das Netzwerk es zulässt, und sonst über sein eigenes authentifiziertes Relay.
Sind Vexaro-Desk-Sitzungen über ein Relay verschlüsselt?
Ja. Direkte Sitzungen sind Ende-zu-Ende-verschlüsselt. Erzwingt ein Netzwerk eine Verbindung über ein Relay, bleibt der Datenverkehr auf dem Übertragungsweg über die von Vexaro betriebenen Relays verschlüsselt.

In Vexaro Desk ansehen

Vexaro Desk vereint begleiteten und unbeaufsichtigten Zugriff, NAT-Traversal, eine adaptive Codec-Engine und Governance in einer Konsole. Es befindet sich im Early Access, und Sie können ein kostenloses Konto erstellen, um es auszuprobieren.