Configuracion nodo rezo

De Hacklab La Paz - r00thouse

Nota.- Esta configuración será actualizada pronto, para su uso en LaOtraRed

Configuración del nodo "Rezo" en r00thouse-mesh (primer nodo fuerte de esta red)

Siguiendo la asiganción de direcciones IP descrita aquí http://wiki.laotrared.net/doku.php?id=direcciones_asignadas , se definen 62 hosts para este nodo.

Notar que estos 62 hosts son para dispositivos con IP pública (No salen a través de NAT y son visibles directamente en la red).

TODO Se ha cambiado las direcciones de IP y la configuración de ambos routers con babeld, ahora el nodo1 es 10.64.0.10, y el nodo2 es 10.64.0.10 ambos con máscara /26. Los dos routers no están en distintas subredes y están conectados por ethernet a un conmutador, por lo tanto babeld no necesita actuar para enrutar paquetes entre estos dos routers, estos routers sólo se usan para extender el alcance. Por eso esta sección debe actualizarse.

Tipo de nodo

Se ha usado el protocolo babel como protocolo de enrutamiento dinámico sobre openwrt, para que este nodo funcione como Nodo-mesh.

Direcciones IP y subredes

Se tienen 62 hosts (máscara de red /26) a partir de 10.1.0.0 , si se cuenta con 2 routers en 5Ghz para que funcionen como nodos-mesh, entonces para mantenerse dentro de los 62 hosts se tiene que dividir 2 subredes distintas dentro el rango 10.1.0.0 hasta 10.1.0.64.

Router 1

Con dirección 10.1.0.1 y máscara /27 (255.255.255.224) , hasta 30 hosts.

Router 2

Con dirección 10.1.0.32 y máscara /27 (255.255.255.224) , hasta 30 hosts.

Configuración del router1 con BABEL

En el primer router

/etc/config/network

No hay la necesidad de crear puentes para lograr conexión entre interfaces

nota.- wlan0 y eth0 tienen la misma IP --> TODO: Colocar implicaciones de esto

config interface 'loopback'
	option ifname 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'

config globals 'globals'
	option ula_prefix 'fd41:d711:fcf6::/48'

config interface 'lan'
	option proto 'static'
	option ipaddr '10.1.0.1' # direccion del router
	option ifname 'eth0'
	option netmask '255.255.255.224'

config interface 'mesh'
	option proto 'static'
	option ifname 'wlan0'
	option ipaddr '10.1.0.1' # direccion del router
	option netmask '255.255.255.255' # /32

/etc/config/wireless

config wifi-device 'radio0'
	option type 'mac80211'
	option hwmode '11a'
	option path 'platform/ar934x_wmac'
	option txpower '30'
	option country 'US'
	option channel '161'
	option htmode 'HT40'

config wifi-iface
	option network 'mesh'
	option encryption 'none'
	option device 'radio0'
	option mode 'adhoc'
	option ssid 'r00thouse-mesh' # SSID

/etc/config/babeld

Basado en las configuraciones propuestas en Jugando-con-babel

package babeld
 
config general
       option 'random_id' 'true'
       option 'ipv6_subtrees' 'true'
 
config interface
       option 'ifname' 'wlan0' #interfaz (preferiblemente virtual) donde Babel actúa

# permitir las rutas que se aceptan 'in' 
config filter
       option 'type' 'in'
       option 'ip' '10.0.0.0/8'
       option 'action' 'allow'

# las rutas que este router redistribuye de su red local
config filter
       option 'type' 'redistribute'
       option 'local' 'true'
       option 'ip' '10.1.0.1/27'

# las rutas que este router redistribuye de otros routers 
config filter
       option 'type' 'redistribute'
       option 'ip' '10.0.0.0/8'

# Complemento (todo lo demas que hay que rechazar) 
config filter
       option 'type' 'in'
       option 'action' 'deny'
 
config filter
       option 'type' 'redistribute'
       option 'local' 'true'
       option 'action' 'deny'
 
config filter
       option 'type' 'redistribute'
       option 'action' 'deny'


En los clientes

No es buena idea hacer que el router asigne direcciones (DHCP) por que se supone que a estos routers no se conectan clientes ocasionales directamente, si no equipos fijos y públicos como servidores.

Cada cliente debe conectarse a este router por eth0 y se le debe asignar manualmente una dirección IP estatica en el rango del router, para este caso por ejemplo 10.1.0.2 /27, además es ---muy importante que el equipo conectado tenga como gateway por defecto al propio router--- de otra manera la conexión entre clientes de distintos routers no funciona.

En resumen para el cliente del router mesh :

  • IP=10.1.0.2
  • netmask=255.255.255.224
  • default gateway=10.1.0.1


Configuración del router2 con BABEL

Las configuraciones son similares a la del router 1 con los siguientes cambios.

/etc/config/network

config interface 'lan'
	option proto 'static'
	option ipaddr '10.1.0.33' # direccion del router
	option ifname 'eth0'
	option netmask '255.255.255.224'

config interface 'mesh'
	option proto 'static'
	option ifname 'wlan0'
	option ipaddr '10.1.0.33' # direccion del router
	option netmask '255.255.255.255' # /32

/etc/config/babeld

# las rutas que este router redistribuye de su red local
config filter
       option 'type' 'redistribute'
       option 'local' 'true'
       option 'ip' '10.1.0.33/27'

En los clientes

  • IP a partir de =10.1.0.34
  • netmask=255.255.255.224
  • default gateway=10.1.0.33

Observaciones generales

Como babeld se encarga de determinar la mejor ruta entre nodos, y en las configuraciones de arriba se usan 2 interfaces; -- eth0 (de ambos routers) que se conecta a un conmutador de red) , y wlan0 (conexión inalámbrica para que otros nodos se unan) --.

Incluso si los dos routers están instalados lado a lado, babel usará la interfaz eth0 para conectar a estos dos routers y wlan0 para cuando otros routers configurados de la misma forma intenten conectarse.

Links de utilidad

  1. https://www.ietf.org/rfc/rfc6126.txt