index_en_V1.html 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579
  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Libre-Mesh</title>
  6. <meta name="description" content="Ninux/Libre-Mesh presentation at Balccon 2017">
  7. <meta name="author" content="Cristina Carnevali" >
  8. <meta name="apple-mobile-web-app-capable" content="yes" />
  9. <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
  10. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
  11. <link rel="stylesheet" href="css/reveal.min.css">
  12. <link rel="stylesheet" href="css/theme/cri.css" id="theme">
  13. <!-- For syntax highlighting -->
  14. <link rel="stylesheet" href="lib/css/zenburn.css">
  15. <!-- If the query includes 'print-pdf', include the PDF print sheet -->
  16. <script>
  17. if( window.location.search.match( /print-pdf/gi ) ) {
  18. var link = document.createElement( 'link' );
  19. link.rel = 'stylesheet';
  20. link.type = 'text/css';
  21. link.href = 'css/print/pdf.css';
  22. document.getElementsByTagName( 'head' )[0].appendChild( link );
  23. }
  24. </script>
  25. <!--style>img{height:40vw !important;min-width:auto !important; width:auto !important;}</style-->
  26. <!--[if lt IE 9]>
  27. <script src="lib/js/html5shiv.js"></script>
  28. <![endif]-->
  29. </head>
  30. <body>
  31. <div class="reveal">
  32. <!-- Any section element inside of this container is displayed as a slide -->
  33. <div class="slides">
  34. <section>
  35. <h1>Ninux</h1>
  36. <h3>Wireless Community Network</h3>
  37. <p>
  38. <small>Ignifugo (<a href="http://wiki.bologna.ninux.org">NinuxBO</a>).</small>
  39. </p>
  40. <p>
  41. <small>Novi Sad 2017 - BalcCon</small>
  42. </p>
  43. <p>
  44. </p>
  45. </section>
  46. <section>
  47. <h2>Who I'm?</h2>
  48. <p>Italian frontend developer envolved in Hackmeeting comunity and contributor of some projects...</p>
  49. </section>
  50. <section>
  51. <h2>One of these is..</h2>
  52. <p class="fragment">Farmers organization with the aim of alimentary indipendent</p>
  53. <img src="img/campiaperti.jpg"/>
  54. </section>
  55. <section>
  56. <p>So I went live in the countryside!</p>
  57. <img src="img/zoom_bolognaNinux.png"/>
  58. </section>
  59. <section>
  60. <p>So I went live in the countryside!</p>
  61. <img src="img/casaportico.jpg"/>
  62. </section>
  63. <section>
  64. <p>So I went live in the countryside!</p>
  65. <img src="img/castello_da _cabat.jpg"/>
  66. </section>
  67. <section>
  68. <h2>So I went live in <br/>the countryside!</h2>
  69. <p class="fragment">waste more money calling by telephone</p>
  70. <p class="fragment">internet is super slower because you are not commercial interesting for ISP</p>
  71. <p class="fragment">comunication are super important because you are out of the city</p>
  72. <p class="fragment">your comunications are a lots with the folks that lives near (+o-) you</p>
  73. </section>
  74. <section>
  75. <!-- Nuova diapo --> <section data-background="img/network.jpg" style="background: rgba(255,255,255,0.9);">
  76. <h2><span style="color:black;">Building a different net</span></h2>
  77. </section>
  78. <section >
  79. <h2>The other way: </h2><p> build a grassroot network ourself</p>
  80. <img style="border:0px" width="700" src="img/ninux.png" alt="ninux">
  81. </section>
  82. <!--section data-markdown>
  83. <script type="text/template">
  84. <h2>Storia di Ninux</h2>
  85. <ol>
  86. <li value="2002">Nino fonda Ninux a Roma: desiderio di sperimentare</li>
  87. <li value="2005-2009">sperimentazione servizio internet per le famiglie e spazi sociali</li>
  88. <li value="2010">La rete parte anche a Pisa e a cascata in [altre città](http://map.ninux.org)</li>
  89. <li value="2013">NinuxRoma [entra davvero](http://www.namex.it/en/who/members) a far parte di internet
  90. <li value="2014">Nasce pure Ninux Verona</li>
  91. </ol>
  92. </script>
  93. </section-->
  94. <section><img src="img/mappa_Italia.png"></section>
  95. <!-- Nuova diapo --> <section>
  96. <h2>Why?</h2>
  97. <ul>
  98. <li style="margin: 3px 0;" class="fragment">Performances
  99. <ul style="list-style-type: none;"><li style="font-size: smaller;">Fast connection with your friend!</li></ul></li>
  100. <li style="margin: 3px 0;" class="fragment">Hacktivism
  101. <ul style="list-style-type: none;"><li style="font-size: smaller; line-height: 1;">Censurless, network neutrality, decentralized services and infrastructure.</li></ul></li>
  102. <li style="margin: 3px 0;" class="fragment">Privacy
  103. <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>
  104. <li style="margin: 3px 0;" class="fragment">Resilient
  105. <ul style="list-style-type: none;"><li style="font-size: smaller;">to have a network that can resist to catastrophes.</li></ul></li>
  106. <li style="margin: 3px 0;" class="fragment">Again digital divide.
  107. <ul style="list-style-type: none;"><li style="font-size: smaller;">bring the net where you want!</li></ul></li>
  108. </ul>
  109. </section>
  110. <section >
  111. <h2>Why? (2)</h2>
  112. <ul>
  113. <li style="margin: 3px 0;" class="fragment">More modular and flexible network</li>
  114. <li style="margin: 3px 0;" class="fragment">Share competence/knowledge</li>
  115. <li style="margin: 3px 0;" class="fragment">Less commercial, more comunity</li>
  116. <li style="margin: 3px 0;" class="fragment">DIY
  117. <li style="margin: 3px 0;" class="fragment">Tech indipendence</li>
  118. </ul>
  119. </section>
  120. <section>
  121. <h3> Pico Peering Agreement</h3>
  122. <p style="font-size: smaller"> 1. Free Transit: </br>
  123. The owner agrees to provide free transit accross their free network.
  124. The owner agrees not to modify or interfere with data as it passes through their free network.
  125. </br>
  126. 2. Open Communication:
  127. </br>
  128. The owner agrees to publish the information necessary for peering to take place
  129. This information shall be published under a free licence
  130. The owner agrees to be contactable and will provide at least an email adress
  131. </br>
  132. 3. No Warranty:
  133. </br>
  134. There is no guaranteed level of service
  135. The service is provided "as is", with no warranty or liability of whatsoever kind
  136. The service can be scaled back or withdrawn at any time with no notice
  137. </br>
  138. 4. Terms of Use:
  139. </br>
  140. The owner is entitled to formulate an 'acceptable use policy'
  141. This may or may not contain information about additional services provided (apart from basic access)
  142. 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)
  143. </br> 5. Local Amendments:
  144. </br>(to be filled in ad-hoc by the node owner as this document is implemented)
  145. </p>
  146. </section>
  147. </section>
  148. <section>
  149. <!-- Nuova diapo --> <section>
  150. <h2>Which services I find in Ninux?</h2>
  151. <p class="fragment">Nothing!</p>
  152. <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>
  153. </div>
  154. </section>
  155. <!-- Nuova diapo --> <section>
  156. <h2>Which services I find in Ninux?</h2>
  157. <p>Example:</p>
  158. <div class="fragment">
  159. <ul>
  160. <li>Cloud, files sharing, archives, backups;</li>
  161. <li>Videogames servers;</li>
  162. <li>Platform for swap things, vegetables or carsharing;</li>
  163. <li>Local platform of cryptovalue;</li>
  164. <li>Audio and video Streaming;</li>
  165. <li>VoIP calls, email, chat, videoconference software;</li>
  166. <li>Social network and tools for collaborative projects;</li>
  167. <li>Internet connection (IF...);</li>
  168. <li>...what you can think and build!</li>
  169. </ul>
  170. </div>
  171. </section>
  172. <!-- Nuova diapo --> <section>
  173. <h2>So.. there is the <br/> internet connection or not?</h2>
  174. <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>
  175. <ul><li style="margin: 5px 0;" class="fragment">IF someone share the ADSL,</li>
  176. <li style="margin: 5px 0;" class="fragment">IF somebodies organize them self to buy bandwith,</li>
  177. <li style="margin: 5px 0;" class="fragment">IF some organization become a peer provider, ex: Ninux Roma is a Neutral Access Point!</li>
  178. <!--li style="margin: 5px 0;" class="fragment">se usiamo IPv6: ogni partecipante può gestire una sottorete di IPv6 pubblici</li--></ul>
  179. </section>
  180. <!-- Nuova diapo --> <section>
  181. <h2>And this is legal in Italy?</h2>
  182. <p>Yes!</p><p>from the 2012, see: <a href="http://ninux.org/LeggiWireless">http://ninux.org/LawsAboutWireless</a></p>
  183. <br /><br />
  184. <h2>But these waves could be dangerous?</h2>
  185. <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>
  186. </section>
  187. </section>
  188. <section>
  189. <!-- Nuova diapo --> <section>
  190. <h2>Ok, how to do?</h2>
  191. <div class="fragment"><p>There are groups of Ninux that help newbies teaching the fondamental...</p>
  192. <img width="70%" src="img/ninuxday.jpg" alt="Formazione"></div>
  193. </section>
  194. <!-- Nuova diapo --> <section>
  195. <h2>yep, but how to do?</h2>
  196. <p>... and hands on, help the people on the roof!</p>
  197. <img height="100%" src="img/eigennet-montaggio-exfausto2.jpg" alt="Cooperazione">
  198. </section>
  199. </section>
  200. <section>
  201. <!-- Nuova diapo --> <section>
  202. <h2>Ok, ok, but the hardware?</h2>
  203. <div class="fragment"><p>Wireless bridge on free frequencies.
  204. We join far houses using router wireless for outdoor.</p>
  205. <img width="1000" src="img/ap-laptop-community.jpg"></div>
  206. </section>
  207. <section>
  208. <p>Less or more you need these things:</p>
  209. <div class="fragment"><p>twice</p></div>
  210. <img height="100%" src="img/things.jpg">
  211. </section>
  212. <!-- Nuova diapo --> <section>
  213. <p>1.A)See the place:</p>
  214. <img src="img/castello_samoggia_visto_da_cabat.jpg" alt="">
  215. </section>
  216. <section>
  217. <p>1.A)See the place: zoom</p>
  218. <img src="img/zoom_castello_samoggia.jpg" alt="Router wireless da esterni">
  219. </section><section>
  220. <p>1.B)See the place:</p>
  221. <img src="img/cabat_vista_da_castello_samoggia.jpg" alt="Router wireless da esterni">
  222. </section><section>
  223. <p>1.B)See the place: zoom</p>
  224. <img src="img/zoom_cabat.jpg" alt="Router wireless da esterni">
  225. </section>
  226. <section>
  227. <p>2.A)See if is possible go in the roof A</p>
  228. <img src="img/sottotetto_cabat.jpg" alt="">
  229. </section>
  230. <section>
  231. <p>2.B)See if is possible go in the roof B</p>
  232. <img width="50%" src="img/sottotetto_castello.jpg" alt="">
  233. </section>
  234. <!-- Nuova diapo --> <section>
  235. <p>2)See the places on a map and discover the Fresnel zone</p>
  236. <div class="fragment"><p>9m</p></div>
  237. <img src="img/Antennine1vs.jpg" alt="Router wireless da interni">
  238. </section>
  239. <section>
  240. <p>3)Testing</p>
  241. <img src="img/primaprovacabat.jpg" alt="Router wireless da esterni">
  242. </section>
  243. <section>
  244. <p>3.A)Antenna A </p>
  245. <div class="fragment">
  246. <img width="50%" src="img/cabat_1antenna.jpg" alt="Router wireless da interni"></div>
  247. </section>
  248. <section>
  249. <p>3.A)Antenna B </p>
  250. <div class="fragment">
  251. <img width="50%" src="img/castello_1antenna.jpg" alt="Router wireless da interni"></div>
  252. </section>
  253. <section>
  254. <p>4.A)Set the network A</p>
  255. <img src="img/cabat_casa.jpg" alt="Router wireless da interni">
  256. </section><section>
  257. <p>4.B)Set the network B</p>
  258. <img src="img/castello_sotto.jpg" alt="Router wireless da interni">
  259. </section>
  260. <section>
  261. <h2>5)Go to the roof again!</h2>
  262. <img width="50%" src="img/cabat_2antenna2.jpg" alt="Router wireless da interni">
  263. </section>
  264. <section>
  265. <p>... never forget the friends</p>
  266. <img src="img/friend.jpg" alt="Router wireless da interni">
  267. </section>
  268. </section>
  269. <section>
  270. <!-- Nuova diapo --> <section>
  271. <h2>And the software?</h2>
  272. <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>
  273. <div class="fragment"><p style="margin: 20px 0;">Let's go to install on them a specific Distro GNU/Linux!</p>
  274. <img style="border:0px" src="img/openwrt-logo.png" alt="OpenWrt logo"></div>
  275. <p class="fragment">It's easy</p>
  276. </section>
  277. <section>
  278. <h2>What a firmware do?</h2>
  279. <p>manages the dinamic routing,<br /> important in a mesh network.</p>
  280. <img width="85%" src="img/MeshAnimation.gif" alt="Animazione rete mesh routing dinamico"/>
  281. </section>
  282. <section>
  283. <h2>Whic softwares manage routing?</h2>
  284. <div class="fragment"><p>Each Ninux "island" chooses how manage his internal routing.</p>
  285. <p>The routing between islands (VPN or direct connections) is managed as in Internet does (BGP).</p>
  286. <img width="60%" src="img/bgp-small.jpg" alt="Routing tra isole"></div>
  287. </section>
  288. <section>
  289. <h2>and the configuration?</h2>
  290. <p style="margin: 20px 0;" class="fragment">We don't need: the Ninux islands develop pre-config firmware (OpenWrt derivative)!</p>
  291. <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>
  292. <img width="50%" style="border:0px" src="img/libremesh-logo.png" alt="Libre-Mesh logo"></div>
  293. <p style="margin: 20px 0;" class="fragment">So you can built your mesh network only setting the name!</p>
  294. </section>
  295. </section>
  296. <!--section>
  297. <h1>Libre-Mesh</h1>
  298. <h3>Mesh networking made simple and modular.</h3>
  299. <p>
  300. <small>ignifugo</small>
  301. </p>
  302. <p>
  303. <small>H.A.C.K. 2017 - Budapest</small>
  304. </p>
  305. </section-->
  306. <section>
  307. <section>
  308. <h2>Many firmwares...</h2>
  309. <ul>
  310. <li>NinuxRoma &#8680; Sburratone</li>
  311. <li>NinuxRoma &#8680; Scooreggione</li>
  312. <li>eigenNet &#8680; eigenNet</li>
  313. <li>Freifunk &#8680; various</li>
  314. <li>AWMN &#8680; OpenMesh, Merdotik and various</li>
  315. <li>GUIFI &#8680; AirMerdOS, Merdotik, qmp</li>
  316. <li>Altermundi &#8680; Altermesh</li>
  317. <li>Buenosaires Libre &#8680; APRouter, Byzantinum, Obelysk</li>
  318. </ul>
  319. <p><br/>
  320. <h2 class="fragment">...few developers</h2>
  321. </p>
  322. </section>
  323. <section>
  324. <h2>Let's make another one...</h2>
  325. <h2 class="fragment">...but in a collaborative way!</h2>
  326. <table class="fragment"><tr><td width="60%">
  327. eigenNet + GUIFI + Altermundi + NinuxVerona + NinuxBO ...
  328. </td><td style="text-align:center;vertical-align:middle">
  329. &#8680; Libre-Mesh
  330. </td></tr></table>
  331. </section>
  332. <section>
  333. <h2>How is it possible?</h2>
  334. <p>Every community has different needs...</p>
  335. <p class="fragment">Let's make it modular!</p>
  336. </section>
  337. </section>
  338. <section>
  339. <section>
  340. <h2>Modular Architecture</h2>
  341. <img src="img/lime-modular.png">
  342. </section>
  343. </section>
  344. <section>
  345. <!--section>
  346. <h2><a href="http://libremesh.org/" >Today's Network Architecture</a></h2>
  347. </section-->
  348. <section>
  349. <h2>What use Libre-Mesh?</h2>
  350. <p>Libre-Mesh use:
  351. <ul><li>Batman-adv (layer 2) in local layer, at clients appear as a single switch, an only domain of broadcast.</li></ul></p>
  352. <img width="60%" src="img/batman-adv-switch.jpg" alt="Switch virtuale">
  353. </section>
  354. <!-- Nuova diapo --> <section>
  355. <h2>What use Libre-Mesh?</h2>
  356. <ul><li>BMX6 (layer 3, support IPv4 and IPv6) to join groups of nodes.</li></ul></p>
  357. <img width="50%" src="img/batman-adv-bmx6.jpg" alt="Batman-adv BMX6">
  358. <p class="fragment">This two protocols grow good.</p>
  359. </section>
  360. <!--section>
  361. <h2>IPv6</h2>
  362. <p>Libre-Mesh aims to bring IPv6 native support everywhere.</p>
  363. <p class="fragment">But what if IPv6 is not available in my town?</p>
  364. <p class="fragment">Libre-Mesh is not just a firmware it offers a mesh IPv6 tunnel broker too: librenet6 <p/>
  365. <div class="fragment">
  366. <p>Why is it better then tunnel broker X?</p>
  367. <ul>
  368. <li>Is from the community</li>
  369. <li>It is mesh</li>
  370. </ul>
  371. </div>
  372. </section-->
  373. </section>
  374. <section>
  375. <h2>How to Get it ?</h2>
  376. <h2>http://www.libremesh.org/</h2>
  377. <p>
  378. <b><a href="http://www.libremesh.org/">By LibreMesh website</a> in two flavours:</b> </p>
  379. <ul><li>Manually</li>
  380. <li>Compiled with your config!</li></ul>
  381. </section>
  382. <section>
  383. <h2>Chef web tool</h2>
  384. <p>Ask the Chef server to compile a custom firmware image for your network.
  385. </p>
  386. </section>
  387. <section>
  388. <h2>Flash in the antennas</h2>
  389. <p>It's easy and you do it in a Graphic way.
  390. </p>
  391. </section>
  392. <section>
  393. <h2>Html interface to monitoring your antenna</h2>
  394. <p>It's easy and you do it in a Graphic User Interface.
  395. </p>
  396. </section>
  397. <section>
  398. <!-- Nuova diapo --> <section>
  399. <h2>Nice project.. but is it possible?</h2>
  400. <p>In Italia we have 300 active node, but thousands of potenzial nodes</p>
  401. <img width="70%" src="img/potenziali.png" alt="Mapserver Bologna">
  402. </section>
  403. <!-- Nuova diapo --> <section>
  404. <h2>Freifunk a Berlino</h2>
  405. <p>with more than 300 nodes</p>
  406. <img width="80%" src="img/freifunk.png" alt="Mapserver Bologna">
  407. </section>
  408. <!-- Nuova diapo --> <section>
  409. <h2>AWMN ad Atene</h2>
  410. <p>with thousands of nodes!</p>
  411. <img width="80%" src="img/awmn.png" alt="Mapserver Bologna">
  412. </section>
  413. <!-- Nuova diapo --> <section>
  414. <h2>GUIFI in Catalogna</h2>
  415. <p>with more that 30'000 nodes</p>
  416. <img width="80%" src="img/guifi.png" alt="Mapserver Bologna">
  417. </section>
  418. <section><h2>And near you?</h2>
  419. <img src="img/wlan_s.png">
  420. </section>
  421. </section>
  422. <section id="questions" class="slide level2 future" style="top: 350px; display: none;" aria-hidden="true" hidden="">
  423. <h1>Questions?</h1>
  424. <p><small></small></p><small>
  425. <p>Email address:</p>
  426. <p><strong>ignifugo@insicuri.net</strong></p>
  427. <p>Slides URL:</p>
  428. <p><strong>https://git.lattuga.net/</strong></p>
  429. <p>Website URL:</p>
  430. <p><strong>https://digitigrafo.it/</strong></p>
  431. <p>OpenPGP fingerprint:</p>
  432. <p><code>F93B DB56 B5E5 9798 C890 6588 180E BFCA 5FFB B6E3</code></p>
  433. </small><p><small></small></p>
  434. </section>
  435. <section>
  436. <p class="fragment"><b>thanks!</b></p>
  437. </section>
  438. <section>
  439. <h2>Credits</h2>
  440. <ul>
  441. <li>Ilario NINUX Verona</li>
  442. <li>G10h4ck NINUX Pisa - EigenLab</li>
  443. <li>xtheGamerx NINUX Bologna - HacklabBO</li>
  444. </ul>
  445. </section>
  446. </div>
  447. </div>
  448. <script src="lib/js/head.min.js"></script>
  449. <script src="js/reveal.min.js"></script>
  450. <script>
  451. // Full list of configuration options available here:
  452. // https://github.com/hakimel/reveal.js#configuration
  453. Reveal.initialize({
  454. controls: true,
  455. progress: true,
  456. history: true,
  457. center: true,
  458. theme: Reveal.getQueryHash().theme, // available themes are in /css/theme
  459. transition: Reveal.getQueryHash().transition || 'default', // default/cube/page/concave/zoom/linear/fade/none
  460. // Parallax scrolling
  461. // parallaxBackgroundImage: 'https://s3.amazonaws.com/hakim-static/reveal-js/reveal-parallax-1.jpg',
  462. // parallaxBackgroundSize: '2100px 900px',
  463. // Optional libraries used to extend on reveal.js
  464. dependencies: [
  465. { src: 'lib/js/classList.js', condition: function() { return !document.body.classList; } },
  466. { src: 'plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
  467. { src: 'plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
  468. { src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },
  469. { src: 'plugin/zoom-js/zoom.js', async: true, condition: function() { return !!document.body.classList; } },
  470. { src: 'plugin/notes/notes.js', async: true, condition: function() { return !!document.body.classList; } }
  471. ]
  472. });
  473. </script>
  474. </body>
  475. </html>