Generar imagen de OpenWrt con batman adv incluído - nfespindolar/RedMeshTunjuelito GitHub Wiki
Para implementar una Red Mesh es necesario contar con el software adecuado. B.A.T.M.A.N. es un protocolo de enrutamiento versátil muy utilizado para trabajar con redes en malla. Para instalar el módulo en Ubuntu (distribución de Linux) solo es necesario ingresar el siguiente comando en la terminal:
$ sudo apt-get install batctl bridge-utils
Para activar el módulo y comprobar que esté instalado se ingresan las siguientes líneas:
$ sudo modprobe batman-adv
$ sudo batctl -v
Sin embargo, la idea es contar con batman-adv en las NanoStations, las cuales no están pensadas para estar conectadas a internet. Para superar esta barrera se optó por generar una imagen de OpenWrt con todas las herramientas (programas) que se llegaran a necesitar en algún momento de la implementación. El siguiente procedimiento muestra cómo elegir los módulos, configurar OpenWrt y finalmente generar una imagen adecuada para el hardware de interés (NanoStation Loco M2).
-
Descargar el repositorio de openwrt:
~$ sudo git clone git://git.openwrt.org/openwrt.git
Si el directorio de OpenWrt se guardó en home, ingresar a la carpeta
~$ cd openwrt
-
Modificar los permisos para evitar inconvenientes con algunos paquetes, evitar usar
sudo
en los próximos comandos:~/openwrt$ sudo chmod -R 777 *
Para mirar las opciones de configuración y paquetes:
~/openwrt$ make menuconfig
-
Agregar el paquete de batman-adv para poder ser seleccionado en el menú de menuconfig:
~/openwrt$ ./scripts/feeds update ~/openwrt$ ./scripts/feeds install kmod-batman-adv ~/openwrt$ ./scripts/feeds install batctl
-
Ingresar al menú de selección y buscar el nuevo paquete en la secuencia indicada:
~/openwrt$ sudo make menuconfig
Kernel modules ---> Network Support ---> kmod-batman-adv
-
Seleccionar Target para ahorrar tiempo en la generación de imágenes: En la interfaz de
menuconfig
se pueden escoger ciertas características del sistema al cual se le va a instalar OpenWrt. Esto nos ahorra bastantes horas de compilación para numerosos dispositivos, dado que por defecto están seleccionadas todas las arquitecturas.Target System ---> (X) Atheros AR7xxx/AR9xxx
Target Profile ---> (X) Ubiquiti Products
-
Limpiar e iniciar la compilación:
~/openwrt$ make clean
(Puede tardar varias horas)
~/openwrt$ sudo make -j1 V=s
Una vez finalice el proceso del make, se busca la imagen generada en la carpeta
~/openwrt/bin/ar71xx
~/openwrt/bin/ar71xx$ ls | grep ubnt-nano
openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin openwrt-ar71xx-generic-ubnt-nano-m-squashfs-sysupgrade.bin openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-factory.bin openwrt-ar71xx-generic-ubnt-nano-m-xw-squashfs-sysupgrade.bin
En el caso de la NanoStation Loco M2 se escoge el archivo:
openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin
-
Se instala la nueva imagen con el procedimiento descrito para flashear la NanoStation.
-
Para ingresar a openwrt solo es necesario usar ssh, por ahora no hay ningún password:
$ sudo ssh [email protected]
Es importante activar la opción de wireless en la terminal de la NanoStation para poder acceder através de la red OpenWrt:
# uci set wireless.@wifi-device[0].disabled=0 # uci commit wireless # wifi
A veces aparecen errores al intentar acceder por medio de ssh:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that the RSA host key has just been changed. The fingerprint for the RSA key sent by the remote host is
La solución a este error es remover las claves para la ip a la que se está intentando acceder
Por ejemplo para la ip 192.168.1.10 :
$ ssh-keygen -R 192.168.1.10
Referencias
-
Wiki para instalar batman en openwrt
-
Generar Imagen de OpenWrt con batman-adv incluido
http://www.open-mesh.org/projects/batman-adv/wiki/Building-with-openwrt