Kurzfassung
STUN (Session Traversal Utilities for NAT) ist ein leichtgewichtiges Protokoll nach RFC 8489. Ein Client hinter einem NAT erfährt damit die öffentliche IP-Adresse und den Port, die das NAT seinem ausgehenden Verkehr zugeordnet hat.
Was ist STUN?
Ein STUN-Client schickt eine kurze Anfrage an einen öffentlichen STUN-Server. Der Server liest die Quelladresse und den Quellport des eingehenden Pakets aus – also die öffentliche Adresse, die das NAT gewählt hat – und spiegelt sie an den Client zurück. Mit diesen Informationen kann der Client seinen öffentlich erreichbaren Endpunkt anderen Peers beim Verbindungsaufbau mitteilen.
STUN transportiert keine Nutzlast. Es legt lediglich Adressinformationen offen, die hinter einem NAT sonst unsichtbar wären. Zwei Peers, die so jeweils ihre öffentliche Zuordnung kennen, können anschließend Hole Punching versuchen und direkt miteinander sprechen, ohne über einen Server zu relayen.
STUN wird in WebRTC, SIP, Peer-to-Peer-VPNs und Overlay-Netzen wie WireGuard-basierten Mesh-VPNs eingesetzt. Üblicherweise läuft STUN gemeinsam mit TURN, das einen Fallback per Relay bereitstellt, wenn direkte Verbindungen scheitern. Öffentliche, kostenlose STUN-Server sind verbreitet, produktive Setups betreiben jedoch oft eigene.
Warum ist STUN relevant?
- Direkte Pfade: Ermöglicht P2P-Verbindungen, ohne jedes Paket zu relayen
- Schlank: Ein einzelner, kleiner UDP-Austausch pro Client und Verbindung
- Standard: In jedem modernen Echtzeit-Protokollstack implementiert
- Datensparsam: Trägt keine Nutzlast, sondern nur Adressmetadaten
Verwandte Begriffe
- NAT Traversal: Übergeordnete Disziplin, von der STUN ein Baustein ist
- TURN: Begleitprotokoll für Relay-Fallback, wenn Hole Punching nicht funktioniert
- Peer-to-Peer: Netzwerkmodell, dessen Verbindungen STUN ermöglicht
- Mesh VPN: VPN-Topologie, die auf STUN-basierte Peer-Discovery setzt