STUN - Simple Traversal of UDP through NAT
Simple Traversal of UDP through NAT, kurz STUN, ist ein Protokoll, mit dem zwei SIP-Endgeräte mit integriertem STUN-Client unter Mithilfe eines STUN-Servers die Beschränkungen von NAT in vielen Fällen umgehen können.
Probleme durch NAT für Voice-over-IP mit SIP im Internet
Voice over IP mit SIP setzt immer voraus, dass die Endgeräte über ihre IP-Adresse erreichbar sind. Steht das Endgerät hinter einem Router mit NAT (Network Address Translation), dann kann dieses Endgerät von außen nicht erreicht werden. Der Router leitet den Datenverkehr von außen nur dann durch, wenn der Datenverkehr von innen initiiert wurde. Denn sonst ist ihm nicht bekannt, für welches Endgerät die Daten von außen bestimmt sind. Dazu kommt noch, das Endgerät kennt noch nicht einmal seine eigene Adresse im Internet.
Folgende Problematik kommt erschwerend hinzu: Der Datenstrom wird über RTP übertragen und mit RTCP gesteuert. Dabei werden dynamisch die Ports genutzt. Bei NAT-Routern und Firewalls führt das zu Problemen. Dort besteht die Gefahr, dass die Verbindungen blockiert werden.
Um diese Probleme zu umgehen, betreibt der SIP-Provider einen STUN-Server. Er teilt dem Endgerät auf Anfrage mit, mit welcher IP-Adresse er im Internet erreichbar ist und hinter welcher Art von Firewall er sich befindet.
Funktionsablauf bei STUN
Der STUN-Server bekommt vom Endgerät eine Nachricht geschickt. Er sendet ein Paket zurück, in der IP-Adresse und Port des gesendeten Pakets enthalten sind. Das Endgerät, das sich hinter dem NAT-Router befindet, kann dann diese Informationen für alle folgenden Verbindungen in den SIP- und SDP-Paketen verwenden. Dadurch kann ein Endgerät auch herausfinden, ob Zugang zum Netzwerk besteht, ob die Firewall UDP-Pakete blockiert und ob NAT zum Einsatz kommt.