Características del firmware Nightwing

De LugroMesh

Tabla de contenidos

Características del firmware Nightwing

Nightwing está basado en Openwrt, una distribución GNU/Linux para dispositivos embebidos (o empotrados) compilada para procesadores SoC Atheros (system on chips atheros).

El software que utiliza para gestionar la red mesh es B.A.T.M.A.N, en su versión Experimental (BMX) (compatibility version 10).

Fue desarrollado con la finalidad de compartir uno o varios accesos a internet en ambientes urbanos, pequeñas comunidades o edificios sin necesidad de una administración centralizada ni personas con mayores conocimientos técnicos.

Como es inherente a las redes mesh, permite el despliegue de un sistema que provea acceso libre a internet a un área o comunidad en forma colaborativa. Donde los nodos, que posean en forma individual una conexión a internet, propaguen su área de cobertura hacia otros nodos participantes de la mesh, extendiendo la cobertura general. La participación de los nodos puede ser dinámica, tolerando que los mismos se incorporen o salgan de la red sin disturbar el funcionamiento general (dentro de límites razonables).

Versión actual

Sus características más sobresalientes son:

Zero-conf

Todas las interfaces, tanto inalámbricas como alámbricas, son configuradas automáticamente basandose en la mac address que cada router tiene individualmente en su dispositivo wifi Atheros. De esta manera, todos los dispositivos Nightwing que se encuentren en un mismo canal y con el mismo essid, establecerán automáticamente una red mesh y se auto asignarán los roles que les corresponda. Este rol puede ser el denominado modo "Gateway", que será aquél que posea su propia conexión a internet, o modo "Cliente", que será quien contacta a un Gateway y amplia la cobertura del mismo. Luego del inicio pueden realizarse configuraciones adicionales de acuerdo a las necesidades del usuario.

VAP (Virtual AP):

Además de participar en la mesh, cada nodo provee cobertura en su área de influencia en modo AP (access point). Comportándose como un Host-Spot normal y permitiendo a usuarios móviles o fijos acceder a internet por medio de un AP abierto, sin encriptación. En este caso, es posible conectarse rápidamente desde cualquier sistema operativo, y se accede a internet previo paso por un portal cautivo (Captive Portal) que controla la duración de la sesion y el ancho de banda asignado a cada conexión abierta. También proveen servicio a través de un segundo VAP, encriptado con clave WPA2 y que permite utilizar un nodo en un ambiente privado, extendiendo también el acceso a la red local donde el mismo se encuentre conectado.

Seguridad:

Todo nodo puede ser conectado a una red local (LAN) privada sin comprometer la seguridad de la misma, es decir que los usuarios externos conectados al AP abierto quedan aislados completamente del trafico local y viceversa, y entre ellos mismos. En el modo cliente, es decir un nodo que no tiene conexión a internet propia, funciona en su red local como servidor de dhcp y default gw. Configurando automáticamente los equipos de su red local para que accedan a internet, de la misma manera que un modem de adsl lo haría.

Funcionamiento inteligente:

Cuando un nodo fuera conectado a una red local y no encontrara acceso a internet en forma local o a otro nodo a quien enlazarse, no interferirá con la configuración previa existente en dicha lan.


Aspectos técnicos

Al iniciar el nodo

El núcleo del funcionamiento zero-conf de nightwing es el script /etc/init.d/nightwing. Este script, que se ejecuta luego del arranque normal de OpenWrt, crea y configura las interfaces eth0 (red local) , ath0 (VAP abierto), ath1 (VAP encriptado) y ath2 (mesh en modo adhoc demo).

En este punto el nodo debe decidir su rol, es decir que si la interfase eth0 obtuvo dirección de ip automáticamente y es posible acceder a internet (ping a varios root-servers) el nodo pasará a modo Gateway. El demonio batmand se ejecutará sobre la interface ath2, anunciándose como gateway al resto de la malla.

Cuando se ejecuta el scrip nightwing, las interfaces mencionadas se reconfiguran a partir de la mac address de la interfase Atheros y las mismas quedan en las siguientes subredes:


  • ath0 y ath1 en la subred 10.x.x.y, donde los octetos "x" se obtienen de la mac y el octeto "y" resulta de dividir el espacio de direccionamiento en tres subredes. La tercer subred se utilizará en eth0, como se explicará más adelante.
  • ath2 es configurada en la subred 5.x.x.x, donde los tres últimos octetos son calculados a partir de la mac address.
  • eth0 quedará configurada por DHCP en caso que el nodo este conectado a una red local que tenga un servidor a tal efecto (generalmente un modem adsl o un cable modem).


Terminada la configuración de las interfaces locales, se reconfigurá el servidor dnsmasq para que ofrezca servicios de DHCP y DNS en las interfaces ath0 y ath1.

Si la interface eth0 no se configuro automáticamente, el nodo intentará asumir el rol de Cliente lanzando el demonio bmxd en modo cliente y esperando contactar a un gateway vecino. En caso de lograrlo, reconfigurará la interface eth0 con un servidor de DNS y DHCP para servir a la red local. Si nunca contacta a un gateway, permanecerá indefinidamente intentándolo.

Si la interface eth0 fuera configurada automáticamente pero no tuviera acceso a internet, el nodo no asumirá rol alguno y se reiniciará, evitando interferir con la configuración de la red local a la que se encuentre conectado.

Si la interface eth0 no hubiese obtenido dirección de IP en forma automática, por ejemplo, en el supuesto caso de que el módem de ADSL encargado de hacerlo se encontrara fuera de servicio; se asumirá el rol de nodo cliente. Pero una vez que se restableciera el servicio de internet, automáticamente se reiniciará para asumir el nuevo rol de gateway.

Además, permanentemente un proceso en el cron prueba constantemente que los nodos gateway permanezcan con acceso a internet, y en caso de perderla, se reiniciarán automáticamente para completar un nuevo ciclo de definición de rol.

A fin que todos los nodos clientes participantes de la mesh puedan cambiar de gateway al cual asociarse, toda la malla utiliza como servidores de nombre a los DNS provistos por OpenDNS. Que son de libre acceso y permiten además, si fuera necesario, establecer filtros de contenido. Característica particularmente útil cuando de trata de un Hot-Spot publico.

Posibilidad de configuraciones adicionales

Por defecto el firmware tiene valores establecidos para que pueda formar parte de la red. Sin embargo, existen aspectos que requieren configuración por parte del usuario de acuerdo a sus preferencias (claves de root, wifidog gateway, WPA2, modo wireless, modo antena, servidor de log, etc) y existen otros aspectos que pueden ser utilizados por quienes quieran utilizar nightwing para otra red que no sea Lugro-Mesh (ej: servidor wifidog, servidor vis, BSSID, etc). Para todo esto se puede utilizar el programa nw_conf incluido en el firmware y que se accede mediante el ingreso por ssh al mismo. A partir de Nightwing versión 0.7.5 se pueden realizar configuraciones básicas vía una página web. Ver: Ingresar al router una vez que ha sido flasheado con Nightwing

Herramientas personales
Nightwing