Altermesh, BuenosAiresLibre y CompartirEsBueno
index | about | archive | charlas | docs | links
dot
|
git
|
img
|
plt
|
tty
|
uml
Migrando de OLSR
a Batman-adv
Hace años que tengo el NodoOsiux 1 dentro de la red BuenosAiresLibre 2, pero en el último año estoy apostando a un nuevo modelo de red basado en la experiencia del QuintanaCamp 3 en el cual dió origen a dos redes que vienen creciendo día a día, QuintanaLibre 4 y DeltaLibre 5
CompartirEsBueno es la implementación del modelo de red de Altermundi 6 consolidado en el firmware Altermesh 7.
Podría haber elegido otro nombre, más territorial como por ejemplo: «CaballitoLibre» que es dónde está mi nodo, sin embargo elegí un nombre sin territorio y que promueva exactamente el motivo por el cual es bueno interconectar personas mediantes redes, es decir, la necesidad de «compartir».
Algunos sólo estarán interesados en compartir la salida a internet, otros obtarán por compartir servicios y archivos que están en sus computadoras y no asi en internet.
Si bien técnicamente hay una gran diferencia entre el protocolo de ruteo dinámico utlizado por BAL y Altermesh, es decir OLSR 8 y batman-adv 9 respectivamente, ambos permiten escencialmente lo mismo, unir equipos y es posible tener una red híbrida con éstos y otros protocolos al mismo tiempo, algo de esto se puede apreciar en el gŕafico de mi red actual al final de este artículo.
Los invito a armar sus propias redes e interconectarlas mediante Altermesh.
Hay equipo!
Un requisito indispensable es tener un Router Inalámbrico también
conocido como Access Point que sea compatible con el firmware
AlterMesh, actualemente están soportados algunos modelos de
TP-Link con chipset ar71xx
y además algunos modelos de Ubiquiti,
en mi caso comencé por los siguientes modelos:
modelo | flash | ram | radio0 | radio1 |
---|---|---|---|---|
TL-WDR3500ND 10 | 8mb | 128mb | 2.4Ghz | 5Ghz |
TL-MR3020 11 | 4mb | 32mb | 2.4Ghz | - |
TL-WR842ND 12 | 8mb | 32mb | 2.4Ghz | - |
Todos los equipos cuentan con un conector USB que permite utilizar un pendrive para almacenar datos como asi también es posible conectar un dongle como el TL-WN722N para tener una segunda radio para enlazar a otros nodos.
Flasheando AccessPoints
cocinar el firmware
El primer paso es utilizar el chef 13 de Altermundi para «cocinar» una versión de Altermesh, se puede usar la imagen genérica AlterMesh-nodo 14 o crear una propia partiendo de ésta o de alguna otra de las RedesLibres 15 que están haciendo uso del firmware. En mi caso creé el perfil CompartirEsBueno 16, el mismo se puede utilizar tal y como está o incluso tomarlo como base para crear un nuevo perfil de red.
Siempre conviene registrarse en el chef y agregar una llave
ssh
para que podamos acceder al Router de manera segura. Lo
más interesante es que al cocinar un firmware se agrega nuestra
llave para que luego podamos acceder a él para administrarlo
remotamente y como el mismo firmware se puede utilizar en muchos
Routers, entonces podremos tener acceso a todos ellos!
creando la llave ssh
Se puede definir en una sóla línea el tipo rsa
, el archivo dónde
se almacenará ~/.ssh/llave_rsa
y una contraseña cambiame
:
ssh-keygen -t rsa -f ~/.ssh/llave_rsa -Pcambiame
Generating public/private rsa key pair. Your identification has been saved in /home/osiris/.ssh/llave_rsa. Your public key has been saved in /home/osiris/.ssh/llave_rsa.pub. The key fingerprint is: c6:cf:a5:4e:5d:9a:d8:cb:12:4b:9c:66:90:a5:90:67 osiris@inspiron The key's randomart image is: +--[ RSA 2048]----+ | . | | o E . | | + + | | .+ | | So .. . | | . oB* + | | +*o= | | oo. . | | ..o | +-----------------+
- OjO: Es posible crear una llave sin contraseña lo cual resulta
más cómodo para ingresar al Router pero más incómodo y seguro
es usar una contraseña, sino cualquier que se copie nuestra
llave (pública y privada) podrá acceder al Router como si
fuera
root
.
Luego es necesario subir el contenido del archivo
~/.ssh/llave_rsa.pub
que es nuestra llave pública.
La llave privada se encuentra en ~/.ssh/llave_rsa
NO se la debe
copiar a nadie! Es conveniente hacer una copiar de seguridad.
descargar el firmware
Una vez cocinado el firmware, hay que descargarlo:
cd ~/altermesh wget http://chef.mesh.altermundi.net/ls/CompartirEsBueno/r33815/altermesh-ar71xx-generic-tl-MR3020-v1-squashfs-r33815-CompartirEsBueno-nodo-compartir-factory.bin
Si se trata de la primera vez que se realiza la operación se debe elegir una imagen factory, en futuras actualizaciones se debe utilizar una imagen sysupgrade. Obviamente hay que elegir la imagen de acuerdo al modelo de Router que vayamos a flashear.
Es altamente recomendado verificar la integridad del mismo, el
hash debe coincidir con el que se encuentra en el archivo
md5sums
cd ~/altermesh
md5sum *.bin
24f6dfddbe4c1fbf29e74d3c32f24afc altermesh-ar71xx-generic-tl-MR3020-v1-squashfs-r33815-CompartirEsBueno-nodo-compartir-factory.bin
actualizar el firmware
Solo basta conectarse al Router mediante un cable UTP e ingresar mediante un navegador a la dirección http://192.168.1.1, generalmente el usuario y password de fábrica es el mismo, la palabra admin. Buscar en el menú system tools la opción upgrade y seleccionar la imagen a subir.
Es necesario renombrar la imagen a un nombre más corto:
cd ~/altermesh mv altermesh-ar71xx-generic-tl-MR3020-v1-squashfs-r33815-CompartirEsBueno-nodo-compartir-factory.bin compartir-factory.bin
Finalmente subir la imagen y presionar actualizar (este es el
momento de cruzar los dedos :-P
)
Durante la actualización NO se debe cortar la alimentación del
Router como tampoco se debe perder la conexión, por esto
recomiendo desactivar el network-manager
, para establecer una
conexión manual realizar lo siguiente:
sudo ifconfig eth0 192.168.1.22 up
Si todo salió bien, el Router reiniciará en un par de minutos y
se podrá visualizar el ESSID de la red (CompartirEsBueno en mi
caso). Entonces se puede asociar al equipo mediante el
network-manager
mediante el mouse o de manera manual:
sudo ifconfig wlan0 up sudo iwconfig wlan0 essid CompartirEsBueno
conectándose por primera vez
Si mantenemos el cable UTP conectado, ya deberíamos tener acceso al Router, ahora bien, como la idea no es que cualquiera lo administre, es necesario contar con una llave ssh, la misma fue agregada al cocinar el firmware, asi que bastaría acceder mediante ssh al equipo, sólo faltaría saber la dirección IP.
Altermesh cuenta con soporte IPv6 y nuestra notebook/compu también (aunque no lo sepamos) y magicamente cada interfaz de red cuenta con una dirección IPv6 autoasignada que consta de un prefijo + la macaddress de la placa de red.
Es fácil comprobar nuestra dirección IPv6 mediante ifconfig
:
ifconfig wlan0 | grep inet6
Seguro contamos con al menos una IPv6 de alcance «Enlace» o Scope
link-local en inglés. Esto quiere decir que podemos llegar a
cualquier otro equipo con IPv6 por medio de esta interfaz y
nuestra IPv6 es aquella que comienza con fe80
, en mi caso:
fe80::6aa3:c4ff:fecf:b5b4
descubrir routers
Se puede realizar un ping
a una dirección especial para obtener
respuesta de todos los equipos en la red local que son Routers,
normalmente hay un alias ip6-allrouters
para ff02:2
.
Para las direcciones link-local es necesario indicar cuál es la
interfaz de salida (no asi en las IPv6 de alcance global), esto se
hace agregando el símbolo %
y el nombre de la interfaz, por
ejemplo ff02::2%wlan0
:
ping6 -c3 ff02::2%wlan0
PING ff02::2%wlan0(ff02::2) 56 data bytes 64 bytes from fe80::a2f3:c1ff:fe9d:2577: icmp_seq=1 ttl=255 time=1.22 ms 64 bytes from fe80::68d3:ecff:fefb:d060: icmp_seq=1 ttl=255 time=10.4 ms (DUP!) 64 bytes from fe80::a2f3:c1ff:fe9d:2577: icmp_seq=2 ttl=255 time=1.48 ms 64 bytes from fe80::68d3:ecff:fefb:d060: icmp_seq=2 ttl=255 time=8.02 ms (DUP!) --- ff02::2%wlan0 ping statistics --- 3 packets transmitted, 2 received, +2 duplicates, 33% packet loss, time 2002ms rtt min/avg/max/mdev = 1.229/5.305/10.485/4.043 ms
descubrir nodos
Aquellos equipos que no sean Routers pero si forman parte de la
red IPv6 son considerados nodos y responden al alias
ip6-allnodes
o la dirección ff02::1
.
ping6 -c3 ff02::1%wlan0
PING ff02::1%wlan0(ff02::1) 56 data bytes 64 bytes from fe80::6aa3:c4ff:fecf:b5b4: icmp_seq=1 ttl=64 time=0.085 ms 64 bytes from fe80::68d3:ecff:fefb:d060: icmp_seq=1 ttl=64 time=156 ms (DUP!) 64 bytes from fe80::1e4b:d6ff:fed2:f99: icmp_seq=1 ttl=64 time=316 ms (DUP!) 64 bytes from fe80::6aa3:c4ff:fecf:b5b4: icmp_seq=2 ttl=64 time=0.086 ms 64 bytes from fe80::68d3:ecff:fefb:d060: icmp_seq=2 ttl=64 time=9.74 ms (DUP!) 64 bytes from fe80::a2f3:c1ff:fe9d:2577: icmp_seq=1 ttl=64 time=1124 ms (DUP!) 64 bytes from fe80::a2f3:c1ff:fe9d:2577: icmp_seq=2 ttl=64 time=123 ms (DUP!) 64 bytes from fe80::6aa3:c4ff:fecf:b5b4: icmp_seq=3 ttl=64 time=0.088 ms --- ff02::1%wlan0 ping statistics --- 3 packets transmitted, 3 received, +5 duplicates, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 0.085/216.376/1124.681/358.855 ms, pipe 2
accediendo por ssh
Al acceder al Router se solicita la contraseña de la llave ssh
(si fue establecida) y se visualiza la revisión del firmware, en
mi caso r33815
y es un dato a tener en cuenta, a veces algunas
funcionalidades están presentes sólo en algunas versiones o en
ocasiones no funcionan del todo bien en alguna revisión en
particular o incluso en algún modelo de Router.
▶ ssh root@fe80::a2f3:c1ff:fe9d:2577%wlan0 Enter passphrase for key '/home/osiris/.ssh/id_rsa': BusyBox v1.19.4 (2013-01-14 16:57:22 ART) built-in shell (ash) Enter 'help' for a list of built-in commands. _______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ | - || _ | -__| || | | || _|| _| |_______|| __|_____|__|__||________||__| |____| |__| W I R E L E S S F R E E D O M BARRIER BREAKER (Bleeding Edge, r33815) (AlterMesh, maintained by: gui _@_ altermundi.net) (Get your own at: http://chef.mesh.altermundi.net) root@aleosi:~#
Una vez logueados como root
es posible reconfigurar el equipo,
conectarse a otras redes e incluso romper todo, asi que a leer un
poco antes de tipear y darle enter.
También es posible tirar comandos sin loguearse, por ejemplo si quisieramos saber cuánto espacio hay disponible:
ssh root@fe80::a2f3:c1ff:fe9d:2577%wlan0 'df -h'
Filesystem Size Used Available Use% Mounted on rootfs 4.5M 660.0K 3.9M 14% / /dev/root 2.5M 2.5M 0 100% /rom tmpfs 14.3M 1.7M 12.7M 12% /tmp tmpfs 512.0K 0 512.0K 0% /dev /dev/mtdblock3 4.5M 660.0K 3.9M 14% /overlay overlayfs:/overlay 4.5M 660.0K 3.9M 14% /
Bienvenido a IPv6
Uno de los aspectos más interesantes de Altermesh es su manejo de
IPv6, no sólo se obtiene una IPv6 pública para el nodo sino que
además siendo parte de LibreNet6 17 se puede obtener
un rango, en mi caso 2a00:1508:1:f00f::1/64
, y entregar IPv6 a
cada cliente del nodo y nodos asociados!
Actualmente el dominio aleosi.osiux.com
apunta al gateway de la
red CompartirEsBueno:
dig +short aleosi.osiux.com aaaa
2a00:1508:1:f00f::1
Y se puede acceder a él desde cualquier equipo del mundo que cuente con IPv6 ya sea nativo o por medio de un tunel.
Instalar tinc
y babel
Comprobando un enlace
A pesar de la lluvia, Gacq subió a la terraza del NodoPlazaFlores con un WR842ND (flasheado con Altermesh) y una antena grillada y apuntando hacia mi nodo, se puso a escanear y logró ver mi nodo.
Ni bien me avisó, me dispuse a realizar la misma prueba vía ssh
:
iw wlan0 scan | grep -C7 CompartirEsBueno BSS a0:f3:c1:9d:36:66 (on wlan0) TSF: 893337984 usec (0d, 00:14:53) freq: 2412 beacon interval: 100 capability: ESS ShortSlotTime (0x0401) signal: -78.00 dBm <---- a mejorar alineando la antena last seen: 860 ms ago SSID: CompartirEsBueno <---- mi nodo Supported rates: 1.0* 2.0* 5.5* 11.0* 6.0 9.0 12.0 18.0 DS Parameter set: channel 1 TIM: DTIM Count 0 DTIM Period 2 Bitmap Control 0x0 Bitmap[0]0x0 ERP: Barker_Preamble_Mode Extended supported rates: 24.0 36.0 48.0 54.0 HT capabilities: Capabilities: 0x11ec
Es sólo una prueba y será necesario alinear correctamente las
antenas para mejorar el nivel de señal (-78.00 dBm
), pero es una
buena noticia que los nodos se hayan visto en el primer intento.
Graficando la red
Ahora hay más de una manera de conectarse a cada equipo y debido a
ello se me ocurrió graficar los enlaces IPv4 e IPv6 (globales y
de enlace local). Para esto utilicé nwdiag
18 que
permite de manera simple y cómoda editar un archivo de texto plano
con cada equipo para luego generar el gráfico final.
Cual es el próximo paso? [6/10]
- compartir lo aprendido.
- actualizar este documento.
- flashear MR3020.
- agregar agente altermap a los APs.
- flashear Ubiquity Bullet.
- actualizar WR842ND con soporte USB storage.
- agregarle un WN722N al MR3020 con antena direccional o panel.
- actualizar versión del WDR3500, actualmente no funciona eth0 ni eth1.
- conseguir buenas antenas para el WDR3500.
- enlazar a NodoPlazaFlores y todo aquel que quiera conectarse.
Soporte usb-storare
Es posible agregar un pendrive o un disco externo en formato ext4
directamente el router y usarlo como medio de almacenamiento, sólo
es necesario incluir los siguientes paquetes:
kmod-usb-storage uhttpd block-mount kmod-fs-ext4
ChangeLog
2022-11-13 21:55
agregar y corregir footnotes en Altermesh, BuenosAiresLibre y CompartirEsBueno2022-11-13 20:05
agregar tags OpenGraph a Altermesh, BuenosAiresLibre y CompartirEsBueno2022-11-13 20:39
agregar y actualizar tags OpenGraph2019-04-18 00:21
Agregar hora en header date2019-04-18 00:01
Corregir identación header #+INCLUDE:2015-07-03 04:31
@ 00:05 hs - elimino #+OPTIONS: de todos los archivos excepto header.org2015-07-03 03:59
@ 01:00 hs - reemplazo :alt por :title y cambios menores2014-04-22 11:35
@ 00:34 hs - Agrego timestamp:nil2013-08-09 23:34
@ 00:02 hs - Agrego comentarios en Altermesh BAL CompartirEsBueno2013-06-11 01:40
@ 01:00 hs - mejoro CSS, elimino timestamp y reorganizo blog2013-06-05 02:58
@ 02:30 hs - responsive max-width css + refactor2013-04-24 08:04
@ 01:50 hs - migro a org 8.02013-04-10 09:46
@ 00:10 hs - agrego huayra y 1eslmc, algunas correcciones menores2013-04-03 03:20
@ 00:05 hs - correcciones menores CompartirEsBueno2013-04-03 03:31
@ 04:30 hs - Agrego Altermesh BAL y CompartirEsBueno