Router «chupachups» en GNU/Linux
Un “router chupachups” (más conocido como router on a stick) es una máquina que ruta tráfico entre dos o más redes que coexisten en la misma red física. Eso se consigue normalmente por medio de VLANes (aunque éste no es el caso). Es decir, es un router con una única interfaz de red.
Introducción
La intención es compartir una conexión a internet a través de un modem con conexión Ethernet. Para ello voy a utilizar un switch al que conecto:
- El modem de ONO. Sólo permite salir a Internet al primer PC que le pida IP por DHCP.
- Un PC antiguo que tiene una única tarjeta Ethernet (éste va a hacer de router)
- Los PCs y portátiles con los que voy a compartir la conexión.
Configuración de la interfaz de red
En la receta Compartir la conexión a Internet (y algo más) con GNU/Linux, se utilizaban dos interfaces de red Ethernet: eth0 para la conexión a Internet y eth1 para la red local.
En el caso que nos ocupa, voy a substituir eth1 por un interfaz virtual de eth0 de modo que la mayoría de lo que se cuenta en la citada receta es válido. Sólo voy a poner aquí las diferencias.
El fichero /etc/network/interfaces
queda tal que:
DNS y DHCP
dnsmasq tiene ciertas limitaciones en lo referente a interfaces virtuales, así que el fichero /etc/dhsmasq.conf
debe incluir únicamente estas modificaciones:
Es decir, tendrás DNS y DHCP en las dos interfaces. Como eso no es deseable ni conveniente, puedes cerrar los puertos correspondientes con las siguientes reglas “iptables”. No olvides echar un vistazo a nuestra receta La enésima receta de iptables.
Limitaciones
En el caso del modem de ONO, es indispensable que el router sea el primer PC de la red en pedir IP, puesto que si algún otro se le adelanta, únicamente ése tendrá acceso a Internet a través del modem, y el router quedará sin servicio. Moraleja: Enciende el router antes que los demás PCs de tu red.