«

»

Imprimir esta Entrada

Servidor STUN


STUN (sigla en inglés de Simple Transversal Utilities for NAT) es un protocolo de red del tipo cliente/servidor que permite a clientes NAT encontrar su dirección IP pública, el tipo de NAT en el que se encuentra y el puerto de Internet asociado con el puerto local a través de NAT. Esta información es usada para configurar una comunicación UDP entre dos hosts que se encuentren tras enrutadores NAT.

Servidor STUN de VoIP

Un servidor STUN, 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.

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 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). El RFC indica que este puerto e IP son arbitrarios.

NAT – Network Address Translation

NAT - Network Address TranslationNAT (Network Address TranslationTraducción de Dirección de Red) es un mecanismo utilizado por routers IP para intercambiar paquetes entre dos redes que asignan mutuamente direcciones incompatibles. Consiste en convertir, en tiempo real, las direcciones utilizadas en los paquetes transportados. También es necesario editar los paquetes para permitir la operación de protocolos que incluyen información de direcciones dentro de la conversación del protocolo.

El tipo más simple de NAT proporciona una traducción una-a-una de las direcciones IP. La RFC 2663 se refiere a este tipo de NAT como NAT Básico, también se le conoce como NAT una-a-una. En este tipo de NAT únicamente, las direcciones IP, las sumas de comprobación (checksums) de la cabecera IP, y las sumas de comprobación de nivel superior, que se incluyen en la dirección IP necesitan ser cambiadas. El resto del paquete se puede quedar sin tocar (al menos para la funcionalidad básica del TCP/UDP, algunos protocolos de nivel superior pueden necesitar otra forma de traducción). Es comun ocultar un espacio completo de direcciones IP, normalmente son direcciones privadas IP, detrás de una única dirección IP (o pequeño grupo de direcciones IP) en otro espacio de direcciones (normalmente público).

Su uso más común es permitir utilizar direcciones privadas (definidas en el RFC 1918) para acceder a Internet. Existen rangos de direcciones privadas que pueden usarse libremente y en la cantidad que se quiera dentro de una red privada. Si el número de direcciones privadas es muy grande puede usarse solo una parte de direcciones públicas para salir a Internet desde la red privada. De esta manera simultáneamente sólo pueden salir a Internet con una dirección IP tantos equipos como direcciones públicas se hayan contratado. Esto es necesario debido al progresivo agotamiento de las direcciones IPv4. Se espera que con el advenimiento de IPv6 no sea necesario continuar con esta práctica.

Tipos de NAT

Existen 4 tipos de NAT. Los routers vienen configurados con uno de estos 4 tipos

1) Full Cone
2) Restricted Cone
3) Port Restricted Cone
4) Symmetric Cone

Para una dada IP:puerto interna, los primeros 3 tipos de NAT conservan esta dirección independientemente de la dirección:puerto externa de la máquina de destino. Para el Symmetric cone NAT se hará un par IP:puerto-interno/IP:puerto-externo nuevo para cada IP externa que se contacte.

Full Cone
Se establece una único par IP:puerto-interno/IP:puerto-router. Esta relación esta siempre disponible aunque el cliente no haya enviado ninguna señal. Por ejemplo esta prefijado que el cliente con 198.162.0.1:80 sale por 202.123.211.25:10080. Cualquier computadora en Internet puede enviar paquetes a 202.123.211.25:10080 que serán transmitidos a 198.162.0.1:80. La mayoría de los routers hogareños usa este tipo de NAT.

Restricted Cone NAT
En el Restricted Cone NAT, la IP:puerto publica del router se abre recién cuando el cliente hace un pedido hacia una máquina remota. El router recuerda la IP de la remota y solo acepta información de esta. De manera que si no hay un pedido concreto del cliente, una Remota A no podrá hacerle llegar información. Por ejemplo si 198.162.0.1:80 pide comunicarse con Remota A sale por 202.123.211.25:10080 hacia Remota A 222.111.99.1. Solo Remota A podrá enviar información. Remota B no lo podrá hacer hasta que el cliente haga un pedido a remota B.

Port Restrited Cone NAT
Es casi idéntico al restricted cone NAT solo que el pedido del cliente debe contener el puerto de la Remota. Si después de hacer el pedido la remota envía desde 222.111.99.1:20202 entonces NAT hará llegar la información al cliente. Si no envía su numero de puerto no podra hacerle llegar la información al cliente.

Symetric NAT
Para cada remota el router abre un puerto distinto. Si el cliente envía desde 192.169.0.1:80 a Remota A (222.111.99.1:20202) el router abrirá un nuevo puerto (en la figura el 45678), y para una remota B otro puerto (en la figura el 12345). La Remota solo podrá devolver la información a la IP:puerto router abierto especialmente para su máquina.

Servidor STUN Funcionamiento Basico

STUN es usado principalmente por teléfonos o software VoIP. Este incorpora un cliente STUN que envía una petición a un servidor STUN. El servidor STUN informa entonces al cliente de la IP pública de este último y qué puerto ha sido abierto por NAT para permitir el tráfico entrante a la red del cliente.

La respuesta permite además al cliente STUN determinar el tipo de NAT en uso, ya que diferentes tipos de NAT manejan los paquetes UDP entrantes de manera diferente. STUN soporta tres de los cuatro tipos principales de NAT existentes: Full Cone, Restricted Cone y Port Restricted Cone. No soporta, sin embargo, Symmetric NAT, también conocido como NAT bidireccional.

Una vez el cliente ha descubierto su dirección pública, puede comunicar ésta a sus pares. Si la NAT es del tipo Full Cone, cualquier extremo puede iniciar la comunicación; en otro caso, ambos extremos han de iniciar la comunicación simultáneamente.

STUN es útil como complementos de protocolos como SIP. SIP utiliza paquetes UDP para la señalización de tráfico de sonido, vídeo y texto sobre Internet, pero no permite establecer la comunicación cuando los extremos se encuentran detrás de enrutados NAT. Por ello suele usarse STUN en estas aplicaciones, para poder establecer la comunicación.

La conexión con el servidor STUN se lleva a cabo normalmente a través del puerto 3478 mediante UDP. El servidor STUN puede entonces facilitar al cliente una IP y un puerto alternativos de comunicación.

Servidor STUN

El protocolo TCP/IP tiene la capacidad de generar varias conexiones simultáneas con un dispositivo remoto. Para realizar esto, dentro de la cabecera de un paquete IP, existen campos en los que se indica la dirección origen y destino. Esta combinación de números define una única conexión.

La mayoría de los NAT asignan varias máquinas (hosts) privadas a una dirección IP expuesta públicamente. En una configuración típica, una red local utiliza unas direcciones IP designadas “privadas” para subredes .Un ruteador en esta red tiene una dirección privada en este espacio de direcciones. El ruteador también está conectado a Internet por medio de una dirección pública asignada por un proveedor de servicios de Internet. Como el tráfico pasa desde la red local a Internet, la dirección de origen en cada paquete se traduce sobre la marcha de una dirección privada a una dirección pública. El ruteador sigue la pista de los datos básicos de cada conexión activa (en particular, la dirección de destino y el puerto). Cuando una respuesta llega al ruteador utiliza los datos de seguimiento de la conexión almacenados en la fase de salida para determinar la dirección privada de la red interna a la que remitir la respuesta.

Todos los paquetes de Internet tienen una dirección IP de origen y una dirección IP de destino. En general, los paquetes que pasan de la red privada a la red pública tendrán su dirección de origen modificada, mientras que los paquetes que pasan a la red pública de regreso a la red privada tendrán su dirección de destino modificada. Existen configuraciones más complejas.

Para evitar la ambigüedad en la forma de traducir los paquetes de vuelta, es obligatorio realizar otras modificaciones. La mayor parte del tráfico generado en Internet son paquetes TCP y UDP, para estos protocolos los números de puerto se cambian, así la combinación de la información de IP y puerto en el paquete devuelto puede asignada sin ambigüedad a la información de dirección privada y puerto correspondiente. Los protocolos que no están basados en TCP y UDP requieren de otras técnicas de traducción Los paquetes ICMP normalmente se refieren a una conexión existente y necesitan ser asignado utilizando la misma información de IP y puerto que el de la conexión.

Una pasarela NAT cambia la dirección origen en cada paquete de salida y, dependiendo del método, también el puerto origen para que sea único. Estas traducciones de dirección se almacenan en una tabla, para recordar qué dirección y puerto le corresponde a cada dispositivo cliente y así saber donde deben regresar los paquetes de respuesta. Si un paquete que intenta ingresar a la red interna no existe en la tabla de en un determinado puerto y dirección se pueda acceder a un determinado dispositivo, como por ejemplo un servidor web, lo que se denomina NAT inverso o DNAT (Destination NAT).

CONFIGURACION DE SERVIDOR STUN EN ASTERISK

Lo primero es iniciar sesión en nuestro servidor Asterisk vía Linea de Comandos (CLI) y luego ejecutar los siguientes pasos:

1. Descargar las librerias de STUN Server, ejecutando los siguientes comandos:

 
  cd /usr/local/sbin/
  wget http://sourceforge.net/projects/stun/files/stun/0.97/stund-0.97.tgz/download
 

2. El siguiente paso es compilar nuestro paquete e instalar el mismo, ejecutando los siguientes comandos:

    tar xvfz stund_0.97.tgz
    cd stund
    make

3. Para poder iniciar el servicio es necesario contar con 2 interfaces de red las cuales no necesariamente deben ser físicas; en este paso crearemos una interfaz virtual adicional en el servidor.

Para el ejemplo vamos a suponer que el servidor cuenta con una tarjeta de red eth0 con la siguiente configuración:

# Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.50.255
DHCPCLASS=
HWADDR=00:1C:C0:7F:3A:2B
IPADDR=192.168.50.6
NETMASK=255.255.255.0
NETWORK=192.168.50.0
ONBOOT=yes

Ahora vamos a crear una nueva interfaz virtual que usaremos como segunda interfaz, para esto ejecutamos los siguientes comandos para crear nuestro archivo de NIC virtual eth0:0:

cd /etc/sysconfig/network-scripts/
vi ifcfg-eth0:0

En nuestro archivo ifcfg-eth0:0  colocamos los siguientes parámetros:

# Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller
DEVICE=eth0:0
BOOTPROTO=static
BROADCAST=192.168.50.255
DHCPCLASS=
HWADDR=00:1C:C0:7F:3A:2B
IPADDR=192.168.50.7 
NETMASK=255.255.255.0
NETWORK=192.168.50.0
ONBOOT=yes
Salvamos el archivo ifcfg-eth0:0 y luego debemos configurar nuestro sistema para que inicie de forma automática el servicio de STUN.
Para esto es necesario editar el archivo /etc/rc.d/rc.local y colocar la siguiente linea:
/usr/local/sbin/stund/server -v -b -h 192.168.50.6 -p 3478 -a 192.168.50.7 -o 3479
Guardamos y reiniciamos el servidor.

Una vez realizados estos pasos ha quedado funcional el servidor STUN.

22,597 total views, 9 views today



!!! AYUDANOS A MANTENER ESTE SITIO ACTIVO…!!!

Si piensas que te hemos ayudado y merecemos tu apoyo. !!! GRACIAS !!!

Cuando lo hagas tendras acceso inmediato a la documentacion en formato PDF para que la descargues. Encontraras tambien otros tutoriales mas avanzados no publicados en el sitio. Si no puedes o no quieres, no hay problema igual tendras acceso a toda la informacion publicada en este sitio.

!!CLICK AQUI.!! para ver Tutoriales a descargar

!!! GRACIAS POR TU DONACION !!!









Enlace permanente a este artículo: http://elastixtech.com/servidor-stun/

1 ping

  1. Sip en Elastix | Aprende Telefonia IP con Asterisk-Elastix

    […] Trabajar con un servidor STUN RFC 3489. Esta solución es quizá la mas compleja y existen múltiples fuentes de documentación que tratan específicamente sobre ella. Leer mas sobre este punto. […]

Deja un comentario