TP-LINK TL-WR941ND v5.1
Configuraciones realizadas
- Wiki:
- Fecha: 13/12/2014
- Firmware: Openwrt 12.09
- BATMAN: 2012.3.0
OpenWRT
Hemos utilizado el post #44 del siguiente link para grabar el firmware. https://forum.openwrt.org/viewtopic.php?pid=220561
Para evitarse el proceso de modificar el binario y recompilarlo hemos subido el binario para descargarse:
Próximamente ;)
Luego de tener el binario se debe hacer una actualización de firmware al router para poder instalar openwrt. La actualización puede hacerse desde la interfaz web de administración del dispositivo.
BATMAN
Una vez instalado el sistema operativo hemos seguido esta guía de instalación
Es una descripción de las acciones seguidas para configurar un nodo de esta primera versión.
/etc/config/network
config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config interface 'lan'
option type 'bridge'
option proto 'static'
option ipaddr '192.168.3.1' # ip del nodo (asignacion manual)
option netmask '255.255.255.0'
option _orig_ifname 'bat0 eth0'
option _orig_bridge 'true'
option ifname 'bat0 eth1'
config interface 'wan'
option ifname 'eth0'
option proto 'dhcp'
config switch
option name 'switch0'
option reset '1'
option enable_vlan '1'
config switch_vlan
option device 'switch0'
option vlan '1'
option ports '0 1 2 3 4'
config interface 'mesh'
option _orig_ifname 'adhoc0'
option _orig_bridge 'false'
option proto 'static'
option ipaddr '192.168.100.1'
option netmask '255.255.255.0'
Basicamente hay que configurar la interfaz lan con una ip estática (de otra manera no se autoasigna ip) y agregar las líneas
option _orig_ifname 'bat0 eth0' option _orig_bridge 'true' option ifname 'bat0 eth1'
Luego agregar la interfaz mesh como se ve arriba.
/etc/config/wireless
config wifi-device 'radio0'
option type 'mac80211'
option channel '11'
option macaddr 'e8:94:f6:04:e6:e2'
option hwmode '11ng'
option htmode 'HT20'
list ht_capab 'LDPC'
list ht_capab 'SHORT-GI-20'
list ht_capab 'SHORT-GI-40'
list ht_capab 'TX-STBC'
list ht_capab 'RX-STBC1'
list ht_capab 'DSSS_CCK-40'
option disabled '0'
option txpower '27'
option country 'US'
config wifi-iface 'wmesh'
option device 'radio0'
option ifname 'adhoc0'
option network 'mesh'
option mode 'adhoc'
option ssid 'mesh'
option bssid 'E8:DE:27:3A:C6:DF' # MAC arbitraria (debe ser comun para los nodos dentro de la mesh)
option encryption 'none'
Agregar la interfaz wifi-iface wmesh como se ve arriba
/etc/config/batman-adv
config 'mesh' 'bat0'
option 'interfaces' 'mesh'
option 'aggregated_ogms'
option 'ap_isolation'
option 'bonding'
option 'fragmentation'
option 'gw_bandwidth'
option 'gw_mode'
option 'gw_sel_class'
option 'log_level'
option 'orig_interval'
option 'vis_mode'
option 'bridge_loop_avoidance'
/etc/config/dhcp
Nota.- Revisar si la siguiente configuracion es necesaria.
config dhcp
option start '100'
option leasetime '12h'
option limit '150'
option interface 'mesh'
Al reiniciar las conexiones de red, debería existir una red mesh accesible desde wifi y si los nodos se apagan la conexión entre clientes debe persistir.
Segunda versión de configuración (wara-mesh) Hemos configurado esta red completamente desde archivos de configuración, a continuación su descripción.
/etc/config/wireless
Agregar las siguientes lineas al archivo
# interfaz wireless publica
config wifi-iface
option device 'radio0'
option encryption 'none'
option network 'lan'
option mode 'ap'
option ssid 'nodo2-wifi'
# mas configuraciones
config wifi-iface
option device 'radio0'
option ifname 'mesh0'
option encryption 'none'
option network 'mesh'
option mode 'adhoc'
option bssid 'CA:FE:BA:BE:06:DF'
option ssid 'wara-mesh' # nombre de la mesh
NOTA IMPORTANTE Guardar el archivo y luego comprobar en la interfaz web que se crea una red wifi con ssid wara-mesh
/etc/config/network
# se modifica agrega lo siguiente
config interface 'lan'
option ifname 'eth1 bat0' # las que haran bridge
option type 'bridge'
option proto 'static'
option ipaddr '10.0.0.2' # ip unica del router
option netmask '255.255.0.0'
# nueva interfaz mesh
config interface 'mesh'
option ifname 'mesh0'
option proto 'none'
option mtu '1528'
/etc/config/batman-adv
config 'mesh' 'bat0'
option 'interfaces' 'mesh0'
option 'aggregated_ogms'
option 'ap_isolation'
option 'bonding'
option 'fragmentation'
option 'gw_bandwidth'
option 'gw_mode'
option 'gw_sel_class'
option 'log_level'
option 'orig_interval'
option 'vis_mode'
option 'bridge_loop_avoidance'
Una vez realizados los cambios reiniciar el router con
reboot -f
Recuperando con failsafe
En caso que no haya forma de conectarse remotamente por ninguna red a OpenWRT (tal vez el router se quedó sin dirección IP), este firmware cuenta con un modo failsafe que sirve para cuando ocurren estas cosas.
El caso en el que se recuperó fue el siguiente: después de hacer algunas configuraciones y reiniciar los servicios de openWRT ya no existía ninguna red inalámbrica y no era posible ver el router por ninguna red cableada (no ping, ni desde dhcp, ni con ip estática).
OpenWRT cuenta con modo failsafe, leer
Los pasos son los siguientes:
- Desconectar el router de cualquier red cableada
- Encender el router
- En el panel frontal del router se ve que el LED de SYS parpadea al iniciar el router (2 veces por segundo)
- Cuando el LED de SYS tenga esa secuencia de parpadeos presionar el boton frontal para activar el modo failsafe
- En el caso del TL WR941ND no hay que presionar el botón frontal, hay que presionar el botón trasero de reset WPS
- Uno se encuentra en modo failsafe cuando el LED de SYS comienza a parpadear muy rápido
- En teoría ninguna red tenía dirección IP pero cuando está en failsafe el router tendrá la IP 192.168.1.1
- El primer intento fue conectar la laptop con los puertos lan (amarillos) del router y no se podía hacer ping
- El segundo intento fue conectar la laptop con el puerto wan (azul) del router y el ping ya se podía realizar. $ ping 192.168.1.1
- Ejectutar: $ telnet 192.168.1.1 que permite ingresar como root directamente sin necesidad de password
- Ya siguiendo con la documentación de openwrt para volver al estado inicial del router
- $ mount_root
- $ firstboot
- $ reboot -f
Referencias
- https://es.wikipedia.org/wiki/Red_en_malla
- https://en.wikipedia.org/wiki/Mesh_networking#See_also
- https://es.wikipedia.org/wiki/Red_inal%C3%A1mbrica_mallada
- https://en.wikipedia.org/wiki/Wireless_mesh_network#Research_topics
- http://jornadas.cafelug.org.ar/8/es/filminas/tercer%20dia/LUGRo-Mesh:%20Tecnolog%C3%ADa%20Mesh%20aplicada%20a%20redes%20WiFi%20Comunitarias/LUGRo-Mesh%20-%20slides%20charla%208vas%20JRSL.pdf
- https://en.wikipedia.org/wiki/ISM_band
- Documental: Free the network
- http://www.open-mesh.org/projects/batman-adv/wiki/Quick-start-guide
- http://www.open-mesh.org/projects/batman-adv/wiki/Batman-adv-openwrt-config