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. ( 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.
Dirección IP
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í.
/etc/config/network
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.
/etc/config/wireless
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.
/etc/config/babel
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'
/etc/config/firewall
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
- https://rmgss.net/posts/nodo-chersky-LaOtraRed (nodo Chersky)