<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Session_Traversal_Utilities_for_NAT</id>
	<title>Session Traversal Utilities for NAT - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Session_Traversal_Utilities_for_NAT"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Session_Traversal_Utilities_for_NAT&amp;action=history"/>
	<updated>2026-05-28T17:11:29Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Session_Traversal_Utilities_for_NAT&amp;diff=208859&amp;oldid=prev</id>
		<title>imported&gt;Matthäus Wander: /* Allgemeines */ link</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Session_Traversal_Utilities_for_NAT&amp;diff=208859&amp;oldid=prev"/>
		<updated>2025-07-11T09:15:04Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Allgemeines: &lt;/span&gt; link&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Session Traversal Utilities for NAT&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;STUN&amp;#039;&amp;#039;&amp;#039;, {{enS}} für „Werkzeuge zum Durchkreuzen von [[Network Address Translation|NATs]]“) ist ein einfaches [[Netzwerkprotokoll]], um das Vorhandensein und die Art von [[Firewall]]s und NAT-Routern zu erkennen und direkte Verbindungen zwischen Geräten, welche sich hinter einer NAT-Firewall befinden, aufzubauen. Damit ist es Geräten, welche hinter bestimmten Typen von NAT-Firewalls betrieben werden, möglich, direkte bidirektionale Verbindungen zwischen den Endknoten aufzubauen. Beispiele für die Anwendung von STUN sind [[SIP-Telefon]]e und Computer-Programme in Heimnetzwerken.&lt;br /&gt;
&lt;br /&gt;
== Allgemeines ==&lt;br /&gt;
STUN dient dazu, die Informationen wie die öffentliche [[IP-Adresse]] und [[Port (Protokoll)|Port-Nummer]] für den direkten Kontaktaufbau zwischen zwei Endgeräten, den „[[Client]]s“, welche sich normalerweise nicht direkt erreichen können, zu ermitteln um dann in Folge und unabhängig von STUN, den Clients mit diesen Informationen die direkte Kontaktaufnahme zu ermöglichen. STUN wird unter anderem bei der [[IP-Telefonie]] (v.&amp;amp;nbsp;a. im Zusammenhang mit [[Session Initiation Protocol|SIP]]) und bei Online-Spielen von Spielekonsolen eingesetzt.&lt;br /&gt;
&lt;br /&gt;
STUN wurde in &amp;lt;nowiki&amp;gt;RFC&amp;amp;nbsp;3489&amp;lt;/nowiki&amp;gt;&amp;lt;ref name=&amp;quot;RFC3489&amp;quot; /&amp;gt; definiert und stand damals noch für {{EnS|&amp;#039;&amp;#039;Simple traversal of UDP through NATs&amp;#039;&amp;#039;}}. Aufgrund der gemachten Erfahrungen und neuen Definitionen aus anderen RFCs wurde STUN dann überarbeitet und in {{EnS|&amp;#039;&amp;#039;Session Traversal Utilities for NAT&amp;#039;&amp;#039;}} umbenannt (&amp;lt;nowiki&amp;gt;RFC&amp;amp;nbsp;5389&amp;lt;/nowiki&amp;gt;&amp;lt;ref name=&amp;quot;RFC5389&amp;quot; /&amp;gt;). 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.&lt;br /&gt;
&lt;br /&gt;
Ein in der Funktion ähnliches Protokoll stellt [[TURN]] dar, die Abkürzung steht für {{EnS|Traversal Using Relays around NAT}}, welches im Gegensatz zu STUN sich eines externen, im öffentlichen Internet befindlichen Relay-Server bedient, um so eine Verbindung zwischen Clients mit einem direkten Kommunikationskanal aufzubauen. Dies erlaubt auch Kommunikationen, wo die direkte Verbindung von Endgeräten untereinander durch bestimmte, restriktive NAT-Firewalls blockiert werden. Der Nachteil ist, dass der normalerweise verschlüsselte Datentransfer über den TURN-Server laufen muss und diese Anbindung bei vielen Verbindungen einen Flaschenhals darstellt.&lt;br /&gt;
&lt;br /&gt;
== Funktionsweise ==&lt;br /&gt;
STUN ist ein auf dem [[User Datagram Protocol]] (UDP) basierendes [[Client-Server-Modell|Client-Server]]-Protokoll. Es dient zur Ermittlung einer externen IP-Adresse und zur Analyse der Verbindung eines Clients zum [[Internet]]. Es ermittelt ob NAT verwendet wird und welche NAT-Art vorliegt. Es dient &amp;#039;&amp;#039;nicht&amp;#039;&amp;#039; zur kompletten Durchdringung von Firewalls ([[Hole Punching (Rechnernetz)|hole punching]]). Für eine vollständige Analyse der Verbindungsarten (NAT-Arten) werden zwei STUN-Server mit unterschiedlichen IP-Adressen benötigt. &amp;lt;nowiki&amp;gt;RFC&amp;amp;nbsp;3489&amp;lt;/nowiki&amp;gt;&amp;lt;ref name=&amp;quot;RFC3489&amp;quot; /&amp;gt; ist mittlerweile als obsolet gekennzeichnet, &amp;lt;nowiki&amp;gt;RFC&amp;amp;nbsp;5389&amp;lt;/nowiki&amp;gt;&amp;lt;ref name=&amp;quot;RFC5389&amp;quot; /&amp;gt; und &amp;lt;nowiki&amp;gt;RFC&amp;amp;nbsp;7350&amp;lt;/nowiki&amp;gt;&amp;lt;ref&amp;gt;{{RFC-Internet |RFC=7350 |Titel=Datagram Transport Layer Security (DTLS) as Transport for Session Traversal Utilities for NAT (STUN) |Datum=}}&amp;lt;/ref&amp;gt; enthalten geänderte und erweiterte STUN-Varianten.&lt;br /&gt;
&lt;br /&gt;
Eine STUN-Anfrage (gemäß &amp;lt;nowiki&amp;gt;RFC&amp;amp;nbsp;3489&amp;lt;/nowiki&amp;gt;&amp;lt;ref name=&amp;quot;RFC3489&amp;quot; /&amp;gt;) besteht aus folgenden Parametern:&lt;br /&gt;
; Transaktions-ID: Vom Client vergeben. Dient zur Unterscheidung mehrerer STUN Verbindungen.&lt;br /&gt;
; Antwortadresse: Der STUN-Server soll seine Antwort an diese Adresse senden, die aus IP-Adresse und UDP-Port besteht. Ist das Feld leer, so sendet er die Antwort an die Absenderadresse der Anfrage.&lt;br /&gt;
; Alternative IP: Ist dieses Bit gesetzt, so wird die Antwort von dem zweiten STUN-Server beantwortet.&lt;br /&gt;
; Alternativer Port: Dieses Bit weist den Server an, die Antwort nicht vom gleichen UDP-Port zu beantworten, an den die Anfrage gesendet wurde.&lt;br /&gt;
&lt;br /&gt;
Die Antwort beinhaltet die öffentliche IP-Port-Adresse, die der STUN-Server sieht. Mit IP-Port-Adresse ist die Kombination aus IP-Adresse und dem Absender-UDP-Port des Clients gemeint. Diese Adresse ist mit einer [[Kontravalenz|XOR]]-Maske kodiert, damit sie nicht vom NAT-Router übersetzt wird. Außerdem wird die alternative IP-Adresse des zweiten STUN-Servers und die Adresse des antwortenden Servers gesendet.&lt;br /&gt;
&lt;br /&gt;
=== STUN-Algorithmus ===&lt;br /&gt;
[[Datei:STUN Algorithm3.svg|mini|hochkant=2|STUN Algorithmus]]&lt;br /&gt;
Bekommt der Client nach mehrmaligem Wiederholen keine Antwort, werden UDP-Pakete wahrscheinlich blockiert und die Anfrage wird abgebrochen. Entspricht die IP-Adresse in der STUN-Antwort der der [[Netzwerkkarte]] des Clients, so wird keine NAT verwendet und der Client ist direkt (z.&amp;amp;nbsp;B. über ein [[Modem]]) mit dem Internet verbunden. Anderenfalls muss der Typ der NAT genauer untersucht werden. Dazu sind weitere Tests erforderlich.&lt;br /&gt;
&lt;br /&gt;
Im Fall der direkten Verbindung muss nur noch die Firewall getestet werden. Dazu wird wieder eine Anfrage an den ersten STUN-Server gesendet, aber mit gesetztem &amp;#039;&amp;#039;Alternativen-IP-&amp;#039;&amp;#039; und &amp;#039;&amp;#039;Alternativen-Port-&amp;#039;&amp;#039;Bit. Damit wird die Antwort vom zweiten Server gesendet und nicht vom ersten. Empfängt der Client eine Antwort, so sind eingehende Verbindungen uneingeschränkt möglich. Wird keine Antwort empfangen, so wird eine Firewall eingesetzt. Diese lässt nur eingehende Pakete von Absendern durch, wenn vorher ein Paket an diesen Absender gesendet wurde. Die Firewall verhindert also eingehende Verbindungen und ist für IP-Telefonie ungeeignet.&lt;br /&gt;
&lt;br /&gt;
Falls eine NAT erkannt wird, wird genau die gleiche Anfrage mit gesetztem &amp;#039;&amp;#039;Alternativen-IP-&amp;#039;&amp;#039; und &amp;#039;&amp;#039;Alternativen-Port-&amp;#039;&amp;#039;Bit an den ersten Server gesendet. Lässt der NAT-Router die Antwort des zweiten STUN-Servers durch, so handelt es sich um eine &amp;#039;&amp;#039;Full Cone-NAT&amp;#039;&amp;#039;. Eingehende Verbindungen werden uneingeschränkt an den Client umleitet, sobald diese an die öffentliche IP-Port-Adresse des Clients gerichtet sind, die er in der Antwort des STUN-Servers im ersten Test empfangen hat. Die Full Cone-NAT weist dem Port des Clients im [[Local Area Network|lokalen Netzwerk]] einen festen Port mit der öffentlichen IP-Adresse zu (&amp;#039;&amp;#039;Mapping&amp;#039;&amp;#039;), der dann nicht mehr geändert wird.&lt;br /&gt;
&lt;br /&gt;
Erhält der Client keine Antwort, beginnt der dritte Test. Er sendet eine normale Anfrage ohne gesetzte Bits an den zweiten STUN-Server. Anschließend vergleicht er die öffentliche IP-Port-Adresse, die der zweite Server ermittelt hat, mit der aus der ersten Antwort. Sind diese unterschiedlich, weil der UDP-Port unterschiedlich ist, so wird eine symmetrische NAT eingesetzt. Diese nutzt für jede IP-Adresse des Ziel-Servers eine andere Portzuweisung (Mapping). Eingehende Verbindungen an eine festgelegte IP-Port-Adresse sind somit nicht möglich.&lt;br /&gt;
&lt;br /&gt;
Sind die IP-Port-Adressen dagegen identisch, wird ein vierter Test ausgeführt. Der Client sendet wieder eine Anfrage, in der ausschließlich das &amp;#039;&amp;#039;Alternativer-Port-&amp;#039;&amp;#039;Bit gesetzt ist. Der Server antwortet von einem anderen Port, aber an die gleiche öffentliche IP-Port-Adresse. Wird die Antwort an den Client durchgereicht, so handelt es sich um eine &amp;#039;&amp;#039;Restricted NAT&amp;#039;&amp;#039;. Diese behält zwar die gleiche Portzuweisung (Mapping) unabhängig von der Ziel-Adresse des Paketes bei, lässt aber eingehende Pakete nur durch, wenn vorher ein Paket an dessen Quelle gesendet wurde.&lt;br /&gt;
&lt;br /&gt;
Erhält der Client dagegen keine Antwort, ist eine &amp;#039;&amp;#039;Port Restricted NAT&amp;#039;&amp;#039; im Einsatz. Diese verhält sich ähnlich der &amp;#039;&amp;#039;Restricted NAT&amp;#039;&amp;#039;. Im Gegensatz dazu muss die Ziel-Portnummer des vorher ausgehenden Paketes mit der Quell-Portnummer des nun eintreffenden Paketes übereinstimmen, sonst wird es verworfen. In den beiden letzten Fällen ist IP-Telefonie ebenfalls möglich, nur dass der Client vorher ein Paket an die Gegenstelle senden muss, damit der Port für sie freigeschaltet wird.&lt;br /&gt;
&lt;br /&gt;
== Implementierungen ==&lt;br /&gt;
* [https://sourceforge.net/projects/stun/ STUN Client and Server library]&lt;br /&gt;
* [https://github.com/tking/JSTUN JSTUN – Java-Implementierung]&lt;br /&gt;
* [https://www.stunprotocol.org/ Stuntman]: Open Source STUN Server&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* {{RFC-Internet |RFC=3489 |Titel=STUN – Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs) |Datum=}}&lt;br /&gt;
* {{RFC-Internet |RFC=5389 |Titel=Session Traversal Utilities for NAT (STUN) |Datum=}}&lt;br /&gt;
* {{RFC-Internet |RFC=7350 |Titel=Datagram Transport Layer Security (DTLS) as Transport for Session Traversal Utilities for NAT (STUN) |Datum=}}&lt;br /&gt;
* [https://datatracker.ietf.org/doc/html/draft-ietf-behave-nat-behavior-discovery Entwurf für die NAT-Typerkennung]&lt;br /&gt;
* {{Webarchiv | url=http://www.all-about-security.de/security-artikel/applikations-host-sicherheit/voice-over-ip-unified-communication/artikel/525-voip-und-firewalls | wayback=20100203143013 | text=VoIP und Firewalls – All About Security}}&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;RFC3489&amp;quot;&amp;gt;&lt;br /&gt;
{{RFC-Internet |RFC=3489 |Titel=STUN – Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs) |Datum=}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;RFC5389&amp;quot;&amp;gt;&lt;br /&gt;
{{RFC-Internet |RFC=5389 |Titel=Session Traversal Utilities for NAT (STUN) |Datum=}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{SORTIERUNG:STUN}}&lt;br /&gt;
[[Kategorie:Netzwerkprotokoll]]&lt;br /&gt;
[[Kategorie:VoIP-Software]]&lt;br /&gt;
[[Kategorie:Netzwerkadressübersetzung]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Matthäus Wander</name></author>
	</entry>
</feed>