Configuración
Introducción a la configuración
LibreMesh tiene un sistema de configuración basado en los siguienes principios:
-
Ser simple de configurar y entender qué configuraciones están en uso en cada nodo
-
Basado en la idea de configuraciones compartidas a nivel Comunidad con customizaciones posibles por Nodo.
-
Mantenible en el tiempo, por actualizaciones de firmware, agregar nuevos nodos en la comunidad, etc.
-
Poder realizar configuraciones complejas.
El sistema de configuración es fundamental para entender el funcionamiento interno de LibreMesh,
sin embargo no es necesario entenderlo antes de empezar una red LibreMesh!
Configuración geek free usando el FirstBootWizard
Si tu comunidad quiere desplegar una red geek free es recomendable hacerlo usando la lime-app
utilizando el FirstBootWizard. Esta aplicación simplifica la configuración inicial de los nodos y
permite a nuevos nodos sumarse a una red existente, todo a travez de una interfaz amigable
que no requiere conocimientos previos de redes.
Para utilzar el FirstBootWizard simplemente sigue los pasos que aparecen en pantalla al
entrar en http://thisnode.info
En cambio si tu comunidad es una comunidad de geeks entonces quizas no quieran utilizar el FirstBootWizard.
Una vez iniciada la red utilizando el FBW les participantes pueden realizar algunos
cambios de configuración a travez de la lime-app.
A medida que vayan surgiendo necesidades en la comunidad que no se cubran actualmente con la
lime-app les participantes de la red podrán aprender a realizar estos cambios a travez de ssh
u otras herramientas y siguiendo la documentación a continuación.
Configuración para administradores de red
LibreMesh utiliza a UCI como sistema de
configuración ya que UCI es tambien es utilizado por OpenWrt.
UCI es una base de datos de que es
facilmente modificable tanto desde línea de comandos como editando los archivos de configuración directamente.
Todos los archivos de configuración de UCI se encuentran en el directorio /etc/config/
.
Los archivos de configuración de LibreMesh que pueden ser editados para son: /etc/config/lime-node
y
/etc/config/lime-community
.
El resto de los archivos de configuración no deben ser modificados.
Niveles de configuración Comunidad y Nodo
Para ayudar a la comunidad a mantener sus configuraciones, la configuración de los nodos de la red
se estructura jerarquicamente en 3 niveles:
-
Nodo, archivo
/etc/config/lime-node
-
Comunidad, archivo
/etc/config/lime-community
-
Defecto, archivo
/etc/config/lime-defaults
Donde la configuración realizada a nivel de Nodo toma prioridad por sobre Comunidad y esta a su
vez tiene prioridad por sobre el Defecto.
De esta forma cuando la mayoria de los nodos comparten cierta caracteristica la misma conviene
configurarse a nivel comunidad y solo modificarla en el nivel de Nodo en los nodos donde esa configuración difiere.
El nivel Default contiene todos los valores de configuración en su valor por defecto.
Ejemplo
Supongamos que queremos configurar la distancia máxima wireless de los nodos de 2.4GHz de la comunidad
en 300 metros pero en dos de los nodos A y B configurarla en 1000m. Lo podríamos hacer de la siguiente forma:
En lime-community
de todos los nodos tendriamos:
config lime 'wifi'
# other options
option distance_2ghz '300'
Y en los archivos lime-node
de los nodos A y B:
config lime 'wifi'
option distance_2ghz '1000'
Funcionamiento
Al correr el comando lime-config
lo primero que sucede es que se procesan los niveles Nodo,
Comunidad y Default y se genera el archivo /etc/config/lime-autogen
.
Este archivo es el que contiene la configuración que realmente va a utilizarse por libremesh para configurar el sistema.
Luego se escriben los archivos de configuración resultantes para cada paquete en base a /etc/config/lime-autogen
Para que las configuraciones se apliquen, es recomendable correr reboot
luego de lime-config
. Si bien hay formas más rápidas
de aplicar las modificaciones en ciertos casos, correr reboot
es la única que asegura que todos los cambios se aplicaron.
Lista de secciones y opciones
La configuración se divide en tres secciones principales: system
, network
y wifi
.
Para tener información detallada y actualizada de todas las opciones ver la referencia actualizada
en /docs/lime-example.
Las siguientes opciones de la seccion system
son las más relevantes:
config lime system option hostname 'LiMe-%M4%M5%M6' option domain 'thisnode.info'
Te sugerimos que cambies el dominio thisnode.info a un nuevo subdominio del sitio de tu comunidad, por ejemplo option domain 'mesh.altermundi.net'. Este dominio ('mesh.altermundi.net') debe ser un dominio que no exista ya afuera de la red (i.e. es una mala idea usar 'altermundi.net'). A todos los clientes que obtienen una dirección IP por DHCP y a todos los nodos de la red se le asignará un fully qualified domain (ej. 'lime-ddeeff.mesh.altermundi.net')
De todas las opciones de red las más relevantes son las siguientes:
config lime network option primary_interface 'eth0' option main_ipv4_address '10.%N1.0.0/16' option main_ipv6_address '2a00:1508:0a%N1:%N200::/64' list protocols ieee80211s list protocols lan list protocols anygw list protocols batadv:%N1
Configuración IPv4:
main_ipv4_address Hay cuatro posibilidades:
|
Configuración IPv6:
main_ipv6_address La configuración es similar a la |
Lista de protocolos:
list protocols Listado de protocolos configurados por LibreMesh. Algunos de estos require la instalación de su paquete relacionado |
De todas las opciones de red las más relevantes son las siguientes:
config lime wifi option channel_2ghz '11' list channel_5ghz '48' list channel_5ghz '157' option distance_2ghz '100' option distance_5ghz '1000' list modes 'ap' list modes 'apname' list modes 'ieee80211s' option ap_ssid 'LibreMesh.org' option apname_ssid 'LibreMesh.org/%H' option country 'ES'
Configuración de país:
country code El código de país por defecto no viene especificado (entonces por lo tanto el defecto suele ser |
distance
El parámetro |
wifi options
Cualquier opción en la forma |
wifi Password de puntos de acceso
Para segurizar con WPA2-PSK las interfaces AP y APname, agrega las opciones |
Configuraciones de interfaz especificas
Cambiar las opciones antes mencionadas nos permite tener una configuración de todo el sistema.
En los casos en los que diferentes interfaces de red deben tener configuraciones diferentes, véase /docs/lime-example.
Opciones parametrizables
Algunas opciones son parametrizables usando un conjunto de caracteres especiales que serán
reemplazados por información específica del nodo.
-
MAC bytes
%Mn
se refiere a el byten
de la dirección de MAC de la interfaz principal.
Por ejemplo de la MACCA:FF:EE:BA:BB:EE
%M1
se reemplazará porCA
(el prime byte de la MAC)
y%M4
porBA
(el cuarto byte de la MAC). -
Network Identifier
%Nn
refiere al byten
del identificador de la nube que es un hash que se calcula
a partir del SSID del AP (tomado del contenido deoption ap_ssid …
). -
Hostname
%H
se refiere al hostname del nodo.
Configurando cosas no previstas en LibreMesh
Si se quiere realizar una configuración para la cual LibreMesh no tiene una opción entonces
es necesario usar configuraciones genéricas y lime-assets.
Configuraciones genéricas: generic_uci_config
Se puede configurar otros archivos en /etc/config/
desde los archivos de configuración de lime usando
configuraciones genéricas.
Ejemplo para configurar la localización de /etc/config/libremap
desde /etc/config/lime-community
:
config generic_uci_config libremap
list uci_set "libremap.settings=libremap"
list uci_set "libremap.settings.community=our.libre.org"
list uci_set "libremap.settings.community_lat=-200.123"
list uci_set "libremap.settings.community_lon=500.9"
Los lime-assets, archivos para configuraciones especiales
Los lime-assets son archivos que permiten realizar configuraciones especiales. Estos archivos
se dividen en dos grupos, los del nodo y los de la comunidad. La idea es que los assets de la comunidad
sean compartidos por todos los nodos y permitan realizar configuraciones que son necesarias en todos los nodos.
En cambio los archivos (assets) del nodo están pensados para realizar configuraciones especificas en el nodo.
Definiendo archivos: copy_asset
Si se precisa que un archivo esté presente en el sistema de archivos puedes usar la directiva copy_asset
.
copy_asset
copia un archivo desde el directorio de assets hacia una ruta definida por la opción dst
.
Por ejemplo para configurar el programa collectd
para tu comunidad puedes crear un archivo collectd.conf
en /etc/lime-assets/community/collectd.conf
y usarlo definiendo la siguiente configuración en el archivo
lime-community
de la siguiente manera:
config copy_asset collectd
option asset 'community/collectd.conf'
option dst '/etc/collectd.conf'
Ejecutando scripts: run_asset
Para configurar a LibreMesh para que se ejecute un script se debe usar la opción run_asset
.
Usar este método de configuración como último recurso si los otros métodos no son suficientes.
run_asset
ejecuta un script del directorio de assets. La ejecución puede ser en el primer booteo
(o sea, cuando inicia luego de realizarse un upgrade de firmware) usando ATFIRSTBOOT
o en cada
vez que se reconfigura LibreMesh (cuando se ejecuta lime-config
) usando ATCONFIG
.
Por ejemplo para ejecutar el script myscript.sh
guardado en /etc/lime-assets/community/myscript.sh
en el primer booteo:
config run_asset a_test_script
option asset 'community/myscript.sh'
option when 'ATFIRSTBOOT'
Este método de configuración reemplaza la funcionalidad de los scripts |