Para aquellos que no lo sepan, la estructura de la red de mi casa es algo “complicada”. Hay tres subredes, una para mi esquina friki, otra para el wifi y otra que es una DMZ.
La subred del wifi y la de la esquina friki están detrás del servidor encrucijada, que es el que provee de acceso a internet en ambas redes, con sus cortafuegos, dns y demás. En el caso de la red wifi, hay un punto de acceso que es el que asigna las ips a lo que se conecte por wifi (actualmente un pc fijo de la planta alta y n portátiles). El AP es un linksys parcheado con el HyperWRT para poder aumentar la potencia de la señal a más del 50% y que llegue bien a las otras plantas.
El problema es que cuando se conectan los pcs por wifi, el ap les sirve la información de dhcpd, que les asigna la ip del rango correcto, pero les da como puerta de enlace la dirección del ap, que no tiene conexión por si mismo a internet, ya que es Encrucijada el que se la da. En realidad, la puerta de enlace de los pcs que se conectan por el wifi debe de ser la dirección de encrucijada, y no la del AP. Cuando intento cambiarlo usando las opciones de la interfaz web, veo que no existe opción para cambiar eso.
La solución fue lanzar el demonio de telnet del HyperWRT y entrar en la shell del ap:
telnet 192.168.1.1
Una vez allí, localicé el archivo udhcpd.conf, que contiene la configuración del servidor de dhcpd que usa el ap
# cd /tmp
Como en el busybox (el linux que tiene el ap) no hay editor, hay que modificar los archivos a pelo con el sed
# sed 's/option router 192\.168\.1\.1/ \
option router 192.168.1.100/' udhcpd.conf > udhcpd2.conf
Ahora hay que reiniciar el servidor de dhcpd cargando el nuevo archivo de configuración
# ps au
# kill $pidDelUdhcpd
# udhcpd udhcpd2.conf &
Cuidado, porque estos cambios se perderán cuando se reinicie el ap, todavía tengo que ver como hacerlos permanentes, tal vez editando uno de los scripts de arranque, pero por ahora me vale como workaround.
Antes de cerrar, no olvidar parar el demonio de telnet desde la propia interfaz web, ¡porque si no cualquiera podría entrar a tocar el router!.