Guía corta acerca de cómo convertir una maquina con Linux en un router para una red local. Imaginemos que tenemos una maquina con Debian/Ubuntu instalado que tiene dos interfaces de red. Una de las interfaces está conectado a switch de nuestro LAN, la otra al router de nuestro proveedor de Internet.

Pasos para seguir:
1. Configuración de las interfaces de red
2. Activación de enrutamiento
3. Configuración de servicio NAT
4. Configuración de servicio DHCP
5. Configuración de servicio DNS de cache
Configuración de las interfaces de red
Antes de todo nos deshacemos de network-manager:
apt-get remove network-manager
A hora modificamos /etc/network/interfaces:
# The loopback network interface auto lo iface lo inet loopback # External auto eth1 iface eth1 inet dhcp # Internal auto eth0 iface eth0 inet static address 192.168.0.1 network 192.168.0.0 netmask 255.255.255.0 broadcast 192.168.0.255
Administración de Redes Linux | Router básico
2
Como podéis ver hemos configurado la interfaz de red interna (eth0) para que tenga una IP estática privada (192.168.0.1/24), y la interfaz externa para que obtenga su configuración de red mediante dhcp.
Para aplicar la configuración ejecutamos:
/etc/init.d/networking restart
Activación de enrutamiento
Para convertir nuestro Linux en un router tenemos que modificar el archivo /etc/sysctl.conf. Hay que añadir la línea:
net.ipv4.ip_forward = 1
Para aplicar la configuración ejecutamos:
sudo sysctl -p
Configuración de servicio NAT
NAT es un mecanismo inventado para solucionar problema de falta de direcciones IPv4. La maquina que hace NAT oculta todos los equipos de la red local, haciendo las peticiones a Internet en sus nombres.
Para configurar el servicio NAT en nuestra maquina con Linux añadimos dos reglas al firewall (iptables):
iptables -P FORWARD ACCEPT iptables –table nat -A POSTROUTING -o eth1 -j MASQUERADE
Para que estas reglas sobrevivan reboot, las tenemos que añadir también a /etc/rc.local
Configuración de servicio DHCP
El servicio DHCP sirve para la suministrar la configuración de red (IP, mascara, gateway, DNS) a los equipos de nuestra LAN. Para hacerlo hay que instalar un programa dnsmasq, que nos servirá para poner funcionando tanto el servicio DHCP como el DNS de cache.
apt-get install dnsmasq
La configuración es bastante simple. Tenéis que abrir el archivo /etc/dnsmasq.conf, vaciar su contenido y añadir estas líneas:
listen-address=192.168.0.1 cache-size=300 dhcp-range=192.168.0.4,192.168.0.20,24h
Administración de Redes Linux | Router básico
3
Especificamos la dirección IP en la que el programa va a escuchar las solicitudes DHCP y DNS, el tamaño máximo de cache y el rango de direcciones IPs dinámicas disponibles a los equipos de red local (dnsmasq es bastante inteligente para averiguar automáticamente el resto de los parámetros de configuración de red que tendrá que ir suministrando a los equipos de nuestra LAN).
Reiniciamos el programa:
sudo /etc/init.d/dnsmasq restart
Configuración de servicio DNS de cache
El servicio de DNS de cache hace la resolución de nombres de dominios a direcciones IP para los equipos de red local. Vamos a ponerlo funcionando con dnsmasq, el mismo programa que ya nos hace el DHCP.
En principio no nos hará falta tocar la configuración de dnsmasq. El programa cogerá la configuración necesaria acerca de los servidores DNS desde el archivo /etc/resolv.conf. Ahora bien, en el principio de articulo hemos dicho que nuestra interfaz de red externa (eth1) obtendrá su configuración de red mediante DHCP del router de proveedor de Internet. Esto se supone que el contenido de /etc/resolv.conf se modificara automáticamente después de cada reboot. Así que vamos a configurar el programa-cliente DHCP de nuestro router para que incluye la IP de nuestro router en el archivo /etc/resolv.conf cada vez que obtenga la configuración de red. Modificaremos el archivo /etc/dhcp3/dhclient.conf.
Allí habrá que buscar la linea:
#prepend domain-name-servers 127.0.0.1;
Y cambiarla por:
prepend domain-name-servers 192.168.0.1;
Hemos terminado la configuración. Para aplicarla ejecutamos el comando:
sudo /etc/init.d/networking restart