¿Qué
es NAT?
La Traducción de Direcciones de Red, o NAT (Network Address
Translation), es un sistema que se utiliza para asignar una red completa (o
varias redes) a una sola dirección IP. NAT es necesario cuando la cantidad de
direcciones IP que nos haya asignado nuestro proveedor de Internet sea inferior
a la cantidad de ordenadores que queramos que accedan a Internet. NAT se
describe en el RFC 1631, "The IP Network Address Translator
(NAT)".
NAT nos permite aprovechar los bloques de direcciones reservadas que se
describen en el RFC 1918, "Address Allocation for Private
Internets". Generalmente, una red interna se suele configurar para que use
uno o más de estos bloques de red. Estos bloques son:
10.0.0.0/8 (10.0.0.0 - 10.255.255.255)
172.16.0.0/12 (172.16.0.0 - 172.31.255.255)
192.168.0.0/16 (192.168.0.0 - 192.168.255.255)
Un sistema OpenBSD configurado para NAT tendrá como mínimo dos
adaptadoras de red, una para Internet y la otra para la red interna. NAT se encargará
de traducir los requerimientos desde la red interna, de modo que parezca que
todos provienen del sistema OpenBSD en el que se encuentra configurado NAT.
Cómo funciona NAT
Cuando un cliente en la red interna contacta con un máquina en Internet,
envía paquetes IP destinados a esa máquina. Estos paquetes contienen toda la
información de direccionamiento necesaria para que puedan ser llevados a su
destino. NAT se encarga de estas piezas de información:
- Dirección IP de origen (por
ejemplo, 192.168.1.35)
- Puerto TCP o UDP de origen
(por ejemplo, 2132)
Cuando los paquetes pasan a través de la pasarela de NAT, son
modificados para que parezca que se han originado y provienen de la misma
pasarela de NAT. La pasarela de NAT registra los cambios que realiza en su
tabla de estado, para así poder: a) invertir los cambios en los paquetes
devueltos, y b) asegurarse de que los paquetes devueltos pasen a través del
cortafuegos y no sean bloqueados. Por ejemplo, podrían ocurrir los siguientes
cambios:
- IP de origen: sustituida con
la dirección externa de la pasarela (por ejemplo, 24.5.0.5)
- Puerto de origen: sustituido
con un puerto no en uso de la pasarela, escogido aleatoriamente (por
ejemplo, 53136)
Ni la máquina interna ni el anfitrión de Internet se dan cuenta de estos
pasos de traducción. Para la máquina interna, el sistema NAT es simplemente una
pasarela a Internet. Para el anfitrión de Internet, los paquetes parecen venir
directamente del sistema NAT; ni siquiera se da cuenta de que existe la
estación interna.
Cuando el anfitrión de Internet responde a los paquetes internos de la
máquina, los direcciona a la IP externa de la pasarela de NAT (24.5.0.5) y a su
puerto de traducción (53136). La pasarela de NAT busca entonces en la tabla de
estado para determinar si los paquetes de respuesta concuerdan con alguna
conexión establecida. Entonces encontrará una única concordancia basada en la
combinación de la dirección IP y el puerto, y esto indica a PF que los paquetes
pertenecen a una conexión iniciada por la máquina interna 192.168.1.35. Acto
seguido PF realiza los cambios opuestos a los que realizó para los paquetes
salientes, y reenvía los paquetes de respuesta a la máquina interna.
La traducción de paquetes ICMP ocurre de forma parecida, pero sin la
modificación del puerto de origen.
No hay comentarios:
Publicar un comentario