La capa de red. Volumen VI : NAT

Iniciado por 54NDR4, Marzo 24, 2013, 08:58:10 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.


Hoy vamos a hablar de la famosa NAT, es una función de la capa de red muy importante y que en más de una ocasión nos ha producido dolores de cabeza, sobre todo a los gamers.

NAT se creó para "parchear" la falta de direcciones IP que proporciona IPv4 (como ya vimos anteriormente). Si en nuestros hogares, SOHO (redes pequeñas de oficina) o en las universidades no existiera la NAT, el ISP tendría que asignar una dirección IP pública a cada dispositivo conectado. Podemos imaginar la cantidad de direcciones IP que necesitaríamos.

Para solucionar este problema se inventó la NAT (traducción de direcciones de red) y está integrada en todos los routers domésticos que tenemos hoy en día.

Los routers de casa tiene dos interfaces, la WAN que proporciona una dirección IP pública, y la LAN que proporciona un rango de direcciones IPs privada, normalmente son de clase C (192.168.X.X) ya que no necesitamos miles de direcciones IP privadas.

Para establecer contacto dentro de la LAN usa el direccionamiento de la propia LAN (192.168.1.1/24) sin necesidad de pasar a la WAN. Sin embargo, si queremos establecer conexión fuera de la red no podremos usar estas direcciones de la LAN, sino la WAN...y para ello hay que pasar por la NAT del router.

Para un dispositivo de internet, el router con NAT tiene una dirección IP pública y desconoce si en la LAN hay o no equipos conectados.

A continuación os explicamos cómo funciona la NAT de un router con un pequeño ejemplo, vamos a proceder a hacer un GET a una web, es decir, cargar una página web normal por el puerto 80.

Imaginemos los siguientes datos:

IP Privada de nuestro ordenador: 192.168.1.2
IP Pública de nuestro equipo: 87.4.4.4
IP Pública del servidor web: 87.5.5.5
Puerto del servidor web: 80

Nuestro equipo 192.168.1.2 hace el GET a la página web con IP 87.5.5.5 y puerto 80. El equipo 192.168.1.2 asigna un puerto origen aleatorio (8888), crea un datagrama con los datos y lo envía al router. La NAT del router recibe la información, y sustituye la IP 192.168.1.2 por 87.4.4.4 y el puerto 8888 por el 9999 (aleatorio).

El router podrá seleccionar cualquier puerto mientras que no esté en la tabla de traducciones NAT. Podremos realizar un máximo de 2^16 conexiones.

La tabla de traducciones NAT de este ejemplo sería la siguiente:

WAN: 87.4.4.4:9999
LAN: 192.168.1.2:8888

Ahora procedemos a hacer el GET a la web por la IP y el puerto correspondiente, y el servidor WEB enviará los datos a la IP 87.4.4.4 y por el puerto 9999. La NAT reenviará estos datos al ordenador correspondiente por el puerto correspondiente (192.168.1.2:8888).

Normalmente los puertos se emplean para direccionar procesos, pero no para direccionar los HOST, por lo que la NAT no está muy bien vista por muchos expertos en redes.

Un problema que tiene esta función de los routers es a la hora de usar aplicaciones P2P o juegos ONLINE si no tenemos hemos abierto los puertos adecuadamente hacia una dirección IP determinada. ¿Por qué ocurre esto? Porque desde el exterior no se puede acceder a un equipo de la red interna si éste no ha iniciado primero la conexión, a menos que hayamos redirigido los puertos usados por la aplicación.

¿Entonces por qué Teamviewer o Skype funciona bien sin abrir puertos?

Porque usan lo denominado NAT transversal, usan un equipo auxiliar para conectar ambos equipos y así "saltarse" la NAT de ambos participantes.

Hasta aquí hemos llegado con este artículo, os esperamos en los siguientes !!


Fuente: ADSLZONE

besos  :-*

muy interesante, cuando vi todos estos temas de redes, pensé que estabas aprendiendo redes :P

se agradece la contribución.-

saludos!

eso solucionaria muchos dolores de cabeza a la hora de confeccionar un troyano, en mi parte sigo con el dolor de cabeza  ;D XD
y si pudiera hacer que mi RAT usara el NAT transversal? estaria en la gloria?  :o

Cómo se puede hacer una conexión de NAT Transversal como la de teamviewer?
Quiero hacer esa conexión con una cámara ip de video vigilancia, es posible?

Saludos!!!

Bastante completa la explicación. Lo del NAT Transversal, como ya decían en el texto, usan un servidor externo para conectar ambos clientes. Si fuese una estructura cliente/servidor no habría problema ya que uno abre el socket de conexión y el otro se conecta, pero al ser los dos clientes, necesitan un punto medio que haga de servidor para ambos, y allí es donde se gestionan las conexiones. Eso es lo que he entendido...

"...y que en más de una ocasión nos ha producido dolores de cabeza, sobre todo a los gamers."
Y cuantos!!! Pero para eso, está GameRanger (aunque a veces sí requiere configurar algo en el router)

Precisamente eso, k113. Un servidor de por medio. Imaginemos un chat, el NAT Transversal sería esto. En lugar de ser un servidor y un cliente, que se conectan diréctamente entre sí. Serían dos clientes, con un servidor (web, por ejemplo) con el que ambos clientes se comunican. Así, se elimina cualquier configuración por parte del usuario...
Visita mi blog: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
"...y que en más de una ocasión nos ha producido dolores de cabeza, sobre todo a los gamers."
Y cuantos!!! Pero para eso, está GameRanger (aunque a veces sí requiere configurar algo en el router)

Precisamente eso, k113. Un servidor de por medio. Imaginemos un chat, el NAT Transversal sería esto. En lugar de ser un servidor y un cliente, que se conectan diréctamente entre sí. Serían dos clientes, con un servidor (web, por ejemplo) con el que ambos clientes se comunican. Así, se elimina cualquier configuración por parte del usuario...
Estan hablando de una vpn :p
no es asi?
El conocimiento es libre...
La información no lo es xD

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Estan hablando de una vpn :p
no es asi?

Mmmh no, la vpn es un servicio cliente/servidor.

Una técnica que me funciono es: TCP o UDP hole punshing, con la herramienta Netcat.
También usando la herramienta "autossh" y un servidor intermedio al que se conectan los 2 clientes.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Estan hablando de una vpn :p
no es asi?

Mmmh no, la vpn es un servicio cliente/servidor.
es que como dices okupar un servidor web o uns ervidor intermedio, termina siendo una vpn :p o ahcer tunneling pero igual necesitas un servidor que este abierto al mundo de lo contrario es imposible saltartelo amenos ke hagas redirecciones en cada nodo de la nat :3
El conocimiento es libre...
La información no lo es xD

Lo del NAT Transversal, tengo entendido que se habilitaba o deshabilitaba al realizar conexiones VPN con IPSec, es decir, habilitamos cuando nuestro dispositivo o servidor VPN está detrás de equipo que realiza el NAT y deshabilitamos cuando el dispositivo que realizará la VPN es el que da la cara a Internet. No me quedo claro los de las conexiones del P2P respecto al nat transversal, ya que para estas conexiones P2P, existe un un dispositivo o equipo intermediario (proxy) para que fluya la comunicacion entre ambos puntos PUBLICOS.

Saludos