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.