Suchen

Definition Was ist ein TURN-Server (Traversal Using Relays around NAT)?

Ein TURN-Server wird eingesetzt, um die Kommunikation zwischen Rechnern über NAT- oder Firewallgrenzen hinweg zu ermöglichen. Er bedient sich des standardisierten Protokolls Traversal Using Relays around NAT und fungiert für die beteiligten Rechner als Relay-Server. TURN eignet sich für den Datenaustausch per UDP oder TCP und wird verwendet, wenn Lösungen wie STUN nicht nutzbar sind.

Die wichtigsten IT-Fachbegriffe verständlich erklärt.
Die wichtigsten IT-Fachbegriffe verständlich erklärt.
(Bild: © aga7ta - stock.adobe.com)

TURN ist die Abkürzung für Traversal Using Relays around NAT. Es handelt sich um ein im RFC 5766 definiertes Verfahren zur Überwindung von NAT- oder Firewallgrenzen. Weitere TURN-RFCs sind RFC 6156 (für IPv6) und RFC 7065 (für das TURN URI-Schema). TURN kommt zum Einsatz, wenn andere Verfahren zur Kommunikation über NAT-Grenzen wie STUN (Session Traversal Utilities for NAT) nicht anwendbar sind.

Ein TURN-Server fungiert als Relay-Server für Datenpakete und ist für den Datenaustausch per Transmission Control Protocol (TCP) oder User Datagram Protocol (UDP) geeignet. Er befindet sich außerhalb der NAT-Grenzen (im öffentlichen Internet). Die kommunizierenden Rechner nehmen Kontakt zu dem Server auf und sind über den Relay-Server verbunden.

Ein Nachteil des TURN-Verfahrens ist, dass der TURN-Server die komplette Kommunikation bedienen muss. Er benötigt daher entsprechende Performance und Bandbreite. Aus Anwendungssicht stellt der Server ein Flaschenhals dar.

Die Problematik des Datenverkehrs über NAT-Grenzen und Firewalls hinweg

Network Address Translation (NAT) ist im Internet weit verbreitet und wird aufgrund der Knappheit von IPv4-Adressen häufig genutzt. Da Internetprovider ihren Kunden in der Regel nur eine einzige öffentliche im Internet nutzbare IPv4-Adresse zuteilen, müssen sich alle vorhandenen Endgeräte des Kunden diese IP-Adresse teilen. Dies geschieht, indem der Internet-Router die im lokalen Netz verwendeten privaten IP-Adressen in eine Kombination aus öffentlicher IP-Adresse und Port übersetzt. Die Zuordnung der privaten IP-Adresse zum Port und zur öffentlichen IP-Adresse speichert der Router in einer Tabelle. Die Endgeräte selbst kennen nur ihre private und nicht ihre im Internet verwendete öffentlich IP-Adresse.

NAT verletzt das Prinzip der Ende-zu-Ende-Kommunikation eines IP-Netzes. Dies führt bei bestimmten Anwendungen zu Problemen. Zudem verhindern die NAT-Router, dass eine Verbindung aus dem Internet zu einem lokalen Endgerät aufgebaut werden kann. Der Verbindungsaufbau geht in der Regel immer vom Endgerät in Richtung öffentliches Internet. Um Verbindungen zwischen Endgeräten aufzubauen, die sich hinter NAT-Router befinden, sind Hilfsprotokolle wie STUN oder TURN und externe Server notwendig.

Die prinzipielle Funktionsweise eines TURN-Servers

Vereinfacht dargestellt läuft die Kommunikation über einen TURN-Server folgendermaßen ab:

Möchte ein Rechner hinter einem NAT-Router einen anderen Rechner per TURN kontaktieren, wendet er sich zunächst an den TURN-Server im öffentlichen Internet. Die Adresse des TURN-Servers wurde entweder zuvor auf dem Client konfiguriert oder über eine Anfrage eines "DNS SRV"-Records für den TURN-Service ermittelt. Der Client sendet dem TURN-Server eine Allocate-Anfrage und reserviert beim Server Ressourcen für eine Verbindung. Hat der TURN-Server eine gültige Verbindung zum Peer, teilt er diese als Allocated Relayed Transport Address dem anfragenden Rechner mit. Er kann anschließend Daten an den TURN-Server senden, die dieser an den Zielrechner weiterleitet. Antwortdaten des Zielrechners werden in umgekehrter Richtung ebenfalls vom TURN-Server weitergeleitet. Das Weiterleiten der Daten per Traversal Using Relays around NAT funktioniert sowohl für UDP als auch für TCP.

Abgrenzung zu STUN (Session Traversal Utilities for NAT)

Session Traversal Utilities for NAT, abgekürzt STUN, ist ebenfalls ein Verfahren zur Überwindung von NAT-Grenzen. Allerdings kommt es ohne einen in die Kommunikation zwischengeschalteten Relay-Server aus. Ein STUN-Server ist nur für den Verbindungsaufbau zwischen zwei Rechnern notwendig. Die eigentliche Kommunikation findet direkt zwischen den beiden Rechnern statt.

Soll eine Verbindung hergestellt werden, ermittelt der STUN-Server auf Anfrage eines Clients die Kombination aus öffentlicher IP-Adressen und Port der übersetzten privaten IP-Adresse sowie das verwendete NAT-Verfahren. Dieses Wissen kann der Client nun anderen Rechnern, die über das öffentliche Internet Kontakt mit ihm aufnehmen möchten, mitteilen. Da aufgrund der vorangegangenen Kommunikation mit dem STUN-Server ein Port im NAT-Router geöffnet ist, lassen sich ankommende Datenpakete an den Client weiterleiten.

STUN ist aber keine vollständige Lösung zur Überwindung von NAT-Grenzen und scheitert bei bestimmten NAT-Verfahren oder restriktiven Firewall-Regeln. TURN hingegen bietet aufgrund der Relay-Funktion mehr Möglichkeiten zur Kommunikation über die NAT-Grenzen hinweg. Allerdings ist der Betrieb eines TURN-Servers sehr ressourcen- und bandbreiteaufwendig. Er ist aus Sicht der beteiligten Rechner ein Engpass (Flaschenhals). Bei STUN hingegen findet der eigentliche Datenaustausch ohne einen zwischengeschalteten Server direkt zwischen dem Quell- und Zielrechner statt. Daher kommt TURN üblicherweise nur dann zum Einsatz, wenn Methoden wie STUN und eine direkter Datenaustausch zwischen den Kommunikationspartnern aufgrund des verwendeten NAT-Verfahrens nicht möglich sind.

(ID:46923162)

Über den Autor