- STUN-Server
-
Session Traversal Utilities for NAT (STUN, dt. „Werkzeuge zum durchqueren von NATs“) ist ein einfaches Netzwerkprotokoll, um das Vorhandensein und die Art von Firewalls und NAT-Routern zu erkennen und letztere zu durchdringen. Es soll den unkomplizierten Einsatz von Geräten (z. B. SIP-Telefone) und Computer-Programmen in Heimnetzwerken ermöglichen, welche Daten aus dem Internet empfangen möchten.
Mit Hilfe von STUN lässt sich die derzeit öffentliche IP-Adresse des Anschlusses ermitteln. So kann z. B. ein SIP-Telefon seine derzeit gültige IP-Adresse ermitteln und mitteilen. Dies ist nötig, damit die Gegenstelle ihre Gesprächsdaten korrekt adressieren kann. Derzeit wird STUN wohl am meisten im VoIP-Bereich, im Zusammenhang mit SIP eingesetzt.
STUN wurde in RFC 3489 definiert und stand damals noch für Simple traversal of UDP through NATs. Auf Grund der gemachten Erfahrungen und neuen Definitionen aus anderen RFCs wurde STUN dann überarbeitet und in Session Traversal Utilities for NAT umbenannt (RFC 5389). Dabei wurde STUN als Framework neu definiert und alle Funktionen bis auf die Basisfunktionalität verschwanden; dafür wurde allerdings definiert, wie Erweiterungen möglich sind.
Funktionsweise
Alice und Bob befinden sich hinter einer Firewall mit NAT. Sowohl Alice als auch Bob haben eine permanente TCP-Verbindung mit einem STUN-Server aufgebaut, somit kennt dieser die öffentlichen Adressen von Alice und Bob. Nun will Alice mit Bob telefonieren. Der VoIP-Client von Alice fragt den STUN-Server nach der Adresse von Bob und verschickt ein UDP-Paket mit einem bestimmten Quellport, zum Beispiel 3000, und einem ebenfalls vorher definierten Zielport, zum Beispiel 3001 an Bob.
Bobs Firewall verwirft dieses Paket natürlich, dennoch denkt Alices Firewall, es sei eine Verbindung aufgebaut worden, und wird von nun an alle Pakete von Bob, die den Quellport 3001, den Zielport 3000 und die Quelladresse von Bob haben, an Alice weiterleiten. Bob erfährt nun von dem STUN-Server, dass Alice eine Verbindung aufbauen möchte. Also sendet Bob ein UDP-Paket mit dem Quellport 3001 und dem Zielport 3000 an Alice. Eine direkte Verbindung ist aufgebaut.
Dies ist natürlich ein stark vereinfachtes Beispiel; es zeigt aber die grobe Funktionsweise.
Die proprietäre VoIP-Anwendung Skype funktioniert ähnlich.
Implementierungen
Weblinks
- RFC 3489, STUN – Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs)
- RFC 5389, Session Traversal Utilities for NAT (STUN)
- Entwurf für die NAT-Typerkennung
Wikimedia Foundation.