Вы находитесь на странице: 1из 4

Redireccionamiento usando el sistema de tablas NAT en redes de area local (LAN)

Conceptos previos
LAN Por Local Area Network o Red de Area Local, es una red de dimensiones pequeas como puede ser la red de un edificio chico o la red perteneciente a un determinado departamento dentro de una empresa. Ej: red casera WAN Por Wide Area Network o Red de Area Amplia, es una red de cobertura amplia que suele unir mas de una LAN, como puede ser la red de una empresa grande. Ej: Internet Trama Pedazo de informacion enviado a traves de un medio fisico (Cable coaxil, cable UTP, Fibra Optica), utilizando protocolos de capa 2 del modelo OSI. Que es NAT? NAT proviene de las siglas en ingles para Network Address Translation o como se diria en espaol ==> Traduccion de Direcciones de Red. Consiste en un sistema de tablas de mapeo de IPs y puertos (mas adelante explico bien como funciona). Que es un Router? Un router es un dispositivo que trabaja a nivel de capa 3 del modelo OSI (Open System Interconnection), el cual es capas de entender las tramas que le llegan para poder leer las direcciones IP que posee cada una y asi poder rutear cada trama a la correspondiente NIC (Network Interface Card, mas conocida como Placa de Red). El router posee interfaz WAN y LAN. Arquitectura Cliente - Servidor Una arquitectura referida como Cliente - Servidor se trata de una distribucion u operacion de dos o mas procesos, en los cuales uno hace de cliente (solicita operaciones o servicios) y el otro hace de servidor (proporciona servicios). El servidor es un programa que "escucha" por conecciones en un puerto dado de la estacion en la que esta ejecutando. El cliente es un programa o proceso, que puede ser tanto remoto como local (puede estar en otra estacion de trabajo o en la misma) que lo que hace es realizar una coneccion al puerto conocido del servidor donde este se encuentra escuchando las conecciones de los clientes, en busca de que el servidor satisfaga una determinada operacion necesaria para el cliente.

Funcionamiento de un Router
Voy a explicar el funcionamiento basico de un router para su uso como gateway entre dos redes (como puede ser una LAN e internet), no voy a explicar el caso en que el router se usa como enrutamiento de nodo intermedio porque no viene al caso y es bastante mas complicada la cosa. Supongo que muchos de Uds se habran preguntado alguna vez como hace un router para saber hacia que computadora debe mandar cada trama que le llega

(por lo menos yo si xD ). En la configuracion mas comun, el router hace de gateway entre una red LAN y una WAN (la de mas comun conocimiento es Internet).

En esta figura podemos ver la configuracion de la que les hablaba. Un router R se encuntra entre una red WAN (Internet, NIC roja) y dos redes LAN (NICs verdes). Cada LAN posee dos estaciones (hosts A y B, y hosts C y D). Cabe aclarar que las IPs locales no son visibles desde afuera de la red LAN, desde afuera lo que se ve es la IP de WAN. Cada vez que una aplicacion de una de las redes LAN quiere acceder afuera de la red, el router emplea lo que un sistema de tablas llamado NAT. Lo que hace es lo siguiente: Suponganse que la estacion A (que posee una IP = 192.168.1.20) tiene una aplicacion que se quiere conectar al puerto 2000 de la IP 200.24.150.4 usando el puerto 1500. O sea, tenemos 192.168.1.20:1500 conectar a 200.24.150.4:2000 El router lo que hace es armar una regla NAT como sigue

La tabla muestra el mapeo que hace el router. Las reglas que el router inserta en la tabla son reglas dinamicas, esto quiere decir que en cuanto se la deja de usar desaparece. Primero el router al recibir la trama, se fija la IP y el puerto origen, el la IP y puerto destino. Busca dentro de la tabla si hay alguna regla para dichas combinaciones. En caso de encontrar una regla utiliza dicha regla. Si no encontrase ninguna regla, la crea, asignando las IPs y puertos en los campos correspondientes y eligiendo un puerto aleatoriamente de los que tiene libres en el momento asignandolo al campo Port Asignado. Lo siguiente que hace es, a la trama que recibio, cambia el campo IP Origen, que posee la IP 192.168.1.20 por lo IP WAN 24.232.78.168 y cambia el puerto origen por el puerto que el le asigno de valor xxxx en el ejemplo anterior. Una vez que hizo dichos cambios manda la trama. Entonces cuando el proceso que esta corriendo en la IP 200.24.150.4 y en el puerto 2000 reciba la trama, sabe que tiene que contestar a la IP publica que es la IP que el router cambio en la trama (IP 24.232.78.168) y al puerto que el router asigno (puerto xxxx). Cuando el router reciba la respuesta de la otra estacion revisara la tabla NAT buscando una regla que tenga como puerto asignado el xxxx, encontrara que ya hay una regla, se fijara cual es la IP Origen (IP 192.168.1.20) y a que puerto fue mapeada (Puerto 1500). Una vez hecho esto, ya sabe a que estacion pertenece la trama que le llego y por lo tanto la rutea hacia ella.

Una que termino de rutear la respuesta, elimina la regla de la tabla.

Ejemplos de problemas con redes locales, firewalls y routers


Ahora, supongamos que la estacion donde reside el servidor inesperadamente tuvo un problema y se cerro la aplicacion servidor. Que pasaria si un cliente se quiere conectar al puerto conocido del servidor? es logico pensar que la coneccion no se pueda realizar, asi es, lo mas probable es que nos devuelva algun mensaje del tipo: tiempo de espera agotado o que no se pudo encontrar el servidor. Esto se debe a que el servidor ya no se encuentra escuchando en el puerto conocido al que se intento conectar el cliente. Esta misma situacion es la que tenemos al tener una aplicacion detras de un firewall, router o dentro de una red local. Uds se preguntaran porque? veamos porque:

Lo que nos muestra la imagen de arriba, es una configuracion de una red local (LAN) con tres estaciones (SDF1, Antares, Cerbero); una estacion que hace exclusivamente de servidor de internet, router y firewall, que es el Gateway y finalmente un Hub de 8 puertos. Caso 1: Supongamos que el Gatway se trata de un simple firewall. Porque es esto un problema? un firewall es un dispositivo fisico o logico que tiene como objetivo proteger una red de intentos de entradas desde redes externas. Lo que hace un firewall es agarrar el rango de puertos que posee la estacion en la que trabaja y bloquear todo trafico que pase por el. Uno si quiere que una aplicacion circule hacia afuera de la red, debe explicitamente indicarle al firewall que dicho puerto debe dejarlo pasar en el sentido que sea necesario (hacia afuera, hacia adentro o ambos sentidos). Ahora si un cliente desde afuera de la red desea conectarse al puerto conocido del servidor, pero el firewall esta activo y tiene el puerto cerrado, cualquier coneccion que llegue a dicho puerto sera rechazada con algun mensaje del estilo de: coneccion rechazada o coneccion denegada.

Solucion: abrir los puertos del servidor en el firewall para permitirle el pasaje hacia y desde redes externas. De esta manera el firewall revisara su tabla, regla por regla, para verificar si la coneccion que llego al puerto puede pasar o debe ser bloqueada. Caso 2: Supongamos ahora el caso de que el gateway hace de router. El router, como explique mas arriba, usa tablas NAT para el ruteo de las tramas que le llegan. Pero que pasa si el router esta pasivo (no esta ruteando) porque no hay trafico alguno? su tabla NAT va a estar vacia, y si alguien quiere conectarse, no sabra que hacer con dicha coneccion porque en su tabla no hay ninguna regla que le diga a donde mapear la coneccion entrante. Solucion: crear reglas NAT estaticas para que el router sepa en cualquier momento, hacia donde debe rutear las conecciones entrantes para los puertos que necesitamos. Caso 3: Es una combinacion de los dos casos expuestos mas arriba. Solucion: aplicar las reglas NAT en combinacion con la apertura correspondiente de los puertos necesarios en el firewall.

Ejemplo para servidores de juegos:


Voy a tomar como ejemplo al Counter - Strike, un juego multiplayer muy conocido. El puerto del servidor de Counter - Strike por default es el 27015. Este es el puerto que hay que mapear en la tabla NAT eligiendo un puerto al azar para el Puerto Asignado del router. Suponiendo un servidor de CS en la estacion SDF1, tendriamos una regla como la siguiente:

Como se puede ver, la tabla es mas chica que la tabla que crea el router dinamicamente, esto se debe a que no se debe especificar la direccion IP y Puerto Destino, ya que no se sabe que direcciones IPs y puertos pueden llegar a querer conectarse al servidor. Segun el ejemplo de la tabla, tendriamos un servidor de CS en la estacion SDF1 corriendo en el puerto 27015 mapeado al puerto 5000 de la IP publica. Cuando alguien use un cliente para conectarse, debera saber nuestra IP publica y el puerto mapeado que estamos usando (para evitar esto, se puede mapear al mismo puerto, o sea mapear al puerto 27015, nomas que queria que viesen que no es necesario que el mapeo sea con el mismo puerto)> entonces cuando el cliente intente conectar a la IP publica (sigamos con la del otro ejemplo, IP 24.232.78.168) y al puerto 5000, el router revisara la tabla NAT en busca de alguna regla que establezca el mapeo para el puerto 5000 y encontrara que debe redirigir la coneccion a la IP 192.168.0.4 y al puerto 27015 que es donde se encuentra escuchando el servidor de CS.

Вам также может понравиться