STUN (Simple Traversal of UDP through NAT)
Servidor STUN


Un servidor STUN, definido originalmente como acrónimo para "Simple Traversal of User Datagram Protocol (UDP) through Network Address Translators (NATs)": Sesión Traversal de UDP a través de NATs, permite a los clientes NAT (tal como computadores detrás de un firewall), configurar llamadas telefónicas a un proveedor VOIP alojado afuera de su red local.


Qué es un servidor STUN


El servidor STUN permite a los clientes encontrar sus direcciones públicas, el tipo de NAT del cual ellos están atrás y el puerto Internet asociado por el NAT con el puerto local específico. Esta información es usada para configurar comunicación UDP entre el cliente y el proveedor VOIP para así establecer una llamada. El protocolo STUN está definido en el RFC 3489.

El servidor STUN es contactado en el puerto UDP 3478, sin embargo, el servidor indicará a los clientes que realicen pruebas en IP alternativas y también números de puertos (servidores STUN tienen 2 direcciones IP).


Session Traversal Utilities for NAT


Desde la publicación del RFC 3489, se ha encontrado que los métodos descriptos fueron insuficientes para identificar correctamente el comportamiento de una implementación NAT. Esto dió como resultado la publicación de un conjunto de métoddos actualizados en el RFC 5389 titulado "Session Traversal Utilities for NAT".

Con el nuevo RFC, el acrónimo permanece sin cambios, y los problemas que STUN intenta resolver son los mismos, pero algunos de los métodos anteriores han sido descartados, y la postura del nuevo RFC no es más intentar ser una solución completa para el recorrido NAT, sino un conjunto de herramientas para ser usadas en el contexto de una solución para el recorrido NAT.

In a STUN exchange, a STUN Client (typically any VoIP endpoint, such as a phone or a PBX, can be a STUN client) will make a series of requests to a STUN Server (typically a service on a network host in the public Internet, dedicated only to responding to STUN requests). The responses will indicate to the client:

  • which IP Address the STUN Server saw the request coming from (which will be a Public IP Address since a WAN-to-LAN device will have performed NAT/PAT on the outgoing traffic)
  • which Port Number Translations would be in effect for a particular type of exchanged UDP traffic

This information allows a SIP phone for example, to identify the Public IP Address and Port Number that would be placed in the IP Headers AFTER translation, so that when building the CONTENT of the SIP packet (and also the embedded SDP exchange, when present), the TRANSLATED IP Address and Port Numbers will be declared. This way, the phone ensures that if the remote SIP endpoint uses the CONTENT of the SIP packet to identify the return Addresses and Ports, it will have the correct information.




STUN (Session Traversal Utilities for NAT)
Protocolo STUN


STUN son las siglas de Session Traversal Utilities (Utilidades de Sesión Transversal) utilizadas para NAT (Traducción de Direcciones de Red).
STUN es un protocolo servidor-cliente para ayudar a los dispositivos situados detrás de un cortafuegos o enrutador NAT a enrutar sus paquetes. El RFC 5389 redefine el término STUN como "Session Traversal Utilities for NAT".

Un servidor STUN opera en la red pública y responde a la pregunta habitual: "¿Cuál es mi dirección IP?". Mediante el servidor STUN, los clientes pueden acceder a información sobre su dirección pública y el tipo de NAT que se ejecuta en el gateway. También puede utilizarse para comprobar qué puerto de Internet está vinculado mediante NAT a su puerto local. Por esta razón, otros protocolos como el Establecimiento de Conectividad Interactiva (ICE: Interactive Connectivity Establishment), el Protocolo de Iniciación de Sesión (SIP: Session Initiation Protocol) y WebRTC (Web Real Time Communications) utilizan STUN.


Tipos de NAT (según el RFC)

  • Cono completo (Full Cone):
    Una NAT de cono completo es aquella en la que todas las peticiones procedentes de la misma dirección IP y puerto internos se asignan a la misma dirección IP y puerto externos. Además, cualquier host externo puede enviar un paquete al host interno, enviando un paquete a la dirección externa mapeada.
  • Cono restringido (Restricted Cone):
    Una NAT de cono restringido es aquella en la que todas las peticiones procedentes de la misma dirección IP y puerto internos se asignan a la misma dirección IP y puerto externos. A diferencia de una NAT de cono completo, un host externo (con dirección IP X) puede enviar un paquete al host interno sólo si el host interno había enviado previamente un paquete a la dirección IP X.
  • Cono de puerto restringido (Port Restricted Cone):
    Un cono NAT con restricción de puertos es como un cono NAT con restricción, pero la restricción incluye los números de puerto. En concreto, un host externo puede enviar un paquete, con dirección IP de origen X y puerto de origen P, al host interno sólo si el host interno había enviado previamente un paquete a la dirección IP X y al puerto P.
  • Simétrico (Symmetric):
    Una NAT simétrica es aquella en la que todas las peticiones desde la misma dirección IP y puerto internos, a una dirección IP y puerto de destino específicos, se mapean a la misma dirección IP y puerto externos. Si el mismo host envía un paquete con la misma dirección de origen y puerto, pero a un destino diferente, se utiliza un mapeo diferente. Además, sólo el host externo que recibe un paquete puede enviar un paquete UDP de vuelta al host interno. Puede utilizar una prueba NAT DH2i para determinar si su sitio está detrás de un dispositivo NAT simétrico.




Temas relacionados