Proyectos:Archivo/Red Mesh 2015
Documentacion Generica
Objetivos
- Descentralizar las redes
- Tener el control sobre nuestras comunicaciones
- Ofrecer / Mantener servicios y libre (además de gratis) acceso a estos atravéz de wi-fi
Idea
Hay que implementar una infraestructura de red que funcione bajo una banda de frecuencias libres. (probablemente 2.4Ghz), mas información de bandas de frecuencia
1. Software y protocolos
- Inicialmente se necesita probar routers que soporten el sistema operativo OpenWRT, en La Paz podemos encontrar esta lista de routers
- Luego probar la comunicación entre dos puntos lo que indicara que el protocolo funciona.
Protocolos
- B.A.T.M.A.N
- OLSRP http://en.wikipedia.org/wiki/Optimized_Link_State_Routing_Protocol
- Ro.b.i.n robin.forumup.it/
Sistemas operativos / Firmwares
- OpenWRT http://en.wikipedia.org/wiki/OpenWrt
- Nightwing http://nightwing.lugro-mesh.org.ar/
- Otros firmwares http://en.wikipedia.org/wiki/List_of_wireless_router_firmware_projects
2. Antena
Hay que escoger las antenas aducuadas para trabajar en la frecuencia libre de 2.4 Ghz (frecuencia de uso libre).
Hay que formar un equipo que se encargue de esto y averiguar si conviene comprar o fabricar las antenas.
3. Servicios
Una vez que se logre la comunicacion entre nodos se puede montar servicios.
4. Otros
La banda ISM
El uso para radio aficionados está autorizado por la ATT (ver documento, pág 108 - bol20) ver más, existe variedad de dispositivos que funcionan en esta banda de frecuencias, aunque puede que se halle algo saturada y se presenten Interferencias electromagnéticas
Sobre los Nodos
Inicialmente
roothouse ---> UMSA
5. Casos de exito
Red Inalambrica Comunitaria Libre de Bogota
Red digital comunitaria de la Ciudad de Buenos Aires y Alrededores.
Ejemplo de otras redes mesh
- Guifi (españa) + Servicios https://guifi.net/en/node/3671/view/services
- Ninux http://wiki.ninux.org/FrontPage
- http://en.wikipedia.org/wiki/List_of_wireless_community_networks_by_region
- https://wiki.projectmeshnet.org/List_of_Mesh_Locals
- Prueban protocolos periodicamente http://battlemesh.org/
- Firmware basado en OpenWrt http://www.libre-mesh.net/
Configuraciones realizadas
TP-LINK TL-WR941ND (v5)
Fecha: 13/12/2014
- Sistema Operativo: Openwrt 12.09
TP-LINK TL-WR941ND (v5.1)
Grabar el firmware de 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:
Proximamente ;)
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.
ASUS WL-500GP (v2)
http://wiki.openwrt.org/toh/asus/wl500gp http://wiki.openwrt.org/toh/asus/wl500gp
Fecha: 13/12/2014
- Sistema Operativo: Openwrt 10.03
Una vez instalado el sistema operativo hemos seguido esta guía de instalación:
http://wiki.reseaulibre.ca/guides/openwrt+batman/#index6h1
Recuperando con failsafe (caso TL WR941ND)
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: despúes 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 que permite resolver esto: http://wiki.openwrt.org/doc/howto/generic.failsafe
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
Mas informacion
- 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 https://www.youtube.com/watch?v=Fx93WJPCCGs
Primera Version Funcional
Esta una descripción de las acciones seguidas para configurar un nodo de esta primera versión.
Hardware Utilizado
Router TPLink Modelo TL-WR941Nd
Software Utilizado
- Sistema operativo OPENWRT ATTITUDE ADJUSTMENT (12.09, r36088)
- Protocolo batman
- kmod-batman-adv - 3.3.8+2012.3.0-3
Configuraciones de software
Basado en:
- 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
/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.
Antenas para mejorar intercambio de datos
Infraestructura de red
Version 2 (Wara-mesh)
Hardware
Router TPLink Modelo TL-WR941Nd
Software
Crear 3 redes wifi.
- 1 red adhhoc (con ssid wara-mesh para la comnicaion entre nodos)
- 1 red local wifi publica (los que se conecten a esa red tendran ip publica en la red mesh)
- 1 red wifi privada (los que se conecten a esta red pueden ver el contenido de la mesh pero sus ip no son publicas en la red mesh)
Hemos configurado esta red completamente desde archivos de configuracion, continuacion su descripccion.
/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