123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582 |
- <!doctype html>
- <html lang="en">
- <head>
- <meta charset="utf-8">
- <title>Libre-Mesh</title>
- <meta name="description" content="Ninux/Libre-Mesh presentation at Nack 2017">
- <meta name="author" content="Cristina Carnevali" >
- <meta name="apple-mobile-web-app-capable" content="yes" />
- <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
- <link rel="stylesheet" href="css/reveal.min.css">
- <link rel="stylesheet" href="css/theme/cri.css" id="theme">
- <!-- For syntax highlighting -->
- <link rel="stylesheet" href="lib/css/zenburn.css">
- <!-- If the query includes 'print-pdf', include the PDF print sheet -->
- <script>
- if( window.location.search.match( /print-pdf/gi ) ) {
- var link = document.createElement( 'link' );
- link.rel = 'stylesheet';
- link.type = 'text/css';
- link.href = 'css/print/pdf.css';
- document.getElementsByTagName( 'head' )[0].appendChild( link );
- }
- </script>
- <!--style>img{height:40vw !important;min-width:auto !important; width:auto !important;}</style-->
- <!--[if lt IE 9]>
- <script src="lib/js/html5shiv.js"></script>
- <![endif]-->
- </head>
- <body>
- <div class="reveal">
- <!-- Any section element inside of this container is displayed as a slide -->
- <div class="slides">
- <section>
- <h1>Ninux</h1>
- <h3>Wireless Community Network</h3>
- <p>
- <small>Ignifugo (<a href="http://wiki.bologna.ninux.org">NinuxBO</a>).</small>
- </p>
- <p>
- <small>Napoli 2017 - Nack</small>
- </p>
- <p>
- </p>
- </section>
- <section>
- <h2>chi sono</h2>
- <p>Sono una frontend developer, partecipo alla comunità Hackmeeting e provo a fare il mio meglio in alcuni progetti...</p>
- </section>
- <section>
- <h2>Uno di questi è..</h2>
- <p class="fragment">Una organizzazione indipendente di contadini per l'autonomia alimentare dalle GDO</p>
- <img src="img/campiaperti.jpg"/>
- </section>
- <section>
- <p>Quindi questa estate è successo che sono andata a vivere in campagna!</p>
- <img src="img/zoom_bolognaNinux.png"/>
- </section>
- <section>
- <p>50 km da Bologna!</p>
- <img src="img/casaportico.jpg"/>
- </section>
- <section>
- <p>così</p>
- <img src="img/castello_da _cabat.jpg"/>
- </section>
- <section>
- <h2>Quindi questa estate è successo che sono andata a vivere in campagna e..</h2>
- <p class="fragment">spendo di più perchè faccio pià telefonate</p>
- <p class="fragment">internet è molto più lento perchè non sono zone interessanti per gli ISP</p>
- <p class="fragment">sei fuori dalla città e quindi le tue comunicazioni diventano super importanti</p>
- <p class="fragment">intensifichi le comunicazioni con quelli che vivono (+o-) vicino a te</p>
- </section>
- <section>
- <!-- Nuova diapo --> <section data-background="img/network.jpg" style="background: rgba(255,255,255,0.9);">
- <h2><span style="color:black;">Costruire una rete diversa</span></h2>
- </section>
- <section >
- <h2>In un altro modo: </h2><p> costruirci una infrastruttura dal basso</p>
- <img style="border:0px" width="700" src="img/ninux.png" alt="ninux">
- </section>
- <!--section data-markdown>
- <script type="text/template">
- <h2>Storia di Ninux</h2>
- <ol>
- <li value="2002">Nino fonda Ninux a Roma: desiderio di sperimentare</li>
- <li value="2005-2009">sperimentazione servizio internet per le famiglie e spazi sociali</li>
- <li value="2010">La rete parte anche a Pisa e a cascata in [altre città](http://map.ninux.org)</li>
- <li value="2013">NinuxRoma [entra davvero](http://www.namex.it/en/who/members) a far parte di internet
- <li value="2014">Nasce pure Ninux Verona</li>
- </ol>
- </script>
- </section-->
- <section><img src="img/mappa_Italia.png"></section>
- <!-- Nuova diapo --> <section>
- <h2>Perchè?</h2>
- <ul>
- <li style="margin: 3px 0;" class="fragment">Performance
- <ul style="list-style-type: none;"><li style="font-size: smaller;">una connessione veloce con chi conosci!</li></ul></li>
- <li style="margin: 3px 0;" class="fragment">Hacktivism
- <ul style="list-style-type: none;"><li style="font-size: smaller; line-height: 1;">Senza censura, network neutrality, servizi decentralizzati e infrastruttura.</li></ul></li>
- <li style="margin: 3px 0;" class="fragment">Privacy
- <ul style="list-style-type: none;"><li style="font-size: smaller;">gestione indipendente dagli ISP, software open-source... e presto anche l'hardware!</li></ul></li>
- <li style="margin: 3px 0;" class="fragment">Resiliente
- <ul style="list-style-type: none;"><li style="font-size: smaller;">per avere un network che resiste alle catastrofi</li></ul></li>
- <li style="margin: 3px 0;" class="fragment">Contro il digital divide.
- <ul style="list-style-type: none;"><li style="font-size: smaller;">porta la connessione dove hai voglia!</li></ul></li>
- </ul>
- </section>
- <section >
- <h2>Perchè? (2)</h2>
- <ul>
- <li style="margin: 3px 0;" class="fragment">Un network modulare e flessibile</li>
- <li style="margin: 3px 0;" class="fragment">Per condividere esperienza e conoscenza</li>
- <li style="margin: 3px 0;" class="fragment">Meno commerciale, più comunitario</li>
- <li style="margin: 3px 0;" class="fragment">DIY
- <li style="margin: 3px 0;" class="fragment">Autonomia tecnica</li>
- </ul>
- </section>
- <section>
- <h3> Pico Peering Agreement</h3>
- <p style="font-size: smaller"> 1. Free Transit: </br>
- The owner agrees to provide free transit accross their free network.
- The owner agrees not to modify or interfere with data as it passes through their free network.
- </br>
- 2. Open Communication:
- </br>
- The owner agrees to publish the information necessary for peering to take place
- This information shall be published under a free licence
- The owner agrees to be contactable and will provide at least an email adress
- </br>
- 3. No Warranty:
- </br>
- There is no guaranteed level of service
- The service is provided "as is", with no warranty or liability of whatsoever kind
- The service can be scaled back or withdrawn at any time with no notice
- </br>
- 4. Terms of Use:
- </br>
- The owner is entitled to formulate an 'acceptable use policy'
- This may or may not contain information about additional services provided (apart from basic access)
- The owner is free to formulate this policy as long as it does not contradict points 1 to 3 of this agreement (see point 5)
- </br> 5. Local Amendments:
- </br>(to be filled in ad-hoc by the node owner as this document is implemented)
- </p>
- </section>
- </section>
- <section>
- <!-- Nuova diapo --> <section>
- <h2>Che servizi trovo in Ninux?</h2>
- <p class="fragment">Nessuno!</p>
- <div class="fragment"><p>Lo scopo della comunità è costruire l'infrastruttura, poi ognun@ decide che cosa condividere, che cosa necessita e cosa vuol trovarci.</p>
- </div>
- </section>
- <!-- Nuova diapo --> <section>
- <h2>Che servizi trovo in Ninux?</h2>
- <p>Example:</p>
- <div class="fragment">
- <ul>
- <li>Cloud, files sharing, archives, backups;</li>
- <li>Videogames servers;</li>
- <li>Piattaforme per scambiare cose, verdure o carsharing;</li>
- <li>Applicazioni locali di cryptovalue;</li>
- <li>Audio and video Streaming;</li>
- <li>VoIP calls, email, chat, videoconference software;</li>
- <li>Social network e strumenti per il lavoro collaborativo;</li>
- <li>Internet connection (IF...);</li>
- <li>...quello che puoi pensare e metterlo su!</li>
- </ul>
- </div>
- </section>
- <!-- Nuova diapo --> <section>
- <h2>Ma.. quindi c'è o no <br/> la connessione ad internet?</h2>
- <p>Lo scopo di Ninux <b><u><i>NON è</i></u></b> dare l'accesso ad Internet, ma costruire un network dal basso, un ALTRA INTERNET, davvero decentralizzata per l'hardware, il software e la gestione. Tu puoi trovare una connessione ad Internet se:</p>
- <ul><li style="margin: 5px 0;" class="fragment">IF qualcuno condivide l'ADSL,</li>
- <li style="margin: 5px 0;" class="fragment">IF ci si organizza per comprare banda all'ingrosso,</li>
- <li style="margin: 5px 0;" class="fragment">IF alcune organizzazione diventano un peer provider, ex: Ninux Roma è un Neutral Access Point!</li>
- <!--li style="margin: 5px 0;" class="fragment">se usiamo IPv6: ogni partecipante può gestire una sottorete di IPv6 pubblici</li--></ul>
- </section>
- <!-- Nuova diapo --> <section>
- <h2>Ed è legale?</h2>
- <p>Sì!</p><p>dal 2012, guarda: <a href="http://ninux.org/LeggiWireless">http://ninux.org/LawsAboutWireless</a></p>
- <br /><br />
- <h2>Ma fa male?</h2>
- <p>Le antenne sono molto ma molto meno potenti di quelle dei telefoni cellulari <br /> e stanno sul tuo tetto invece che in tasca.</p>
- </section>
- </section>
- <section>
- <!-- Nuova diapo --> <section>
- <h2>Ok, come si fa?</h2>
- <div class="fragment"><p>Ci sono gruppi di Ninux che ti possono insegnare le basi...</p>
- <img width="70%" src="img/ninuxday.jpg" alt="Formazione"></div>
- </section>
- <section data-background="img/ninux17v_bassa.jpg" style="background: rgba(255,255,255,0.9);">
- <small>promo</small>
- </section>
- <!-- Nuova diapo --> <section>
- <h2>Ok, come si fa?</h2>
- <p>... e ti danno una mano anche sul tetto!</p>
- <img height="100%" src="img/eigennet-montaggio-exfausto2.jpg" alt="Cooperazione">
- </section>
- </section>
- <section>
- <!-- Nuova diapo --> <section>
- <h2>Ok, ok, e l'hardware?</h2>
- <div class="fragment"><p>Ponti Wireless sulle frequenze libere.
- Quinfi congiungiamo case a vista con router da esterni.</p>
- <img width="1000" src="img/ap-laptop-community.jpg"></div>
- </section>
- <section>
- <p>Più o meno queste cose:</p>
- <div class="fragment"><p>x 2</p></div>
- <img height="100%" src="img/things.jpg">
- </section>
- <!-- Nuova diapo --> <section>
- <p>1.A)Vedi il posto:</p>
- <img src="img/castello_samoggia_visto_da_cabat.jpg" alt="">
- </section>
- <section>
- <p>1.A)Vedi il posto: zoom</p>
- <img src="img/zoom_castello_samoggia.jpg" alt="Router wireless da esterni">
- </section><section>
- <p>1.B)Vedi il posto:</p>
- <img src="img/cabat_vista_da_castello_samoggia.jpg" alt="Router wireless da esterni">
- </section><section>
- <p>1.B)Vedi il posto: zoom</p>
- <img src="img/zoom_cabat.jpg" alt="Router wireless da esterni">
- </section>
- <section>
- <p>2.A)Controlla che sia possibile andare sul tetto A</p>
- <img src="img/sottotetto_cabat.jpg" alt="">
- </section>
- <section>
- <p>2.B)Controlla che sia possibile andare sul tetto B</p>
- <img width="50%" src="img/sottotetto_castello.jpg" alt="">
- </section>
- <!-- Nuova diapo --> <section>
- <p>2)Guarda sulla mappa per sapere la zona di Fresnel</p>
- <div class="fragment"><p>9m</p></div>
- <img src="img/Antennine1vs.jpg" alt="Router wireless da interni">
- </section>
- <section>
- <p>3)Test!</p>
- <img src="img/primaprovacabat.jpg" alt="Router wireless da esterni">
- </section>
- <section>
- <p>3.A)Antenna A </p>
- <div class="fragment">
- <img width="50%" src="img/cabat_1antenna.jpg" alt="Router wireless da interni"></div>
- </section>
- <section>
- <p>3.A)Antenna B </p>
- <div class="fragment">
- <img width="50%" src="img/castello_1antenna.jpg" alt="Router wireless da interni"></div>
- </section>
- <section>
- <p>4.A)Imposta la rete locale A</p>
- <img src="img/cabat_casa.jpg" alt="Router wireless da interni">
- </section><section>
- <p>4.B)Imposta la rete locale B</p>
- <img src="img/castello_sotto.jpg" alt="Router wireless da interni">
- </section>
- <section>
- <h2>5)Vai nuovamente sul tetto!</h2>
- <img width="50%" src="img/cabat_2antenna2.jpg" alt="Router wireless da interni">
- </section>
- <section>
- <p>... e non scordarti degli amici</p>
- <img src="img/friend.jpg" alt="Router wireless da interni">
- </section>
- </section>
- <section>
- <!-- Nuova diapo --> <section>
- <h2>E il software?</h2>
- <p style="margin: 20px 0;" class="fragment">I routers sono a tutti gli effetti dei computer,<br /> e la maggior parte hanno sistemi operativi proprietari</p>
- <div class="fragment"><p style="margin: 20px 0;">Quindi ci installiamo una specifica Distro GNU/Linux!</p>
- <img style="border:0px" src="img/openwrt-logo.png" alt="OpenWrt logo"></div>
- <p class="fragment">It's easy</p>
- </section>
- <section>
- <h2>Che cosa fa il firmware?</h2>
- <p>Principalmente gestisce il routing dinamico,<br /> importante in un network mesh.</p>
- <img width="85%" src="img/MeshAnimation.gif" alt="Animazione rete mesh routing dinamico"/>
- </section>
- <section>
- <h2>Che software fanno routing?</h2>
- <div class="fragment"><p>Ciascuna isola Ninux sceglie come maneggiare il routing interno.</p>
- <p>Il routing tra isole (VPN o connessione diretta) era gestito come fa Internet (BGP) e poi con BMX.</p>
- <img width="60%" src="img/bgp-small.jpg" alt="Routing tra isole"></div>
- </section>
- <section>
- <h2>e le configurationi?</h2>
- <p style="margin: 20px 0;" class="fragment">Non servono: le isole Ninux hanno sviluppato un firmware pre configurato (OpenWrt/LEDE derivato)!</p>
- <div class="fragment"><p style="margin: 20px 0;">Al momento il più usato è Libre-Mesh, nato tra <br />Ninux (Italia), Guifi (Catalogna) e Altermesh (Argentina).</p>
- <img width="50%" style="border:0px" src="img/libremesh-logo.png" alt="Libre-Mesh logo"></div>
- <p style="margin: 20px 0;" class="fragment">Così puoi costruirti la tua rete mesh solo impostando il nome!</p>
- </section>
- </section>
- <!--section>
- <h1>Libre-Mesh</h1>
- <h3>Mesh networking made simple and modular.</h3>
- <p>
- <small>ignifugo</small>
- </p>
- <p>
- <small>H.A.C.K. 2017 - Budapest</small>
- </p>
- </section-->
- <section>
- <section>
- <h2>Un tempo c'erano molti firmwares...</h2>
- <ul>
- <li>NinuxRoma ⇨ Sburratone</li>
- <li>NinuxRoma ⇨ Scooreggione</li>
- <li>eigenNet ⇨ eigenNet</li>
- <li>Freifunk ⇨ various</li>
- <li>AWMN ⇨ OpenMesh, Merdotik and various</li>
- <li>GUIFI ⇨ AirMerdOS, Merdotik, qmp</li>
- <li>Altermundi ⇨ Altermesh</li>
- <li>Buenosaires Libre ⇨ APRouter, Byzantinum, Obelysk</li>
- </ul>
- <p><br/>
- <h2 class="fragment">...e pochi sviluppatori</h2>
- </p>
- </section>
- <section>
- <h2>Così se ne è fatto un altro...</h2>
- <h2 class="fragment">.. in una via collaborativa!</h2>
- <table class="fragment"><tr><td width="60%">
- eigenNet + GUIFI + Altermundi + NinuxVerona + NinuxBO ...
- </td><td style="text-align:center;vertical-align:middle">
- ⇨ Libre-Mesh
- </td></tr></table>
- </section>
- <section>
- <h2>Com'è possibile?</h2>
- <p>Ogni comunità ha differenti necessità...</p>
- <p class="fragment">Allora facciamolo modulare!</p>
- </section>
- </section>
- <section>
- <section>
- <h2>Modular Architecture</h2>
- <img src="img/lime-modular.png">
- </section>
- </section>
- <section>
- <!--section>
- <h2><a href="http://libremesh.org/" >Today's Network Architecture</a></h2>
- </section-->
- <section>
- <h2>Che cosa usa Libre-Mesh?</h2>
- <p>Libre-Mesh usa:
- <ul><li>Batman-adv (layer 2) a livello locale, tutti i client appaiono come un singolo switch, in un unico dominio di broadcast.</li></ul></p>
- <img width="60%" src="img/batman-adv-switch.jpg" alt="Switch virtuale">
- </section>
- <!-- Nuova diapo --> <section>
- <h2>Che cosa usa Libre-Mesh?</h2>
- <ul><li>BMX6 (layer 3, supporta IPv4 e IPv6) per unire i gruppi di nodi.</li></ul></p>
- <img width="50%" src="img/batman-adv-bmx6.jpg" alt="Batman-adv BMX6">
- <p class="fragment">Questi due protocolli scalano bene.</p>
- </section>
- <!--section>
- <h2>IPv6</h2>
- <p>Libre-Mesh aims to bring IPv6 native support everywhere.</p>
- <p class="fragment">But what if IPv6 is not available in my town?</p>
- <p class="fragment">Libre-Mesh is not just a firmware it offers a mesh IPv6 tunnel broker too: librenet6 <p/>
- <div class="fragment">
- <p>Why is it better then tunnel broker X?</p>
- <ul>
- <li>Is from the community</li>
- <li>It is mesh</li>
- </ul>
- </div>
- </section-->
- </section>
- <section>
- <h2>Come averlo?</h2>
- <h2>http://www.libremesh.org/</h2>
- <p>
- <b><a href="http://www.libremesh.org/">Dal sito web di LibreMesh </a> in 2 modi:</b> </p>
- <ul><li>Codice sorgente da compilare</li>
- <li>Pronto con le tue configurazioni!</li></ul>
- </section>
- <section>
- <h2>Chef web tool</h2>
- <p>Puoi chiedere al server "Cucina" di compilarti tutti i firmware per la tua rete.
- </p>
- </section>
- <section>
- <h2>Flashalo nelle antenne</h2>
- <p>E' facile e lo puoi fare in modo grafico.
- </p>
- </section>
- <section>
- <h2>Oltre a funzionare :) <br/>
- Libre mesh ti da una interfaccia html per monitorare la tua antenna</h2>
- <p>oppure vai di ssh</p>
- </section>
- <section>
- <!-- Nuova diapo --> <section>
- <h2>Bel progetto.. ma è possibile?</h2>
- <p>In Italia abbiamo 300 nodi attivi, ma migliaia di nodi potenziali</p>
- <img width="70%" src="img/potenziali.png" alt="Mapserver Bologna">
- </section>
- <!-- Nuova diapo --> <section>
- <h2>Freifunk a Berlino</h2>
- <p>con più di 300 nodi</p>
- <img width="80%" src="img/freifunk.png" alt="Mapserver Bologna">
- </section>
- <!-- Nuova diapo --> <section>
- <h2>AWMN ad Atene</h2>
- <p>con migliai di nodi!</p>
- <img width="80%" src="img/awmn.png" alt="Mapserver Bologna">
- </section>
- <!-- Nuova diapo --> <section>
- <h2>GUIFI in Catalogna</h2>
- <p>con più di 30'000 nodi</p>
- <img width="80%" src="img/guifi.png" alt="Mapserver Bologna">
- </section>
- <section><h2>E vicino a te?</h2>
- <!-- img src="img/wlan_s.png" -->
- </section>
- </section>
- <section id="questions" class="slide level2 future" style="top: 350px; display: none;" aria-hidden="true" hidden="">
- <h1>Domande?</h1>
- <p><small></small></p><small>
- <p>Email address:</p>
- <p><strong>ignifugo@insicuri.net</strong></p>
- <p>Slides URL:</p>
- <p><strong>https://git.lattuga.net/</strong></p>
- <p>Website URL:</p>
- <p><strong>https://digitigrafo.it/</strong></p>
- <p>OpenPGP fingerprint:</p>
- <p><code>F93B DB56 B5E5 9798 C890 6588 180E BFCA 5FFB B6E3</code></p>
- </small><p><small></small></p>
- </section>
- <section>
- <p class="fragment"><b>grazie!</b></p>
- </section>
- <section>
- <h2>Credits</h2>
- <ul>
- <li>Ilario NINUX Verona</li>
- <li>G10h4ck NINUX Pisa - EigenLab</li>
- <li>xtheGamerx NINUX Bologna - HacklabBO</li>
- </ul>
- </section>
- </div>
- </div>
- <script src="lib/js/head.min.js"></script>
- <script src="js/reveal.min.js"></script>
- <script>
- // Full list of configuration options available here:
- // https://github.com/hakimel/reveal.js#configuration
- Reveal.initialize({
- controls: true,
- progress: true,
- history: true,
- center: true,
- theme: Reveal.getQueryHash().theme, // available themes are in /css/theme
- transition: Reveal.getQueryHash().transition || 'default', // default/cube/page/concave/zoom/linear/fade/none
- // Parallax scrolling
- // parallaxBackgroundImage: 'https://s3.amazonaws.com/hakim-static/reveal-js/reveal-parallax-1.jpg',
- // parallaxBackgroundSize: '2100px 900px',
- // Optional libraries used to extend on reveal.js
- dependencies: [
- { src: 'lib/js/classList.js', condition: function() { return !document.body.classList; } },
- { src: 'plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
- { src: 'plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
- { src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },
- { src: 'plugin/zoom-js/zoom.js', async: true, condition: function() { return !!document.body.classList; } },
- { src: 'plugin/notes/notes.js', async: true, condition: function() { return !!document.body.classList; } }
- ]
- });
- </script>
- </body>
- </html>
|