nat

9
Uso de NAT con Routers Cisco NAT. PRESENTACION NAT (Network Address Translator) es una función de los enrutadores que representa una respuesta a algunos problemas que presenta Internet (escasez de direcciones, problemas de seguridad y complejidad del encaminamiento o routing), derivados de los peculiares origenes de la Red. En este artículo abordaremos en una primera parte las razones que hicieron necesario el desarrollo del mecanismo NAT para terminar mostrando como se usa en redes basadas en tecnología Cisco. I. NAT. PRINCIPALES MOTIVACIONES. I.a.- REMEDIO FRENTE A LA ESCASEZ DE DIRECCIONES Las máquinas que se conectan a Internet se identifican por medio de un número (denominado dirección IP, de Internet Protocol). Aunque las direcciones IP tienen una longitud de 32 bits (lo que permite en principio identificar hasta 4,294,967,296 máquinas distintas) la forma de repartir esas direcciones agrupándolas en redes de distintas clases, la generosidad inicial en el reparto así como el éxito comercial e imprevisto de Internet ha provocado un progresivo agotamiento del espacio de direcciones disponible. Cuando Internet fue diseñado no se pensó que pudiera crecer de una forma tan explosiva (el uso previsto era militar y científico, y no comercial). El abaratamiento de los sistemas informáticos y de las telecomunicaciones así como la simplificación de su uso ha terminado acercando la red Internet a un gran público, y los proveedores de servicios de red han tenido que desarrollar mecanismos para responder a la demanda creada. La solución obvia, aumentar la longitud de las direcciones, ya se está llevando a cabo: está en marcha la implantación de la versión 6 del protocolo IP (IPv6) que utiliza direcciones de 128 bits. Esta versión también ha previsto mecanismos más racionales de reparto del nuevo espacio de direcciones. No obstante llevará años migrar la infraestructura actual de Internet a IPv6.

Upload: 1-2d

Post on 19-Dec-2014

315 views

Category:

Education


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Nat

Uso de NAT con Routers Cisco

NAT. PRESENTACION

NAT (Network Address Translator) es una función de los enrutadores que representa una respuesta a algunos problemas que presenta Internet (escasez de direcciones, problemas de seguridad y complejidad del encaminamiento o routing), derivados de los peculiares origenes de la Red.

En este artículo abordaremos en una primera parte las razones que hicieron necesario el desarrollo del mecanismo NAT para terminar mostrando como se usa en redes basadas en tecnología Cisco.

I. NAT. PRINCIPALES MOTIVACIONES.

I.a.- REMEDIO FRENTE A LA ESCASEZ DE DIRECCIONES

Las máquinas que se conectan a Internet se identifican por medio de un número (denominado dirección IP, de Internet Protocol). Aunque las direcciones IP tienen una longitud de 32 bits (lo que permite en principio identificar hasta 4,294,967,296 máquinas distintas) la forma de repartir esas direcciones agrupándolas en redes de distintas clases, la generosidad inicial en el reparto así como el éxito comercial e imprevisto de Internet ha provocado un progresivo agotamiento del espacio de direcciones disponible.

Cuando Internet fue diseñado no se pensó que pudiera crecer de una forma tan explosiva (el uso previsto era militar y científico, y no comercial). El abaratamiento de los sistemas informáticos y de las telecomunicaciones así como la simplificación de su uso ha terminado acercando la red Internet a un gran público, y los proveedores de servicios de red han tenido que desarrollar mecanismos para responder a la demanda creada.

La solución obvia, aumentar la longitud de las direcciones, ya se está llevando a cabo: está en marcha la implantación de la versión 6 del protocolo IP (IPv6) que utiliza direcciones de 128 bits. Esta versión también ha previsto mecanismos más racionales de reparto del nuevo espacio de direcciones. No obstante llevará años migrar la infraestructura actual de Internet a IPv6.

Mientras tanto NAT (Network Address Translator) ha representado una magnífica solución temporal al problema de agotamiento de las direcciones, al permitir que múltiples usuarios se conecten a la red compatiendo una única dirección IP. Esta dirección en muchos casos es además 'dinámica', esto es, se trata de una dirección que forma parte de un conjunto (pool) más amplio propiedad del ISP (Internet Service Provider, o Proveedor de Servicios de Internet), que es 'alquilada' temporalmente al usuario, permitiendo una reutilización de este preciado recurso tan pronto como es liberado.

Como los sistemas de los usuarios finales siguen necesitando tener una dirección única que los identifique pueden usar en sus redes locales direcciones denominadas de uso privado descritas en el RFC 1918 (Address Allocation for Private Internets), que especifica que las redes 10.0.0.0 - 10.255.255.255, 172.16.0.0 - 172.31.255.255 y 192.168.0.0 - 192.168.255.255 no son encaminadas por los routers en la Red, de forma que pueden ser usadas sin conflicto por múltiples usuarios en distintos sitios. A la hora de salir a Internet el router NAT se encargará de hacer las traducciones necesarias para que los 'diálogos' con el exterior de las máquinas con direcciones RFC 1918 parezcan tener por origen la IP asignada por el ISP (de espacio público,

Page 2: Nat

enrutable). De cara al exterior la red del usuario se presenta como una única máquina.

 

I.b.- SIMPLIFICACIÓN DE LA GESTION DE REDES

Otra consecuencia derivada del crecimiento de Internet es el aumento del tamaño de las tablas de rutas necesarias para el encaminamiento (routing) de los paquetes en la Red. Para que los paquetes viajen hasta las máquinas destino los enrutadores deben poseer rutas hacia los destinos. Algunos de los enrutadores del núcleo de Internet poseen tablas de rutas de enorme tamaño. El uso de NAT ha frenado el crecimiento de estas tablas.

Al hablar de la administración de redes hay que mencionar una importante ventaja de NAT, al permitir migrar redes de forma transparente a los usuarios finales. Esto es especialmente útil cuando hay que unir dos redes que comparten el mismo plan de numeración (redes superpuestas u "overlaping networks"). El uso de redes de espacio RFC 1918 hace que estos solapamientos ocurran de forma frecuente en las fusiones de empresas.

I.c.- MEJORA DE LA SEGURIDAD

Internet presenta una serie de problemas de seguridad que han sido estudiados en diversas ocasiones (cómo en "Security problems in the TCP/IP protocol suite", Bellovin). Estos problemas pueden sorprender si consideramos que los orígenes de Internet son claramente militares (la red ARPA), pero se explican teniendo en cuenta el carácter experimental de sus inicios, el énfasis en la funcinalidad por encima de otros criterios, el entorno académico donde se desarrollaron los protocolos fundamentales que componen la pila de protocolos TCP/IP, etc... Tampoco los principales sistemas operativos han sido desarrollados teniendo la seguridad como principal criterio de diseño.

Hemos visto en el apartado anterior como por medio de NAT y el uso de direcciones de uso privado la red del usuario se presenta de cara al exterior como una única máquina. Al hacer pasar las comunicaciones por un punto común (el router NAT) se puede concentrar una parte importante del esfuerzo de seguridad en dicho punto. Desde el exterior no será posible establecer comunicación con máquinas de la red local si estas no han iniciado la conversación (el router NAT no sabría a qué máquina interna remitir los paquetes del exterior). Por supuesto que es posible definir traducciones estáticas para ciertos servicios que necesitan ser identificados con claridad, tales como servicios Web, FTP, etc... No obstante la combinación de NAT con mecanismos de seguridad tales como listas de acceso permiten ejercer un mayor control en el uso de estos servicios.

Hay que tener en cuenta que el origen de NAT está en la escasez de direcciones IPv4 y no en la seguridad. Recientes avances ("Counting NATed Host", Bellovin) muestran técnicas que permiten identificar las máquinas que están detrás de un router NAT.

 

Page 3: Nat

II. CONFIGURACION DE NAT EN ENTORNOS CISCO

II.a.- DIRECCIONES NAT

A la hora de configurar la traducción de direcciones Cisco distingue cuatro tipos de direcciones:

Inside local address (interna local): la dirección IP asiganada a una máquina concreta de la red interna. Generalmente se trata de una dirección de espacio reservado para uso privado (RFC 1597).

Inside global address (interna global): la dirección IP que representa en el exterior una o más direcciones internas locales (inside local address). Suelen ser direcciones IP públicas (enrutables) asignadas por un ISP.

Outside local address (externa local): la dirección IP de una máquina externa tal como se ve desde la red interna. No tiene por que ser una dirección IP pública, 'legal'.

Outside global address (externa global): la dirección IP de una máquina externa tal como es asignada por el dueño de dicha máquina. Esta IP es de espacio público.

Para eliminar ambigüedad definiremos las redes internas como aquellas conectadas a las interfaces del router NAT definidas como "inside" (por medio de la órden "ip nat inside"). De forma similar denominaremos redes externas a las que conectan con el router NAT por las interfaces definidas como "outside" (por medio de la órden "ip nat outside"). En función de a qué interfaces se conectan, las redes serán internas o externas a efectos del NAT.

II.b.- FUNCIONAMIENTO DE NAT

Los paquetes originados en la parte interna de la red tienen una "inside local address" como origen y una "outside local address" como destino mientras el paquete viaja por la parte interna de la red. Cuando el paquete es conmutado a la red externa el origen del paquete es traducido a la "inside global address" y el destino conocido como "outside global address".

Otra forma de verlo: cuando el paquete viene de la parte externa de la red su dirección origen  será la "outside global address" y el destino será la "inside global address". Pero cuando el paquete atraviese el router NAT y entre en la red interna el origen habrá sido traducido por la "outside local address" y su destino como "inside local address."

El encaminamiento (routing) de los paquetes en un router NAT tiene lugar antes de la traducción cuando esta es de dentro a fuera (Inside-to-outside) y tiene lugar después cuando la traducción es de fuera a dentro (Outside-to-inside).

II.c.- NAT ESTATICO

II.c.1.- NAT INSIDE SOURCE

En este tipo de NAT un paquete con origen ip_local al atravesar una interfaz definida como inside cambiará dicha ip origen por la ip_global. Igualmente, y para que todo funcione correctamente, cuando un paquete con destino ip_global llegue a una interfaz definida como outside será cambiado a destino ip_local.

Page 4: Nat

La forma general de la instrucción que permite definir este mapeo es

ip nat inside source static ip_local ip_global

En el ejemplo siguiente las máquinas 10.0.0.1 a 10.0.0.4 conectadas a la red local (ethernet) serán vistas desde el exterior (por la interfaz serie) cómo 9.0.0.1 a 9.0.0.4

ip nat inside source static 10.0.0.1 9.0.0.1ip nat inside source static 10.0.0.2 9.0.0.2ip nat inside source static 10.0.0.3 9.0.0.3ip nat inside source static 10.0.0.4 9.0.0.4

interface ethernet 0ip nat inside

interface serial 0ip nat outside

Podemos consultar el estado de la tabla NAT por medio de la instrucción "show ip nat translation"

Sagan#sh ip nat transPro Inside global Inside local Outside local Outside global--- 9.0.0.1 10.0.0.1 --- ------ 9.0.0.2 10.0.0.2 --- ------ 9.0.0.3 10.0.0.3 --- ------ 9.0.0.4 10.0.0.4 --- ---

II.c.2.- NAT OUTSIDE SOURCE

En este caso cuando el router recibe un paquete con origen ip_global en su interfaz outside dicha dirección es cambiada por la ip_local. De la misma forma, cuando un paquete con destino ip_local atraviesa una interfaz definida como inside será trasformado para que su destino sea la ip_global

La forma general de la instrucción que permite definir este mapeo es

ip nat outside source static ip_global ip_local

En el siguiente ejemplo el dispositivo 9.0.0.4 es conocido en la red local local como 10.0.0.4

ip nat outside source static 9.0.0.4 10.0.0.4

interface serial 0ip nat outside

interface ethernet 0ip nat inside

Podemos comprobar la traducción con

Page 5: Nat

Sagan#sh ip nat transPro Inside global Inside local Outside local Outside global--- --- --- 10.0.0.4 9.0.0.4

II.c.3 RESUMEN DEL NAT ESTATICO

Una forma simplificada de considerar los puntos anteriores en la práctica consiste en estudiar las instrucciones de traducción "ip nat inside|outside source|destination static"

inside|outside hace referencia a que interfaz debe atravesar el paquete (de qué red viene).

source|destination hace referencia al campo del paquete que será traducido (nuevo origen|destino)

Así:

"ip nat inside source" cambia el origen de los paquetes (que cumplen el NAT, ojo, que para el resto el NAT es trasparente) que vienen por la interfaz inside (y el destino de los que entran por la interfaz outside y cumplen el NAT)

"ip nat inside destination" cambia el destino de los paquetes (que cumplen el NAT) que vienen por la interfaz inside (y el origen de los que entran por la interfaz outside y cumplen el NAT)

"ip nat outside source" cambia el origen de los paquetes que vienen por la interfaz definida como outside (y cumplen el NAT).

II.d.- NAT DINAMICO (muy provisional)

II.d.1 Configuración

Para empezar creamos un “fondo” (pool) de direcciones. Usamos listas de acceso para especificar las direcciones internas y la orden “ip nat pool” seguida del nombre del "pool" para enumerar el rango de direcciones externas:

access-list 10 permit 10.0.0.0 0.255.255.255ip nat pool CONVERSION 9.0.0.2 9.0.0.5 netmask 255.0.0.0

Conectamos ambos dominios de direcciones con la orden “ip nat inside|outside source|destination”, pero en esta ocasión especificaremos que utilice el "pool" definido anteriomente:

ip nat inside source list 10 pool CONVERSION

Aplicamos la conversión como antes:

interface Ethernet0ip nat inside!interface Serial0ip nat outside

II.d.2 Sobrecarga (Overload)

Page 6: Nat

Se configura de forma similar pero añadiendo la palabra clave "overload"

ip nat inside source list 10 pool CONVERSION overload

Podemos hacer que el enrutador reconstruya la tabla de traducciones con la orden “clear ip nat translation *”. Limpiar la tabla NAT es una buena medida inicial cuando se reportan problemas con este mecanismo.

Por medio de la instrucción “sh ip nat statistics” podemos examinar las estadísticas el funcionamiento de NAT: aciertos (hits), fallos (missess), traducciones expiradas (expired)...

Sagan#sh ip nat statisticsTotal active translations: 4 (0 static, 4 dynamic; 0 extended)Outside interfaces: Serial0Inside interfaces: Ethernet0Hits: 20 Misses: 0Expired translations: 0Dynamic mappings:-- Inside Sourceaccess-list 10 pool CONVERSION refcount 2pool CONVERSION: netmask 255.0.0.0start 10.20.5.2 end 10.20.5.5type generic, total addresses 4, allocated 4 (100%), misses 0

II.d.3.- NAT INSIDE DESTINATION (provisional)

En este caso cuando el router recibe un paquete con destino ip_global en su interfaz inside dicha dirección es cambiada por la ip_local. De la misma forma, cuando un paquete con origen ip_global atraviesa una interfaz definida como outside será trasformado para que su origen sea la ip_local.

La forma general de la instrucción que permite definir este mapeo es

ip nat inside destination list access-list-number pool name

REFERENCIAS

La descripción original de NAT fué hecha en mayo de 1994 el RFC 1631 "The IP Network Address Translator (NAT)". Una revisión actualizada de este documento aparece en el RFC 3022 "Traditional IP Network Address Translator (Traditional NAT)"

El protocolo IPv6 (también conocido como IPng, de Next Generation) está descrito en el RFC 1883 "Internet Protocol, Version 6 (IPv6)"

Las direcciones reservadas por IANA para uso privado fueron definidas en el RFC 1918 "Address Allocation for Private Internets".

Los problemas de seguridad de TCP/IP han sido estudiados en muchas ocaciones. Un clásico es "Security problems in the TCP/IP protocol suite", S. M. Bellovin, AT&T Labs Research.