dimarts, 1 de gener del 2008

Posta en marxa de SJD-mesh

Document en construcció: actualitzat a 12/4/2012

BATMAN Better Approach To Movile Ad-hoc Networking

La instal·lació a base de nodes mesh es bassa en el protocol BATMAN.

BMX Better Management Experience


Ubuntu:

Per instal·lar i gestionar el software dels nodes Alix / mesh /BATMAN ho podem fer des de qualsevol versió de Linux. En aquesta guia, farem servir l'ubuntu 8.04, el podeu descarregar des de:

http://ftp.caliu.cat/pub/distribucions/ubuntu/releases/hardy/ubuntu-8.04.1-desktop-i386.iso

Disposar de un CD per fer correr una versió Live sobre qualsevol pc es una bona opció començar a treballar amb el mesh sense necesitat de disposar de una màquina amb Linux.

Al fitxer files_gsf20081202.tgz hi ha les carpetes amb els fitxers de configuració.

Al fitxer openwrt-x86-squashfs.image.bz2 hi ha una imatge de l'aplicació.


Com gravar la imatge a la flash:

Descomprimirem el fitxer: bzip2 -d openwrt-x86-squashfs.image.bz2

I després en farem un volcat directe a la flash. Atenció a fer servir el dispositiu adequat. Un error en aquest, pot borrar tot el nostre disc dur. Amb aquestes ordres de Linux podrem saber a on tenim la nostra flash:

mount
fdisk -l /dev/sda
ls -l /dev/sd*

I amb aquesta fer el volcat:

dd if=openwrt-x86-squashfs.image of=/dev/sd? substituint ? per el nostre dispositiu.

Si es vol tornar a repetir la operació, caldrà eliminar les particions de la Flash abans de fer el volcat. (?). Per verificar si la Flash esta gravada correctament:

md5sum (?)

Els fitxer gravats a la Flash son etx2 per el Grub i el nucli i squashfs per la resta.


Com obtenir una IP per el nostre TRASTO:

Des de l'aplicació de guifi.net, i nomes dins d'una zona definida com adhoc, crearem el nostre trasto i la nostra ràdio. Això ens donarà una IP de la zona a on estem.

Sempre es millor posar-se en contacte amb algun administrador de la zona.


Quin es el paper que poden fer els TRASTOS:

* "Servidor d'Internet - Client dhcp" <- Conectem a la eth0 la nostre xarxa amb internet * "Client d'Internet - Servidor de dhcp" <- Conectem a la eth0 els clients.

Que hem de configurar per personalitzar el nostre TRASTO:


Hem de posar la IP
-- l'obtenim de guifi.net

Hem de posar la MAC a les ràdios
-- ?

Hem de definir el canal a les radios
option chanel 01
option chanel 106
option chanel 130

Hem de definir el modo
option agmode 11a 5ghz

Hem de posar la SSID a les ràdios
-- ath0 ssid = ch130.mesh.guifi.net 5ghz
-- ath1 ssid = ch01.mesh.guifi.net 2,4ghz
-- ath1 ssid = ch106.mesh.guifi.net 5ghz

Hem de posar la BSSID a les ràdios
-- ath0 bssid = 82:ca:ff:ee:ba:be
-- ath1 bssid = 01:ca:ff:ee:ba:be 2,4ghz
-- ath1 bssid = 6a:ca:ff:ee:ba:be 5ghz

Definir si la radio ath1 es adhoc (mesh) o AP (?)
(això no ha funcionat. Penja la màquina)
-- en el fitxer /etc/config/wireless
option mode ap
option ssid ap.guifi.net
comentar el option bssid

Definir el rang que ha de donar el dhcp
Definir el tipus de rang.
Definir si es gateway (servidor d'Internet) o no.
Posar adreça fixa, mascara i porta d'enllaç si es el cas.
Publicar, si es vol, un servidor.


Com connectar amb el nostre Alix

La millor manera per arrivar al nostre trasto des del Ubuntu es via Ethernet. Això presupossa que el Alix està funcionant. En cas contrari caldrà fer-ho via RS232.

Cal que l'Ubuntu estigui en modos de obtindre una adreça des d'un dhcp. El dhcp de l'Alix ens donarà una adreça al nostre Ubuntu que podrem comprovar amb:

ifconfig


Si tot es correcte, ja podrem conectar amb l'Alix:

ssh root@IP_TRASTO
amb passwd XXXXX


Com comprovar quins altres nodes mesh estan al nostre abast:

wlanconfig ath0 list (5Ghz)
wlanconfig ath1 list (5Ghz o 2,4Ghz segons estigui configurat)

iwlist ath0 scan (5Ghz)
iwlist ath1 scan (2,4Ghz)

iwconfig (?)

root@IP_TRASTO:~# bmxd -cd 8

Ens donarà un llistat de tots els altre nodes mesh que escolta i enllaça el nostre.
Normalment ath0 es el de 5ghz i el ath1 el de 2,4ghz.

root@IP_TRASTO:~# bmxd -cd 2

Ens donarà el gateway i túnel en cas que hi sigui (?)

root@IP_TRASTO:~# bmxd -cd 9

Ens dirà a quines xarxes tenim accés.


Quins protocols corrent en el nostre Alix?

bat, (?)
bmx, (?)
dh, (?)


Quins ports tenim oberts?
no funciona si nmap no esta instal·lat als Alixs

nmap -sT IPmaquina//IPenel router_proxy


Com utilitzar un gateway concret?

Si tenim diferents gateways al nostre abast, el sistema escollirà el millor. Si volem sortir per un de específic podem fer:

Opció 1:
posar la IP del gateway que prefereixis a la variable bmxd.general.preferred_gateway i reiniciar el bmxd

Alerta no ho feu connectats a un aparell per una IP de batman, perdreu la connexió a mig proces:

ssh root@IP_TRASTO

uci set bmxd.general.preferred_
gateway=IP_GATEWAY_PREFERIT
/etc/init.d/bmxd stop
/etc/init.d/bmxd start




Opció 2: 
bmxd -cp IP_GATEWAY_PREFERIT

Aquesta configuració es perd en reiniciar.


Per verificar el gateway pel que sortim:
bmxd -lcd2


Per verificar-ho:

root@IP_TRASTO:~# uci show bmxd
bmxd.general=bmxd
bmxd.general.interface=lo:bmx eth0:bmx eth1:bmx ath0:bmx ath1:bmx
bmxd.general.gateway_class=
bmxd.general.originator_interval=500
bmxd.general.preferred_gateway=
bmxd.general.visualisation_srv=
bmxd.general.misc=--netb --one-way-tunnel=4 --no-tunnel-rule 172.16.0.0/14 --no-tunnel-rule 172.24.0.0/14
bmxd.general.announce=172.28.1.17/28 172.29.1.17/28 172.30.1.17/28 172.31.1.17/28
bmxd.general.routing_class=3


Com connectar via Internet?

Per ssh desde un terminal de Linux  http://sjdjujol.dyndns.org

Per ssh desde Windows, i fent servir un terminal PuTTY  http://sjdjujol.dyndns.org

Per Navegador :

Estat de la xarxa:

http://sjdjujol.dyndns.org/cgi-bin/cgi-bin-bmxd


Mapa de la xarxa:

http://sjdjujol.dyndns.org/map/


Accés al web de configuració del trasto:

http://sjdjujol.dyndns.org/cgi-bin/webif/info.sh


Accés al web de personalització del trasto des de la xarxa mesh:

http://10.139.xxx.xxx/cgi-bin/cgi-bin-meshconfig



Com estem sortint a Internet? (?per completar)

root@IP_TRASTO:~# wget -qO - http://www.showmyip.com | grep displaycopy
displaycopy("IP____");
displaycopy("");

La pagina aquesta et diu la IP de Internet que estas utilitzant