EigenNet
eigenNet
eigenNet è una rete wireless mesh libera e decentralizzata di Pisa. In altri termini il progetto di una rete wireless diffusa su una buona parte del centro di Pisa tramite da Access Point dislocati in vari punti della città. Questi dispositivi devono formare tra di loro una vera e propria rete in cui le intersezioni o "nodi" sono in comunicazione wireless o via cavo tra di loro. La rete connette tutti quelli che si connettono e li tratta alla pari, permettendo a tutti di accedere ai servizi offerti da tutti. I dati sulla rete corrono da un capo all'altro della rete calcolando il percorso migliore.
Chiunque può connettersi alla nostra rete e chiunque può partecipare, anche indipendentemente da noi, al suo ampliamento, non ne vogliamo essere i padroni: infatti se tutti sono 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 partecipare? Ad esempio mettendo una antenna adatta a casa propria!
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 internet gratis è solo uno dei tanti vantaggi che si acquista 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.
Chiedendo aiuto alla comunita'
Noi siamo ben disposti ad aiutarvi a montarr 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 delle antenne. 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, solo per nerds
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
- La nuova frontiera delle reti Articolo con le motivazioni che ci hanno spinto a creare EigenNet.
- EigenNet Pagina informativa su EigenNet, molto meno tecnica di questa.
- Articolo di opinione sulla delibera AGCom del 2011.
- La prima guerra mondiale del Web - Spunti per una discussione sulla rete come bene comune Spunti di riflessione sui tentativi di censura.
- Prospettive di libertà in rete: appunti per la costruzione di una rete libera da controllo e censura Sulla storia dei tentativi (e successi) di censura e controllo di internet.
Voci correlate
BitArno Ethernet Flashing Firmware eigenNet Glossario HowToRete Lista Servers eigenNet Owncloud PicoStation RetroShare Routing Babeld Trashware