EigenNet

Da EigenWiki.
EigenNet.png

eigenNet

EigenNet è una rete wireless mesh libera e decentralizzata di Pisa. In altri termini si tratta di una rete wireless diffusa su una buona parte del centro di Pisa tramite antenne dislocate in vari punti della città. Questi dispositivi formano una vera e propria rete in cui le intersezioni o "nodi" sono in comunicazione wireless o via cavo tra di loro. La rete unisce tutti quelli che si connettono e li tratta alla pari, permettendo a tutti di accedere ai servizi offerti da tutti. Oltre ad essere paritaria, la rete è anche ridondante, cioè ogni dispositivo si occupa anche di rilanciare il segnale della rete.

I dati sulla rete corrono da un nodo all'altro calcolando il percorso migliore, secondo un complesso algoritmo di "routing".

Clicca qui per una vedere delle diapositive su eigenNet e qui per vedere il video in cui Gioacchino Mazzurco espone le diapositive.

Filosofia

EigenNet è autogestita. Chiunque può connettersi alla nostra rete e chiunque può partecipare, indipendentemente da noi, al suo ampliamento. Non ne vogliamo essere i padroni e per questo abbiamo costruito l'infrastruttura in modo decentralizzato. Infatti se tutti fossero padroni di un pezzetto di rete allora nessuno avrà mai il potere per censurarla. Se ti chiedi quali ragionamenti ci hanno spinto a far partire un progetto così impegnativo dai un'occhiata agli approfondimenti.

Come funziona

I nodi partecipano alla rete tutti in modo paritario e sono connessi fra loro solitamente tramite wireless ma dove possibile anche tramite link ethernet. Stiamo pensando anche ai primi link in fibra ottica. I nodi sono formati fisicamente da antenne poste sui tetti delle case pisane e l'hardware da noi usato si compone di Ubiquity PicoStation M2 HP (da esterni, omnidirezionali, circa 70 euro, per una casa vicina ad un altro nodo della nostra rete dovrebbe bastare una di queste), Ubiquiti NanoStation M5 (da esterni, settoriali, da 50 a 65 euro, necessaria per collegare edifici lontani pochi km dal resto della rete), Ubiquiti AirGrid M5 HP (da esterni, direzionali, da 47 a 54 euro, collegamenti a lunghezze di parecchi km) e Fonere (da interni, omnidirezionali, poche decine di euro) ma possiamo acquistare o riutilizzare una ampia gamma di antenne in caso di necessità specifiche. Su queste antenne viene installata una versione modificata di OpenWRT, pronta per essere usata con EigenNet.

Se vuoi sapere subito come puoi partecipare vai alla sezione #Come partecipare.

Status - Mappa di EigenNet

Al momento EigenNet è ancora in fase sperimentale, ma sta crescendo. La struttura della rete osservabile tramite il map server messo a disposizione dagli amici di Ninux (per capire il map server:

  • segnaposto arancioni = nodi potenziali,
  • verde = solo per struttura della rete,
  • blu = anche possibilità di connessione).

I servizi offerti

Avere la possibilità di condividere internet è solo uno dei tanti vantaggi che si ha facendo parte di EigenNet, e non lo riteniamo il più importante, per quanto nonostante abbattere il digital divide sia una missione nobile. Rimandiamo agli approfondimenti chi vuole sapere perchè abbiamo creato EigenNet. EigenNet è concepita per dare servizi e contenere siti, non solo per dare accesso ad Internet. Chiunque può connettersi ad EigenNet e offrire, ad esempio, un nuovo sito senza esser censurato. Alcuni esempi di questi servizi sono:

  • poter usare l'ipv6 ossia poter sopravvivere alla fine degli ipv4;
  • poter gestire liberamente su un proprio pc un sito o qualsiasi servizio che sarà accessibile dall'interno della rete (sfruttando l'alta velocità di trasferimento dati della nostra rete ed una bassa latenza: da 1 a 5 millisecondi per ogni antenna che i dati devono passare) ma anche dall'esterno da chi ha già un ipv6;
  • libero scambio di ogni tipo di dato (per avere la massima sicurezza nello scambio di file consigliamo l'uso del software RetroShare che utilizza la cifratura con PGP).

Features

Dettagli tecnici sulle features al momento implementate sulla nostra rete: EigenNet Mobile Ad Hoc Network

  • Native auto-configuration
  • Low cost infrastructure (60 - 200 each node)
  • Perfect integration with existent infrastructure
  • Can create multiple separated native layer 2 network on same mesh
  • Highly Scalable [3]
  • Native Mobility and client Roaming support
  • Layer 3 agnostic ( EigenNet doesn't need to regard about ipv6 ipv4 etc etc, EigenNet is transparent for communication at layers upper 2 )
  • Routing Scheme agnostic ( eigenNet is transparent for communication at layers upper 2 ).See also Routing EigenNet.
  • Routing managed at level 2 by B.A.T.M.A.N. Advanced and at level 3 by Babeld
  • No need of centralized or external control
  • Distributed network (no one possess the entire network, no one is responsible of all network)
  • Due to his distributed nature no cost/licenses/fees related to the use of open spectrum
  • High resilience due the mesh nature
  • Used frequencies are 2.4GHz (802.11g, mostly) and 5GHz (802.11a)
  • We have a /48 subnet of IPv6
  • No cost for software licenses/fees everything used is released under GPL or less restrictive Licenses

Il firmware di EigenNet

Il firmware è il sistema operativo che viene flashato nelle antenne, noi siamo partiti dall'ottimo OpenWRT per realizzare il nostro firmware. In particolare implementa un modulo nel kernel linux, Batman adv, che serve per gestire il routing tra le antenne (ossia che percorso far fare ai dati) ed ha la peculiarità di lavorare a Layer 2. Il firmware eigenNet con il suo modulo eigennet-autoconf, si occupa di far sì che i dispositivi possano immediatamente entrare a far parte della nostra rete configurandoli automaticamente. Ulteriori informazioni sull'auto-configurazione si trovano qui e qui.

Come partecipare

Per entrare a far parte della rete bisogna innanzitutto aggiungere un segnaposto sul map server ed è caldamente consigliata l'iscrizione alla apposita mailing list locale: mailing list eigenNet ed a quella nazionale: mailing list Ninux.

Chiedendo aiuto alla comunità

Noi siamo ben disposti ad aiutarvi a montare una antenna che estenda eigenNet, prima di tutto contattateci, possibilmente fatevi conoscere di persona passando al casottino altrimenti possiamo direttamente venire da voi per un sopralluogo (se dal mapserver sembra possibile fare il collegamento). E' richiesto il pagamento dell'attrezzatura necessaria al montaggio fisico del nodo e dei componenti (indicativamente: sugli 70-80 euro di antenna Ubiquity PicoStation o NanoStation, qualche decina di euro per cavo di rete FTP cat5 e per il corrugato). Chiaramente è possibile entrare nella rete anche con un access point wireless già in vostro possesso, controllate che sia compatibile con OpenWrt e che abbia almeno 4 MB di memoria Flash. Il servizio è gratuito (siamo volontari) e il supporto tecnico è offerto da eigenLab ( ma coerentemente con la nostra filosofia di AutoFormazione vi incoraggiamo a sperimentare e a cercar di risolvere i problemi che potrebbero sorgere, anche se solitamente si risolvono staccando e riattaccando la presa di corrente dell'antenna ). Da non dimenticare che fortemente consigliato il posizionamento dell'antenna sul tetto, dunque è necessario poterci salire ( siamo atletici ma non possiamo nè volare nè andare contro il parere del condominio) ed è necessario trovare il modo di alimentare l'antenna, basta un cavo sottile che parta dal sottotetto (se di proprietà) o da casa vostra, nel sopralluogo studieremo le possibilità, nel caso peggiore potremo posizionare l'antenna fuori da una finestra o in altri luoghi più convenienti.

Installandosi un'antenna da soli

Una volta segnalata la propria posizione sul mapserver bisogna trovare/acquistare un access point compatibile con OpenWRT ed almeno 4 MB di memoria Flash (non di quella RAM). Abbiamo scritto alcune istruzioni per l'hardware che usiamo solitamente: Fonera (poche decine di euro, da interni), PicoStation (circa 70 euro, da esterni) e NanoStation (da 50 a 65 euro, da esterni). Dunque c'è da individuare quale "target" è adatto ad essere installato sulla nostra antenna (informazione spesso recuperabile sempre nella tabella dell'hardware compatibile con OpenWRT). Se il target è atheros o ar71xx le immagini già compilate possono esser trovate qui. Altrimenti è necessario compilare il firmware seguendo le istruzioni reperibili Flashing (conoscendo l'inglese ed avendo Linux) e qui. La compilazione può durare delle ore, dipende dalla macchina su cui si compila. Per l'installazione del firmware (ossia il flashing) ottenuto si può far riferimento alle istruzioni valide per l'installazione di OpenWRT sul proprio access point.Dopo aver completato la #Configurazione dell'antenna questa sarà da fissare sul tetto di casa (ma solo se l'antenna è da esterni) e dovrà essere alimentata. Nel caso delle PicoStation è possibile posizionare nel sottotetto o dentro casa vostra il POE collegato alla 220V da cui parte un cavo di rete che porta 12V fino all'antenna all'esterno. Per diminuire i problemi elettrici che possono rovinare l'antenna sul tetto è preferibile utilizzare un cavo schermato FTP per collegare il POE all'antenna in modo da avere anche la messa a terra. Per maggiori dettagli: Montaggio nodi. Infine inviateci i dati necessari a compilare la scheda del vostro nodo sul mapserver (dovrebbe essere sufficiente l'output del comando ip address show che potete lanciare alla fine della configurazione).

Senza antenna, tunnel VPN

Se si è curiosi di sperimentare i servizi interni alla nostra rete ma non si ha la possibilità di raggiungerla fisicamente è possibile collegarsi tramite una VPN (VPN su Wikipedia) ad uno dei nostri server. Ecco le istruzioni per connettersi alla nostra VPN .

Configurazione dell'antenna

Connettersi all'antenna

Una volta installato il firmware ci si può connettere all'antenna via cavo ethernet in ipv6, per scoprire l'ip dell'antenna date

ping6 ff02::1%(interfaccia usata per la connessione)

ie

ping6 ff02::1%eth0

Per pingare in broadcast e, guardando il mac address dell'antenna, potete trovare l'antenna

Per connettersi all'antenna bisogna possedere la chiave dei nodi (se avete compilato l'immagine con firmware branch pisa) col comando

ssh -i [patch della chiave dei nodi] root@[ipv6 dell'antenna]%[interfaccia usata per la connessione]


Ecco come ricavare l'ipv6 della propria antenna dal mac address:

    iwlist scan |grep -B 5 -i eigen 

la stringa dopo Address è il mac address dell'antenna. Come esempio prendiamo 1a:2b:3c:4d:5e:6f. Dopo aver tolto dal mac address metà dei due punti c'è da aggiungere il prefisso 2001:1418:1a9:eeab: così da avere qualcosa tipo 2001:1418:1a9:eeab:1a2b:3c4d:5e6f. Ora ci si potrà connettere con:

    ssh root@2001:470:ca42:ee:ab:1a2b:3c4d:5e6f 

una volta connessi all'antenna è possibile, tra le altre cose, verificare quali altre antenne riesce a raggiungere direttamente o passando da altre antenne e con quale qualità usando il comando:

    batctl o 

I file di configurazione

Il file di configurazione principale del nostro firmware può esser modificato (una volta entrati nell'antenna usando ssh) con:

    vi /etc/config/eigennet 

premere "i" per iniziare le modifiche, premere "alt + :" e poi "wq" invio per salvare e chiudere il file. Per applicare ogni modifica, sempre nel file di configurazione va impostata

    option 'bootmode' '1' 

e riavviata l'antenna con

    reboot && exit 

Le opzioni più interessanti che si possono modificare sono:

    option 'wifi_clients' 'true' 

che permette di connettersi alla antenna via wireless e fa annunciare una rete accessibile di nome "eigenNet" (scrivendo false l'antenna funzionerà solo da collegamento tra più punti della rete ed annuncerà solo una rete non accessibile di nome "www.eigenlab.org-www.ninux.org").

    option 'apSSID' 'eigenNet' 

il nome della rete accessibile.

    list 'resolvers' '2001:470:ca42:ee:ab::1000 8.8.8.8' 

è l'elenco dei DNS, siete lberi di usarne di diversi, ad esempio un vostro DNS, purchè non ci siano collisioni con il nostro.

Altre informazioni possono essere reperite qui e qui.

Approfondimenti

Voci correlate

BitArno Ethernet Flashing Firmware eigenNet Glossario HowToRete HowToBatman Lista dei server di eigenNet Owncloud PicoStation RetroShare Routing Babeld Trashware