Jugando con BATMAN-ADV

De Hacklab La Paz - r00thouse
Revisión del 21:57 22 oct 2015 de Looper (discusión | contribs.) (+ desventajas)
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)

Estas configuraciones se han probado sobre [1] y requieren que el router lo tenga instalado primero.

Es necesario tener instalado BATMAN por que es el protocolo de red mesh que usa.

Una vez el router tenga conexión a internet se puede instalar con los siguientes comandos:

opkg update
opkg install kmod-batman-adv

Nos hemos basado en esta guía http://wiki.openwrt.org/doc/howto/mesh.batman

Desventajas (probables)

Yo me he encontrado con estas severas desventajas al testearlo profundamente --- @enmaskarado

  • Comportamiento de ruteo deficiente en nodos con antenas cableadas a un switch (ej: supernodo)
  • Necesidad de protocolo de ruteo dinámico adicional para enrutar públicamente el bloque IP para clientes ocasionales
  • Tabla de ruteo poco clara y no personalizable

/etc/config/network

hay que agregar lo siguiente a este archivo para tener tres interfaces de red.

config interface 'publan'
	option type 'bridge'
	option proto 'static'
	option ipaddr '10.0.0.6' #ip unica del router
	option netmask '255.255.0.0'
	option ifname 'eth1.2 bat0'
	

config interface 'lan'
	option ifname 'eth1'
	option type 'bridge'
	option proto 'static'
	option ipaddr '192.168.1.1'
	option netmask '255.255.255.0'
        
config interface 'mesh'                
        option ifname 'mesh0'
        option proto 'none'
        option mtu '1528'

publan

La primera define una red pública que hace que los clientes que se conecten sean visibles en toda la red (una especie de red donde todas las IP son visibles por todos los que están conectados a la red). ipaddr es la dirección estática del nodo, única de cada nodo. (10.0.0.6 ya está asignado hay que usar otro no asignado)

TODO: poner una lista de IP estáticas no asignadas para los nodos.

lan (privada)

La segunda define una red "privada" donde los clientes conectados tienen las IP visibles sólo con los que estén conectados mediante esta interfaz

TODO: Estas configuraciones no se han terminado por lo que esta interfaz no funciona todavía.

mesh

Para hacer interfaz con una red ad-hoc mesh

/etc/config/wireless

Este es el contenido que debe tener el archivo

config wifi-device 'radio0'
	option type 'mac80211'
	option macaddr '64:66:b3:8b:cf:ca' # mac del router
	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 txpower '27'
	option country 'US'
	option disabled '0'
	option channel '4' # Es importante estar en el mismo canal
	
config wifi-iface
	option device 'radio0'
	option encryption 'none'
	option network 'publan'
	option mode 'ap'
	option ssid 'r00thouse-mesh-6' # nombre de la zona wifi

config wifi-iface                       
        option device 'radio0'          
        option encryption 'none'        
        option network 'lan'         
        option mode 'ap'                
        option ssid 'nodo-pri-6' # nombre de la zona wifi-pri
        
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' # MAC comun para toda la red
	option ssid 'r00thouse-mesh'

/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'

/etc/config/dhcp

Como openwrt usa dnsmasq por defecto como dhcp y dns-cache hay que especificar que se va a utilizar otro servidor dns por defecto en la red la configuracion de dnsmasq en dhcp deberia lucir asi:

config dnsmasq
	option domainneeded '1'
	option boguspriv '1'
	option filterwin2k '0'
	option localise_queries '1'
	option rebind_protection '1'
	option rebind_localhost '1'
	option local '/lan/'
	option domain 'lan'
	option expandhosts '1'
	option nonegcache '0'
	option authoritative '1'
	option readethers '1'
	option leasefile '/tmp/dhcp.leases'
	option resolvfile '/tmp/resolv.conf.auto'
# listando varios servidores dns adicionales
# se enviaran todas las busquedas de maquinas internas a este server dns
# enviara todas las busquedas  por *.lawiki.uta hacia 10.0.0.11
	list server '/lawiki.uta/10.0.0.11'
# es necesaria la siguiente opcion
	option rebind_protection '0'

[1] list server '/lawiki.uta/10.0.0.11'

Agregar VLANS

Se pueden definir VLANS en el router editando el archivo /etc/config/network para por ejemplo asigar interfaces ethernet fijas a determinadas configuraciones de red

config switch
	option name 'switch0'
	option reset '1'
	option enable_vlan '1' 

config switch_vlan
	option device 'switch0'
	option vlan '1'
	option ports '0t 1 2'

config switch_vlan
	option device 'switch0'
	option vlan '2'
	option ports '0t 3 4'

Configurar automaticamente ejecutando script

Aqui se va a agregar un script para autoconfigurar un router para que funcione como nodo de la red.