Proyectos:Archivo/Red Mesh 2015

De Hacklab La Paz - r00thouse

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

Index.5.JPG

Hay que implementar una infraestructura de red que funcione bajo una banda de frecuencias libres. (probablemente 2.4Ghz ver mas )

mas info de bandas de frecuencia

1. Software y protocolos

Inicialmente se necesita probar en routers instalados con el sistema operativo OpenWrt ver https://en.wikipedia.org/wiki/OpenWrt

Luego probar la comunicacion entre dos puntos lo que indicara que el protocolo

Lista de routers TP-Link disponibles en la Uyustus

Protocolos

Sistemas operativos / Firmwares

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

http://bogota-mesh.org/

Red digital comunitaria de la Ciudad de Buenos Aires y Alrededores.

http://buenosaireslibre.net/

Ejemplo de otras redes mesh

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

  1. https://es.wikipedia.org/wiki/Red_en_malla
  2. https://en.wikipedia.org/wiki/Mesh_networking#See_also
  3. https://es.wikipedia.org/wiki/Red_inal%C3%A1mbrica_mallada
  4. https://en.wikipedia.org/wiki/Wireless_mesh_network#Research_topics
  5. 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
  6. https://en.wikipedia.org/wiki/ISM_band
  7. 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:

/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


Software