-
Regenerar automáticamente la configuración LAN y WAN de OpenWrt
Si hemos modificado la configuración de red de OpenWrt hasta el punto de dejar las interfaces LAN y WAN mal configuradas, existe un comando interno muy útil que podemos utilizar para pedirle al propio OpenWrt que vuelva a generar su configuración base:
/bin/config_generate
Este comando resulta especialmente interesante en instalaciones de OpenWrt x86 con el sistema instalado sobre una partición ext4, donde comandos de restauración relacionados con JFFS2 u overlay no son necesariamente lo que buscamos. No estamos restaurando el router a valores de fábrica ni reinstalando OpenWrt. Estamos haciendo que OpenWrt ejecute su mecanismo interno de generación de configuración.
Regenerar la configuración automáticamente
Para intentar reconstruir la configuración base simplemente ejecutamos como root:
/bin/config_generate
El script utiliza la información de hardware almacenada por OpenWrt en:
/etc/board.json
A partir de esta información puede generar la configuración UCI correspondiente, incluyendo la configuración de red cuando esta no existe o está vacía. Podemos comprobar posteriormente el resultado con:
cat /etc/config/network
En una instalación x86 genérica con dos interfaces Ethernet, la configuración predeterminada de OpenWrt normalmente utiliza eth0 como LAN y eth1 como WAN. Si necesitamos aplicar inmediatamente la nueva configuración de red podemos reiniciar el servicio:
/etc/init.d/network restart
Debemos tener cuidado si estamos administrando el router remotamente mediante SSH, ya que una regeneración o cambio de las interfaces puede hacer que perdamos la conexión.
Qué hace realmente config_generate
El script /bin/config_generate forma parte del sistema base de OpenWrt y es utilizado por el propio sistema durante la generación inicial de su configuración. Entre otras cosas
- Comprueba la existencia de /etc/board.json.
- Si ese archivo no existe o está vacío, intenta obtener nuevamente la información de la plataforma mediante board_detect.
- Después utiliza dicha información para construir la configuración UCI correspondiente.
Un detalle importante es que config_generate no está diseñado para machacar indiscriminadamente una configuración existente. Si los archivos de configuración correspondientes ya existen y contienen datos, puede dejarlos intactos. Por tanto, este hack resulta especialmente útil cuando OpenWrt ha quedado sin una configuración base válida o alguno de esos archivos no ha sido generado correctamente.
Podemos comprobar si el archivo de red existe y tiene contenido mediante:
ls -lh /etc/config/network cat /etc/config/network
Este método es considerablemente menos destructivo que reinstalar OpenWrt mediante sysupgrade y, si nuestro problema se limita a que OpenWrt no ha generado correctamente las interfaces LAN y WAN, merece la pena probarlo antes de recurrir a una reinstalación completa del router.