Professional Documents
Culture Documents
e-mail: carmaygi@alumni.uv.es
ndice de Contenidos:
1. Introduccin ............................................................................. 3 2. Razones de uso ......................................................................... 3
2.1. CIDR (Routing sin clases, superredes) ..................................... 4 2.2. Traduccin de direcciones IP .................................................... 4
1. Introduccin
Da a da internet experimenta un gran crecimiento, siendo particularmente espectacular el crecimiento en estos ltimos aos. Se estima que varios miles de nuevos hosts se conectan cada da. Este crecimiento esta ocasionando serios problemas debido a que Internet como infraestructura fue diseada hace muchos aos, cuando no exista tanta necesidad de conexin a la red. Como consecuencia de este crecimiento el protocolo de red IP v4 no puede ofrecer una nica direccin para cada uno de los nuevos hosts que van apareciendo. Adems, aunque existen todava direcciones IP disponibles, hay que tener en cuenta que las tablas de routing crecen en proporcin, aumentando la latencia de la red a la hora de procesar los rutados de las tablas, que tambin ocupan memoria. Una solucin al problema es el desarrollo de un nuevo protocolo conocido como IP v6. Este resuelve las limitaciones impuestas por IP v4, adems aade otras mejoras, pero quizs lo ms importante es que aumenta el espacio de direcciones. Sin embargo, migrar de IP v4 a IP v6 cuesta un poco (aos), por lo que primero debern convivir ambos protocolos. Hay otra solucin que es usar direcciones privadas dentro de la propia red en la que uno pertenece, de forma que no se necesita una conexin directa hacia el exterior. Esta se realiza a travs de proxies para cada aplicacin/protocolo que se vaya a usar, de tal forma que slo se necesita una direccin IP pblica para toda la red local que pasa a travs del proxy. Una solucin ms global es la que trataremos en este trabajo, consiste en convertir las direcciones privadas de una red local en direcciones IP globales (pblicas) cuando cruzan la frontera que separa la parte local de internet. Solamente los hosts que se comuniquen al exterior se le asignarn una direccin IP global (oficial), est asignacin la realizar el router NAT (Network Address Translator) de forma que traduce la direccin local en una direccin global vlida en la internet. Tericamente, la traduccin ser totalmente transparente en todas las aplicaciones. Hoy en da hay muchos pruductos disponibles que realizan NAT. Ms adelante describir algunos ejemplos de configuracin sobre Linux, Windows 2000 y los routershub ADSL, que resuelven estos problemas en gran parte.
2. Razones de uso
La traduccin a direcciones IP es algo que hoy en da es ms o menos nuevo, la tecnologa y velocidad de proceso de los routers o servidores hacen que se pueda implementar NAT de forma segura aunque no libre de algn problema que otro con ciertos protocolos que se intenta solucionar. NAT fue introducido en la dcada de los 90 como una solucin a corto plazo al corto espacio de direccionamiento y de forma complementaria a la tecnologa CIDR (Classless InterDomain Routing). Para saber de dnde surgi la idea del NAT tengo que introducir algunas tecnologas que han sido puestas con el fin de solventar el gran 3
problema de la escasez de direcciones IP y el gran tamao de las tablas de routing. Tres soluciones a tener en cuenta son CIDR, las direcciones IP privadas y NAT.
forma que estos hosts nicamente necesitarn una IP global. Esta tarea de forma automtica la puede realizar el router-NAT de forma que el router asigne una IP global dinmicamente a una conexin que salga al exterior. La desventajas a la asignacin de IPs dinmicas es que los hosts no pueden ser vistos desde fuera, lo cual tambin se puede considerar como una ventaja. El nmero de conexiones simultneas est limitado y el proceso puede llegar a no ser transparente ya que hay protocolos como FTP que transmiten su IP al otro host. Otra forma de hacer NAT es teniendo una direccin oficial IP (pblica) y usar esta direccin para todas las comunicaciones. Para permitir a ms de un host comunicarse a la vez con la misma IP tenemos que usar puertos TCP a nivel de transporte diferentes para cada conexin. El nmero de conexiones simultneas est limitado slo por el nmero de puertos disponibles para las conexiones salientes. Gran parte de estas ideas seguramente se irn al traste tan pronto est disponible el protocolo IP v6 y la migracin haya concluido. Pero, de todas formas, algunos aspectos puede que sobrevivan a largo plazo y CIDR puede que se encuentre de forma ms o menos parecida en IP v6.
3. Tcnicas de NAT
La traduccin de direcciones se puede hacer de forma esttica o dinmica. Si se opta de forma esttica, la asignacin de NAT-IPs se realiza de forma no ambigua, en cambio esto no sucede de forma dinmica. En NAT esttico un IP local siempre es traducida a la misma NAT-IP y ninguna otra IP local es traducida a la misma NAT-IP, mientras que NAT dinmico la direccin NAT-IP depende de varias condiciones segn el momento de la asignacin y puede ser completamente distinta para cada conexin. Para explicar la asignacin de direcciones dinmicas y estticas har referencia a dos variables: l: nmero de IPs que necesitan ser traducidas (IPs originales o locales) g: nmero de IPs disponibles para la traduccin (NAT-IPs o globales)
3.1. Estticas
Traduccin l : g l, g > 0 l=g (l, g N) En traducciones estticas podemos traducir entre redes IP que tienen el mismo tamao (contienen el mismo nmero de IPs). Un caso especial es cuando ambas redes contienen slo una IP, por ejemplo la mscara 255.255.255.255. Para este caso la estrategia de NAT a implementar es fcil, ya que el proceso de traduccin puede escribirse en una lnea que contenga la siguiente transformacin lgica: nueva_direccin = nueva_mscara OR (vieja_direccin AND (NOT mscara)) 5
Adems, no es necesario mantener ninguna informacin sobre el estado de las conexiones que van a ser traducidas, observando cada uno de los paquetes IP es suficiente. Las conexiones que vengan del exterior no representan ningn problema, slo que la IP es diferente a la que tenemos dentro de la red. Por lo tanto se puede decir que NAT esttico es completamente transparente. Ejemplo: Podemos decir al router NAT que nos traduzca todas las IPs de la red 172.26.0.0 con mscara 255.255.255.0 a IPs en la red 217.127.34.0 con la misma mscara. De esta forma la direccin 172.26.0.12 ser traducida a 217.127.34.12, y as con todas las direcciones que estn dentro de la red definida por la mscara.
3.2. Dinmicas
Traduccin l : g l>0 l g (l, g N) Para la traduccin dinmica de direcciones es necesario que el nmero de IPs a traducir no sea igual al nmero de IPs que pueden ser traducidas. Podran ser iguales, pero que por algn motivo no se quiera realizar un mapeo esttico. El nmero de hosts comunicados esta limitado normalmente por el nmero de NAT IPs disponibles. Si todas las NAT IPs estn siendo usadas entonces no se puede aceptar ms conexiones para ser traducidas, estas sern rechazadas por el router NAT (host inalcanzable). El NAT dinmico es mucho ms complejo que el esttico ya que nos obliga a mantener un seguimiento de los hosts que se comunican e incluso en ocasiones controlar conexiones que requieren mirar la parte de informacin TCP de los paquetes. Para el caso en que tenemos suficientes NAT IPs (l = g) tambin puede ser til hacer un NAT dinmico, de forma, que se use como una medida de seguridad, ya que es imposible que alguien del exterior de la red pueda conseguir una direccin IP til viendo las conexiones que van surgiendo, ya que desde la ltima vez que se conecto un host, puede haber cambiado su IP. Conexiones desde fuera son slo posibles cuando el host que debe ser alcanzado todava tiene una NAT-IP asignada, es decir, que an tiene una entrada en la tabla dinmica del router NAT. Ejemplo: Podemos decir el router NAT que traduzca todas las IPs en una red de clase B 147.156.0.0 a IPs de una clase C con mscara 255.255.255.0 A cada conexin de dentro a fuera se le asigna una direccin IP del montn de direcciones de clase C, siempre que no estn siendo utilizadas y hayan disponibles. Si se le mapea una direccin el host puede ser alcanzado va la IP que le ha sido asignada de forma temporal. 6
Hoy en da la gran ventaja del maquerade/NAPT es que slo se necesita una IP externa (oficial) y tener un acceso directo a internet por parte de toda una red local. Esto tambin es importante desde el punto de vista que tener una nueva direccin IP puede resultar caro.
4.2. Fragmentacin
La fragmentacin IP est relacionada con el problema de mantener la informacin de estado sobre conexiones TCP y UDP. En ocasiones hay que tomar la decisin de no slo traducir un paquete a nivel de direccin IP, sino tambin a nivel de direcciones (puertos) TCP/UDP. El problema lo tenemos si el paquete ha sido fragmentado, ya que el router NAT no puede saber el puerto excepto en el primer fragmento que contiene la cabecera TCP/UDP. Esto es un motivo por el cual debemos mantener informacin del estado de los fragmentos. Debemos guardar todos los datos del primer fragmento incluyendo si es 8
un puerto TCP o UDP, para saber a qu puerto van a ir los fragmentos que siguen. Hay que tener en cuenta que IP no garantiza un orden de llegada de los paquetes. Por lo que si nos llega un fragmento que no sea el primero, que contiene la informacin del puerto, entonces deberemos esperar a que llegue el primero para saber si tenemos que traducir el paquete o no. En estos casos ya no slo tenemos una traduccin IP, sino tambin tenemos unta traduccin de direcciones UDP/TCP (protocolos a nivel de transporte y no de red, un router a priori trabaja a nivel de red).
Este servicio puede ocasionar un gran problema. Una solucin es tener dos servicios DNS, uno con IPs internas a nuestra red para resolucin de direcciones internas y otro externa con NAT-IPs. Decir que las IPs resueltas por el servidor externo no deben formar parte del espacio de direcciones que pueda asignar un NAT dinmico. BOOTP: No tiene porque ser un problema en la mayora de ocasiones, ya que no es muy comn que este protocolo atraviese la frontera de una red con NAT. Protocolos de Routing (RIP, EGP,...): Los protocolos de routing representan un problema, donde la soluciones son: No usarlos, y usar slo rutado esttico. Usar una puerta de enlace a nivel de aplicacin Rescribir los paquetes.
10
A continuacin se nos abrir otra ventana como la de la figura 2, deberemos asegurarnos que tenemos todos los mdulos activados (y) para que funcione el protocolo TCP/IP y el NAT, obsrvese que para esto ltimo activamos el mdulo IP: fast network address translation .
Ahora slo resta, antes de compilar el ncleo, configurar el IP: Netfilter Configuration. Vase la figura 3; todas las opciones de NAT y masquerade tienen que estar activas (y) para que se carguen los mdulos una vez se compile el ncleo
11
Por ltimo compilamos el ncleo, con los nuevos mdulos elegidos, para ello ejecutaremos la siguiente secuencia de comandos: make dep make clean make bzImage Una vez compilado arrancaremos de nuevo el sistema asegurndonos as que las nuevas modificaciones se han tomado, y desde una terminal haremos: echo 1 > /proc/sys/net/ipv4/ip_forward de sta forma habilitamos a Linux a reencaminar trfico IP v4. Luego ejecutamos: iptables t nat A POSTROUTING o ppp0 j MASQUERADE con esto indicamos que aada en la tabla nat del ppp0 la regla de postrouting, y que cuando se cumpla esto se le aplique el masquerade, es decir, que todos los paquetes, sin entrar al PC que ejecuta el NAT tengan que ser reencaminados a ppp0 se les haga masquerade.
12
Accederemos a propiedades de nuestra conexin de acceso telefnico a redes, para ello podemos ir a Inicio Configuracin Conexiones de red y de acceso telefnico a redes, sobre el nombre de nuestra conexin pulsaremos el botn derecho del ratn y accederemos a propiedades. En propiedades elegimos la pestaa de Compartir y marcamos la casilla de Habilitar Conexin compartida a Internet, tal y como se ve en la figura 4:
Este ordenador ser el servidor de la conexin internet y ser el que acte como NAT, ahora falta configurar al resto de ordenadores de la red local para que puedan tener acceso al exterior. Para ello tendremos que agregar a cada cliente una puerta de enlace predeterminada al servidor NAT que acabamos de configurar en 192.168.0.1. Si los clientes corren bajo Windows 2000 accederemos a propiedades de la red local, podemos realizar las mismas acciones para acceder al acceso telefnico a redes pero esta vez elegimos la Conexin de rea local con el botn derecho del ratn. A continuacin elegimos Protocolo Internet (TCP/IP) y le damos a propiedades, se nos abrir una ventana como la de la figura 5:
14
Al estar configura ya una red local slo tendremos que aadir los campos Puerta de enlace predeterminada con la IP del PC con Windows 2000 que acta como NAT, forzosamente (cosas de Microsoft), tendr que ser la 192.168.0.1 (su IP). Para que funcione correctamente tendremos que aadir los servidores DNS que nos ofrezca nuestro ISP de internet (en la figura aparecen los de Terra ADSL). Toda esta configuracin hay que repetirla para todos los hosts de la red local. NAT acta en cierta manera como un proxy genrico, y no hace falta configurar ninguna opcin de proxy en ninguna de las aplicaciones.
15
El router ADSL es un dispositivo externo y configurable que acta como hub. A l se conectar nuestra red local a travs de la Ethernet por cable RJ-45. Telefnica actualmente suministra 4 entradas 10BASE-T para sus dispositivos ASDL, pero siempre se pueden conectar ms equipos haciendo una configuracin en cascada con otros hubs. Aqu el NAT ya no tienen porque hacerlo el sistema operativo, por lo tanto la configuracin en los host de nuestra red local es an ms sencilla. Para Windows 2000 se configura la red local de forma idntica para todos los hosts que la mostrada y explicada en la figura 5, ahora la puerta de enlace ser la direccin IP con la que se haya configurado el router, los DNS seguirn siendo los de tu ISP, mientras que las direcciones de nuestra red local ya no tienen que pertenecer forzosamente a la red 192.168.0.0. Tendr que ser una red privada, y el router tendr una IP de esa red privada que ser la utilizada como puerta de enlace. En Linux se configura fcilmente, a los hosts se le aadir como puerta de enlace la IP del router, ello se puede hacer ejecutando el comando: route add default gw ip_local_router luego aadir los DNS de nuestro ISP editando el fichero /etc/resolv.conf poniendo en una lnea la IP del DNS precedida de la palabra clave nameserver, pondremos tantas lneas como servidores DNS queramos poner. De esta forma los host de nuestra red local ya estn configurados, slo tenemos que ver que el router est bien configurado, que su IP local y global sean correctas, y que la opcin de NAP est activada. La configuracin del router suele ser sencilla y similar entre los distintos routers ADSL que existen en el mercado, adems podemos encontrar mucha documentacin en internet de cmo configurar determinados modelos. Como ejemplo, voy a mostrar cmo se puede configurar el NAT y NAPT para un router 3Com, concretamente el 3Com OfficeConnect Remote 812.
5.4. Configuracin del router ADSL 3Com Remote 812 para NAT y NAPT
Hay tres opciones de configuracin: Haciendo hyperterminal con el router enchufado al ordenador por el puerto serie. Haciendo un telnet a la IP del router dentro de la red local. Ejecutando un cliente web de la red local y haciendo un http://IP_del_router
Naturalmente hace falta un nombre de usuario y contrasea que ms tarde se deber modificar, ya que de fbrica salen todos con la misma autenticacin, para poder entrar en cualquiera de los modos de configuracin.
16
A continuacin mostrar cmo se puede configurar de la forma ms sencilla, a nivel de ejemplo, que seria usando la opcin de configuracin por web. Para ello abriremos nuestro navegador y entraremos en la IP de nuestro router por http, no importa que se use la IP local o la IP global, eso si, debemos estar dentro de la misma red local. Ejemplo: http://176.26.0.1 Lo primero que aparecer una ser una ventana pidindonos nuestro nombre de usuario y contrasea, una vez introducidas nos saldr el men de opciones del router tal y como muestra la figura 6:
A continuacin elegimos el enlace u opcin de configuracin en la parte izquierda de la pantalla. Nos saldr el men de configuracin, ver figura 7. Hay una gran diversidad de opciones y protocolos de configuracin, as como la posibilidad de configurar filtros.
17
A nosotros nos interesa configurar el NAT, por lo que nos situaremos encima del botn de Remote Site Profiles y lo pulsaremos, nos deber aparecer la conexin que tenemos a internet, pulsaremos el botn de Modify. Se nos cargar una pgina con una serie de parmetros que no nos interesan para NAT, por lo que cargaremos la siguiente pantalla dndole al botn de Next. No saldr la pantalla que muestra la figura 8:
18
La casilla de NAT deber estar activada para que funcione, adems tenemos la opcin de dar un host por defecto para resolver aquellas peticiones entrantes sobre un host determinado, es decir, sino hay configurado NAPT y no hay un host determinado si alguien hace un telnet o netmeeting desde fuera el host que se encargar de atender y establecer la conexin ser aquel que est por defecto, si no la conexin se establecer de forma aleatoria entre cualquier host de la red local que est escuchando el puerto por donde se pide la conexin, el resultado puede ser inesperado. Se puede introducir la opcin NAPT tanto para los protocolos TCP como UDP de forma que se pueden asignar de forma esttica puertos que provienen a la direccin IP del exterior a una determinada IP local y puerto local de nuestra red. Para ver un cmo se puede hacer NAPT pulsemos el botn TCP y modificamos uno de los puertos pulsado Modify, vemos la figura 9. Los puertos ya los haba configurado previamente.
19
Aqu todo lo que venga a nuestra direccin global en internet por el puerto 21, es decir, nos hagan un FTP, ser reencaminado al host de nuestra red privada 172.26.0.2 y adems le especificamos que sea por el puerto 21 del host, no tenemos porque enviar el paquete por el mismo puerto que nos viene, pero en este caso, para que sea ms sencilla la gestin del protocolo FTP usamos el mismo puerto. En la siguiente figura se muestran algunos de los puertos sobre los que se hace NAPT y han sido configurados como el caso anterior:
20
Esta configuracin lo que nos permite es que determinados servicios que vengan por los puertos 21, 23, 80 y 323, vayan dirigidos a determinados hosts locales especificando el puerto para cada IP local por donde quiere que se escuche. De esta manera, si nuestra red local es la 172.26.0.0, podemos tener puesto un servidor telnet sobre un host, por ejemplo el 172.26.0.2 por el puerto 23, un servidor web sobre otro host diferente, por ejemplo el 172.26.0.3, y por qu no, podemos cambiar el puerto 80 y que escuche por el 8080. Y por ltimo podemos configurar un host 172.26.0.4 para netmeeting que est en la entrada de una casa vigilando la puerta a travs de una cmara por el puerto 323, de esta forma cuando reciba desde la internet una peticin de netmeeting ser enviada a este host, y si tiene la opcin habilitada de aceptar llamadas automticamente y enviar vdeo podremos ver qu pasa a travs de la puerta de nuestra casa.
22