Cap�tulo 11. Enmascaramiento IP yTraducci�n de Direcciones de Red

Tabla de contenidos
11.1. Efectos Laterales y Beneficios Accesorios
11.2. Configuraci�n del N�cleopara enmascaramiento IP
11.3. Configuraci�n del enmascaramiento IP
11.4. Manipulaci�n del Servicio de Nombres
11.5. M�s sobre la traducci�n de direcciones de red

No hace falta tener una memoria excelente para recordar los d�as en los que s�lo las grandes compa��as se pod�an permitir disponer de un cierto n�mero de m�quinas conectadas por una red local. Frente a aquello, hoy los precios de la tecnolog�a de red han bajado y bajado hasta producir dos consecuencias: La primera, que las redes locales sean algo com�n, presentes incluso en entornos dom�sticos. Es seguro que muchos de los lectores, usuarios de GNU/Linux, tendr�n en su casa dos o m�s computadoras conectadas por alg�n tipo de ethernet. La segunda, que los recursos de red, y de forma especial las direcciones IP, hayan llegado a ser algo escasos y, aunque no est�n lejanos los tiempos en que eran gratuitos, sean ahora objeto de compraventa.

La mayor parte de la gente que disponga de una LAN desear� tambi�n disfrutar de una conexi�n a Internet que todas las m�quinas de su red puedan utilizar al mismo tiempo. Las reglas del encaminamiento IP son muy estrictas respecto a la forma de manejar esta situaci�n. Las soluciones tradicionales a este problema hubieran pasado por solicitar un conjunto de direcciones IP, probablemente un rango de clase C, dar a cada m�quina de la LAN una direcci�n del rango asignado, y utilizar un entutador para conectar la LAN a Internet.

En el actual escenario de una Internet mercantilizada, esa soluci�n saldr�a bastante cara. En primer lugar habr�a que pagar por el rango de direcciones asignado, en segundo lugar habr�a que pagar con toda probabilidad al Proveedor de Servicios de Internet (ISP) por el privilegio de disponer de una ruta hacia la red local en sus m�quinas, de tal forma que el resto de Internet supiera c�mo llegar a ellas. Esto puede sonar posible para algunas empresas, pero en una instalaci�n dom�stica los costes no estar�an justificados.

Afortunadamente GNU/Linux proporciona una soluci�n al problema, soluci�n que utiliza un componente de un grupo de funcionalidades avanzadas de red llamadas en conjunto Traducci�n de Direcciones de Red (NAT). NAT es un conjunto de procedimientos para modificar las direcciones IP contenidas en las cabeceras de los datagramas IP mientras �stos viajan (al vuelo). Puede sonar extra�o, pero mostraremos que se trata de la soluci�n ideal al problema —real para muchos— que acabamos de plantear. 'IP masquerade' es el nombre que recibe un tipo de traducci�n de direcciones de red que permite que todas las m�quinas de una red privada utilicen Internet contando con una �nica conexi�n (y una �nica direcci�n IP).

El enmascaramiento IP (en ingl�s �IP masquerading�) permite utilizar un rango de direcciones privadas (reservadas) en la red local y que el encaminador GNU/Linux se encargue de hacer al vuelo ciertas traducciones de direcciones IP y puertos. Cuando le llega un datagrama IP de alguna m�quina de la red local, se fija en el protocolo de nivel superior encapsulado en el mismo (�UDP�, �TCP�, �ICMP�, etc...) y modifica el datagrama para que parezca que fue generado por el propio encaminador (y recuerda qu� ha sido modificado). A continuaci�n saca el datagrama a Internet donde aparece generado por la �nica direcci�n IP p�blica del encaminador. Cuando la m�quina destino recibe el datagrama cree que se ha originado en la m�quina GNU/Linux, y responde a su direcci�n de Internet. Cuando el encaminador GNU/Linux recibe un datagrama en su interfaz de red conectada a Internet, busca en su tabla de conexiones enmascaradas en curso para ver si el datagrama pertenece a alguna m�quina de la LAN y, si es as�, deshace la traducci�n que hizo en el primer datagrama y reenv�a este datagrama de respuesta a la m�quina local.

En Figura 11-1 aparece un ejemplo sencillo.

Figura 11-1. Un escenario de enmascaramiento IP t�pico

Tenemos una peque�a red ethernet en la que utilizamos uno de los rangos de direcciones reservadas. La red dispone de un encaminador con enmascaramiento, una m�quina GNU/Linux, por supuesto, que proporciona acceso a Internet. Una de las m�quinas de la red (192.168.1.3) desea establecer una conexi�n con el host remoto 209.1.106.178 en el puerto 8888. El equipo encamina su datagrama por el encaminador con enmascaramiento, que identifica la petici�n de conexi�n como requiriente de los servicios de enmascaramiento. El encaminador entonces acepta el datagrama y reserva un n�mero de puerto (1035) para este menester, sustituye la direcci�n IP y n�mero de puerto de la m�quina origen del datagrama por los suyos propios, y transmite el datagrama al host destino. El host destino cree que ha recibido una petici�n de conexi�n de la m�quina GNU/Linux enmascaradora, y genera un datagrama de respuesta. La m�quina enmascaradora, al recibir ese datagrama, halla la asociaci�n en su tabla de enmascaramiento y deshace la sustituci�n que llev� a cabo en el primer datagrama. Entonces transmite el datagrama de respuesta a la m�quina origen.

La m�quina local cree que se est� comunicando directamente con el host remoto. El host remoto no sabe nada de la existencia de la m�quina local y cree que ha establecido una conexi�n con la m�quina GNU/Linux enmascaradora. La m�quina GNU/Linux enmascaradora sabe que las otras dos m�quinas est�n hablando entre s� y en qu� puertos, y realiza las traducciones de direcciones y puertos necesarias para que la comunicaci�n tenga lugar.

Todo lo anterior puede parecer un poco confuso, y puede que lo sea, pero funciona y es verdadermente simple de poner a punto. As� que no se preocupe si a�n no comprende todos los detalles.