guias:configuracion_nodo_normal

Configuración de un nodo normal

Estas configuraciones son experimentales y podrían requerir correcciones. :!: Falta actualizar las configuraciones para creacion de subred publica y subred privada (ver ¿qué es un nodo? para más referencia)

Sabiendo lo que es un nodo en LaOtraRed, y el caso específico de un nodo normal ahora se verán las configuraciones por defecto que se usan.

Estas configuraciones son las que sigue el sistema de creación de firmware de LaOtraRed La Paz. (FIXME agregar referencia)

Hay que notar que se entiende que el medio físico por el cual se hará conexión a otros nodos es vía wifi, así:

Si se requiere que el enlace sea cableado se deben hacer unos cambios ligeros.

Siguiendo la Política de asignación de direcciones IP v4 sabemos que a un nodo en particular se le asignará una dirección IP y máscara de subred.

Por ejemplo imaginemos que la asignación es 10.64.14.0 /26 lo que implica que la dirección IP del router será 10.64.14.1 y la máscara de red que usará es 255.255.255.192 = /26

Hay que tomar en cuenta esos datos para indicarle a babeld (el protocolo de enrutamiento dinámico que usamos) el bloque de IPs que debe anunciar a los nodos vecinos.

La siguiente es una configuración minimalista, el sistema de gestión de nodos para este proyecto utiliza esta configuración. Puedes revisar el script generador de imágenes aquí.

Un nodo normal es típicamente un enrutador DUAL BAND que se conecta a la red distribuida por wifi en 2.4 y 5 GHz.

En un S.O. basado en openwrt este es el archivo de configuración principal de las interfaces de red, para un nodo normal este puede ser el contenido del archivo de configuración:

# interfaz loopback
config interface 'loopback'
	option ifname 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'
## Interfaz mesh para 2.4Ghz
config interface 'mesh24'
	option proto 'static'
	option ipaddr '10.64.14.1'       # IP publica del router
	option netmask '255.255.255.192' # /26
## Interfaz mesh para 5Ghz
config interface 'mesh5'
        option proto 'static'
        option ipaddr '10.64.14.1'       # IP publica del router
        option netmask '255.255.255.192' # /26 
## Interfaz lan 
config interface 'lan'
	option force_link '1'
	option proto 'static'
        option ipaddr '192.168.1.1'      # IP en la lan privada
	option netmask '255.255.255.0'   # mascara en la lan privada
	option type 'bridge'
	option ifname 'eth0'             # interfaz cableada
## interfaz wan y otras privadas en el router
# ...

En la configuración de arriba se ha definido 3 interfaces de red. mesh24 se destinará a conectar tráfico de la red distribuida en wifi de 2.4Gh y mesh5 de igual forma pero para 5Ghz.

Además se tiene la típica interfaz lan para la red interna del router, la dirección IP de esta interfaz puede ser la que el dueño del nodo quiera siempre y cuando este fuera del rango 10.64.0.0 /15 que está reservado para los nodos públicos de LaOtraRed La Paz - El Alto.

Se deben definir entradas para que el enrutador inalámbrico emita las señales wifi requeridas, este podría ser el archivo de configuración.

# dispositivo 2.4Ghz
config wifi-device 'radio0'
    option type 'mac80211'
    option hwmode '11g'
    option path 'platform/ar934x_wmac'
    option htmode 'HT20'
    option country 'BO'                 # normativa Boliviana
    option channel '7'                  # Canal comun 
    option disabled '0'
# dispositivo 5Ghz
config wifi-device 'radio1'
    option type 'mac80211'
    option txpower '22'
    option country 'BO'                 # normativa Boliviana
    option channel '153'                # Canal comun para LaOtraRed
    option path 'pci0000:00/0000:00:00.0'
    option htmode 'HT20'
    option disabled '0'
# 5 Ghz mesh
config wifi-iface
    option device 'radio1'
    option network 'mesh5'
    option mode 'adhoc'
    option ssid 'lapaz.laotrared.net'   # SSID comun
    option bssid 'BE:BA:CA:FE:BE:BE'    # MAC comun 5Ghz
    option encryption 'none'
# 2.4 Ghz mesh
config wifi-iface
    option device 'radio0'
    option mode 'adhoc'
    option network 'mesh24'
    option ssid 'lapaz.laotrared.net'   # SSID comun
    option bssid 'BE:BA:CA:FE:B3:B3'    # MAC comun 2.4Ghz
    option encryption 'none'
# 2.4 Ghz clientes (lan privada)
config wifi-iface
    option device 'radio0'
    option mode 'ap'
    option encryption 'none'            # podria usarse cifrado aqui tambien
    option ssid 'LaOtraRed - Libre'
    option network 'lan'
# wifi adicionales
# ...

El enrutador ahora emitirá 3 señales wifi; una en 5Ghz y otra 2.4Ghz para unirse a la red distribuida y ayudar a expandirla usando las interfaces mesh5 y mesh24 respectivamente. Hay otra señal wifi en modo AP para que otros dispositivos clientes se conecten a la red a través de la red lan del nodo pero esta es opcional y se podría incluso prescindir de ella.

El protocolo de enrutamiento dinámico babel es el que permite que la red sea descentralizada y que crezca automáticamente. Como se está siguiendo la política de asignación de direcciones IPv4 para este ejemplo sabemos que a este nodo se la ha asignado el bloque 10.64.14.0 /26, entonces sólo hay que configurar babeld para que anuncie este bloque a los vecinos y además acepte anuncios de otros vecinos dentro el rango reservado para LaOtraRed La Paz - El Alto.

:!: Se requiere tener instalado babeld, se puede hacer conectando el router a internet con opkg install babeld'

package babeld
config general
    option 'random_id' 'true'
    option 'ipv6_subtrees' 'true'
##### interfaces en las que babel participa
config interface
    option 'ifname' 'mesh24'
config interface
    option 'ifname' 'mesh5'
 
###### filtros para rutas de entrada (anunciadas por los vecinos)
# permitir rutas del bloque 10.64.0.0 /15 (LaOtraRed La Paz - El Alto)
config filter
    option type 'in'
    option ip '10.64.0.0/15'
    option action 'allow'
config filter
	option type 'in'
	option ip 'fc01:1934::/32'
	option 'allow'
###### filtros para rutas internas (kernel)
# anunciar a los vecinos el bloque de este nodo
config filter
    option type 'redistribute'
    option ip '10.64.14.0/26'       # bloque IPv4 de este nodo
    option action 'allow'
 
###### denegar otras rutas no definidas
config filter
    option type 'in'
    option action 'deny'
config filter
    option type 'redistribute'
    option local 'true'
    option action 'deny'

La interfaz lan está destinada a conectar dispositivos clientes que se conectan y desconectan a voluntad y además estos no son públicos y se conectan a otros dispositivos públicos dentro de LaOtraRed a través de las interfaces mesh usando NAT.

En este caso haremos que se use la dirección IP pública del router 10.64.14.1 para enviar el tráfico desde la interfaz lan hacia otros nodos en LaOtraRed. Para que esto sea posible se agregan opciones en el archivo de firewall:

#...
config zone
    option input 'ACCEPT'
    option output 'ACCEPT'
    option name 'mesh'
    option forward 'ACCEPT'
    option network 'lan mesh24 mesh5'
    option masq '1'           # masquerading (NAT)
 
config forwarding
    option dest 'lan'
    option src 'mesh'

Con todas estas configuraciones el nodo ya estaría participando de la red distribuida y ayudando a expandirla.

Pero no está brindando algún servicio adicional, revisa la guía de servicios o los ejemplos vivos de otros nodos en la red.

Ejemplos vivos

  • guias/configuracion_nodo_normal.txt
  • Última modificación: 2017/06/11 23:40
  • por strysg