123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579 |
- <!doctype html>
- <html lang="en">
- <head>
- <meta charset="utf-8">
- <title>Libre-Mesh</title>
- <meta name="description" content="Ninux/Libre-Mesh presentation at Balccon 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>Novi Sad 2017 - BalcCon</small>
- </p>
- <p>
- </p>
- </section>
- <section>
- <h2>Who I'm?</h2>
- <p>Italian frontend developer envolved in Hackmeeting comunity and contributor of some projects...</p>
- </section>
- <section>
- <h2>One of these is..</h2>
- <p class="fragment">Farmers organization with the aim of alimentary indipendent</p>
- <img src="img/campiaperti.jpg"/>
- </section>
- <section>
- <p>So I went live in the countryside!</p>
- <img src="img/zoom_bolognaNinux.png"/>
- </section>
- <section>
- <p>So I went live in the countryside!</p>
- <img src="img/casaportico.jpg"/>
- </section>
- <section>
- <p>So I went live in the countryside!</p>
- <img src="img/castello_da _cabat.jpg"/>
- </section>
- <section>
- <h2>So I went live in <br/>the countryside!</h2>
- <p class="fragment">waste more money calling by telephone</p>
- <p class="fragment">internet is super slower because you are not commercial interesting for ISP</p>
- <p class="fragment">comunication are super important because you are out of the city</p>
- <p class="fragment">your comunications are a lots with the folks that lives near (+o-) you</p>
- </section>
- <section>
- <!-- Nuova diapo --> <section data-background="img/network.jpg" style="background: rgba(255,255,255,0.9);">
- <h2><span style="color:black;">Building a different net</span></h2>
- </section>
- <section >
- <h2>The other way: </h2><p> build a grassroot network ourself</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>Why?</h2>
- <ul>
- <li style="margin: 3px 0;" class="fragment">Performances
- <ul style="list-style-type: none;"><li style="font-size: smaller;">Fast connection with your friend!</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;">Censurless, network neutrality, decentralized services and infrastructure.</li></ul></li>
- <li style="margin: 3px 0;" class="fragment">Privacy
- <ul style="list-style-type: none;"><li style="font-size: smaller;">indipendent managment of infrastructure and services, software open-source... and soon hardware!</li></ul></li>
- <li style="margin: 3px 0;" class="fragment">Resilient
- <ul style="list-style-type: none;"><li style="font-size: smaller;">to have a network that can resist to catastrophes.</li></ul></li>
- <li style="margin: 3px 0;" class="fragment">Again digital divide.
- <ul style="list-style-type: none;"><li style="font-size: smaller;">bring the net where you want!</li></ul></li>
- </ul>
- </section>
- <section >
- <h2>Why? (2)</h2>
- <ul>
- <li style="margin: 3px 0;" class="fragment">More modular and flexible network</li>
- <li style="margin: 3px 0;" class="fragment">Share competence/knowledge</li>
- <li style="margin: 3px 0;" class="fragment">Less commercial, more comunity</li>
- <li style="margin: 3px 0;" class="fragment">DIY
- <li style="margin: 3px 0;" class="fragment">Tech indipendence</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>Which services I find in Ninux?</h2>
- <p class="fragment">Nothing!</p>
- <div class="fragment"><p>The aim of the community is build the infrastructure, but person by person have to decide what share, what need and what want find there.</p>
- </div>
- </section>
- <!-- Nuova diapo --> <section>
- <h2>Which services I find in Ninux?</h2>
- <p>Example:</p>
- <div class="fragment">
- <ul>
- <li>Cloud, files sharing, archives, backups;</li>
- <li>Videogames servers;</li>
- <li>Platform for swap things, vegetables or carsharing;</li>
- <li>Local platform of cryptovalue;</li>
- <li>Audio and video Streaming;</li>
- <li>VoIP calls, email, chat, videoconference software;</li>
- <li>Social network and tools for collaborative projects;</li>
- <li>Internet connection (IF...);</li>
- <li>...what you can think and build!</li>
- </ul>
- </div>
- </section>
- <!-- Nuova diapo --> <section>
- <h2>So.. there is the <br/> internet connection or not?</h2>
- <p>The aim of Ninux <b><u><i>ISN'T</i></u></b> give Internet access, but build a grassroot network, ANOTHER INTERNET, really decentralized in hardware, software and power. You can find internet connection only if:</p>
- <ul><li style="margin: 5px 0;" class="fragment">IF someone share the ADSL,</li>
- <li style="margin: 5px 0;" class="fragment">IF somebodies organize them self to buy bandwith,</li>
- <li style="margin: 5px 0;" class="fragment">IF some organization become a peer provider, ex: Ninux Roma is a 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>And this is legal in Italy?</h2>
- <p>Yes!</p><p>from the 2012, see: <a href="http://ninux.org/LeggiWireless">http://ninux.org/LawsAboutWireless</a></p>
- <br /><br />
- <h2>But these waves could be dangerous?</h2>
- <p>It's really lesser and lesser power of cellular phones <br /> and stay in the roof, not in your pockets or near your head.</p>
- </section>
- </section>
- <section>
- <!-- Nuova diapo --> <section>
- <h2>Ok, how to do?</h2>
- <div class="fragment"><p>There are groups of Ninux that help newbies teaching the fondamental...</p>
- <img width="70%" src="img/ninuxday.jpg" alt="Formazione"></div>
- </section>
- <!-- Nuova diapo --> <section>
- <h2>yep, but how to do?</h2>
- <p>... and hands on, help the people on the roof!</p>
- <img height="100%" src="img/eigennet-montaggio-exfausto2.jpg" alt="Cooperazione">
- </section>
- </section>
- <section>
- <!-- Nuova diapo --> <section>
- <h2>Ok, ok, but the hardware?</h2>
- <div class="fragment"><p>Wireless bridge on free frequencies.
- We join far houses using router wireless for outdoor.</p>
- <img width="1000" src="img/ap-laptop-community.jpg"></div>
- </section>
- <section>
- <p>Less or more you need these things:</p>
- <div class="fragment"><p>twice</p></div>
- <img height="100%" src="img/things.jpg">
- </section>
- <!-- Nuova diapo --> <section>
- <p>1.A)See the place:</p>
- <img src="img/castello_samoggia_visto_da_cabat.jpg" alt="">
- </section>
- <section>
- <p>1.A)See the place: zoom</p>
- <img src="img/zoom_castello_samoggia.jpg" alt="Router wireless da esterni">
- </section><section>
- <p>1.B)See the place:</p>
- <img src="img/cabat_vista_da_castello_samoggia.jpg" alt="Router wireless da esterni">
- </section><section>
- <p>1.B)See the place: zoom</p>
- <img src="img/zoom_cabat.jpg" alt="Router wireless da esterni">
- </section>
- <section>
- <p>2.A)See if is possible go in the roof A</p>
- <img src="img/sottotetto_cabat.jpg" alt="">
- </section>
- <section>
- <p>2.B)See if is possible go in the roof B</p>
- <img width="50%" src="img/sottotetto_castello.jpg" alt="">
- </section>
- <!-- Nuova diapo --> <section>
- <p>2)See the places on a map and discover the Fresnel zone</p>
- <div class="fragment"><p>9m</p></div>
- <img src="img/Antennine1vs.jpg" alt="Router wireless da interni">
- </section>
- <section>
- <p>3)Testing</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)Set the network A</p>
- <img src="img/cabat_casa.jpg" alt="Router wireless da interni">
- </section><section>
- <p>4.B)Set the network B</p>
- <img src="img/castello_sotto.jpg" alt="Router wireless da interni">
- </section>
- <section>
- <h2>5)Go to the roof again!</h2>
- <img width="50%" src="img/cabat_2antenna2.jpg" alt="Router wireless da interni">
- </section>
- <section>
- <p>... never forget the friends</p>
- <img src="img/friend.jpg" alt="Router wireless da interni">
- </section>
- </section>
- <section>
- <!-- Nuova diapo --> <section>
- <h2>And the software?</h2>
- <p style="margin: 20px 0;" class="fragment">The routers are in the fact computers,<br /> and a lot of these have proprietary operative systems</p>
- <div class="fragment"><p style="margin: 20px 0;">Let's go to install on them a specific 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>What a firmware do?</h2>
- <p>manages the dinamic routing,<br /> important in a mesh network.</p>
- <img width="85%" src="img/MeshAnimation.gif" alt="Animazione rete mesh routing dinamico"/>
- </section>
- <section>
- <h2>Whic softwares manage routing?</h2>
- <div class="fragment"><p>Each Ninux "island" chooses how manage his internal routing.</p>
- <p>The routing between islands (VPN or direct connections) is managed as in Internet does (BGP).</p>
- <img width="60%" src="img/bgp-small.jpg" alt="Routing tra isole"></div>
- </section>
- <section>
- <h2>and the configuration?</h2>
- <p style="margin: 20px 0;" class="fragment">We don't need: the Ninux islands develop pre-config firmware (OpenWrt derivative)!</p>
- <div class="fragment"><p style="margin: 20px 0;">At the moment the most used is Libre-Mesh, born between <br />Ninux (Italia), Guifi (Catalogna) and 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">So you can built your mesh network only setting the name!</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>Many 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">...few developers</h2>
- </p>
- </section>
- <section>
- <h2>Let's make another one...</h2>
- <h2 class="fragment">...but in a collaborative way!</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>How is it possible?</h2>
- <p>Every community has different needs...</p>
- <p class="fragment">Let's make it modular!</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>What use Libre-Mesh?</h2>
- <p>Libre-Mesh use:
- <ul><li>Batman-adv (layer 2) in local layer, at clients appear as a single switch, an only domain of broadcast.</li></ul></p>
- <img width="60%" src="img/batman-adv-switch.jpg" alt="Switch virtuale">
- </section>
- <!-- Nuova diapo --> <section>
- <h2>What use Libre-Mesh?</h2>
- <ul><li>BMX6 (layer 3, support IPv4 and IPv6) to join groups of nodes.</li></ul></p>
- <img width="50%" src="img/batman-adv-bmx6.jpg" alt="Batman-adv BMX6">
- <p class="fragment">This two protocols grow good.</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>How to Get it ?</h2>
- <h2>http://www.libremesh.org/</h2>
- <p>
- <b><a href="http://www.libremesh.org/">By LibreMesh website</a> in two flavours:</b> </p>
- <ul><li>Manually</li>
- <li>Compiled with your config!</li></ul>
- </section>
- <section>
- <h2>Chef web tool</h2>
- <p>Ask the Chef server to compile a custom firmware image for your network.
- </p>
- </section>
- <section>
- <h2>Flash in the antennas</h2>
- <p>It's easy and you do it in a Graphic way.
- </p>
- </section>
- <section>
- <h2>Html interface to monitoring your antenna</h2>
- <p>It's easy and you do it in a Graphic User Interface.
- </p>
- </section>
- <section>
- <!-- Nuova diapo --> <section>
- <h2>Nice project.. but is it possible?</h2>
- <p>In Italia we have 300 active node, but thousands of potenzial nodes</p>
- <img width="70%" src="img/potenziali.png" alt="Mapserver Bologna">
- </section>
- <!-- Nuova diapo --> <section>
- <h2>Freifunk a Berlino</h2>
- <p>with more than 300 nodes</p>
- <img width="80%" src="img/freifunk.png" alt="Mapserver Bologna">
- </section>
- <!-- Nuova diapo --> <section>
- <h2>AWMN ad Atene</h2>
- <p>with thousands of nodes!</p>
- <img width="80%" src="img/awmn.png" alt="Mapserver Bologna">
- </section>
- <!-- Nuova diapo --> <section>
- <h2>GUIFI in Catalogna</h2>
- <p>with more that 30'000 nodes</p>
- <img width="80%" src="img/guifi.png" alt="Mapserver Bologna">
- </section>
- <section><h2>And near you?</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>Questions?</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>thanks!</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>
|