Archive for August, 2012

IPv6 in Free Networks

Thursday, August 30th, 2012

After publishing the document on the ninux Roma architecture prepared for the World IPv6 Launch we were asked by the Codigosur folks to write an article about our experience with IPv6. Originally written in English, has been translated to Spanish and published on the online magazine pillku:

English version follows: is a community network movement started around the year 2001 in Rome and now spreading all over Italy. The main idea is to create computer networks built by the users, with no central ownership or management, as opposed to traditional Internet service providers (ISPs), in which a single entity owns and manages the network.

Providing connections to the Internet is not a primary objective in community networks, as the main goal is the direct interconnection between the community members that can share, phone, chat, play among them without mediators. This type of networks are common all over the World: from in Catalunya to SeattleWireless in the U.S.A. or Air Stream Wireless in Australia. The technology that prevails is Wi-Fi, because wireless routers are easy to deploy on the roofs to connect with neighboring buildings, and also because it is cheap, allowing for the inclusion of a large number of people.

While building our network in Rome we came across some friendly ISPs that liked the project and wanted to collaborate. We got to know Ydea in the early days, and this wireless ISP has grown with us, recognizing that’s aims are not in conflict with theirs, exchanging continuously ideas and know-how, and donating hardware to the community.

Another friendly ISP that we met along the way is Unidata. When we talked to them they were enthusiastic about our project and willing to help us, but we didn’t find any practical way to collaborate, until we got involved in the Battlemesh. This is an event in which community network members, developers and networking enthusiasts from all over the World meet for a few days, build a temporary wireless network and find which is the best routing protocol, i.e. the best software that runs on wireless routers and that is able to reconfigure automatically a network in case of faults. We wanted to organize the Italian edition of this event in a camping on the shore of the Bracciano lake, near Rome, but the problem was that there was no Internet connection, and we surely could not host such a nerdy event without a reliable and fast connection to the Internet. Thankfully Unidata offered to sponsor the event by providing us a free and fast connection for the duration of the Battlemesh (that, by the way, was a great success). This strengthened our ties and led to an important collaboration between them and, that is IPv6 experimentation.

All the devices (PCs, phones, tablets) that access the Internet need to have what is called an IP address in order to communicate with other devices (e.g. servers), and each device should have a World-unique IP address. You can think of it as a telephone number, but with a fixed number of digits. In the days when the Internet was a small interconnection of the universities’ networks, the IP (more specifically IPv4, where “v4” stands for “version 4”) addresses seemed to be more than enough, but then something unexpected happened: more and more organizations joined the Internet, making it bigger and bigger, using it for business and commerce and involving increasingly more users and thus consuming more and more IP addresses. So it became evident that something had to be done to cope with the IPv4 address exhaustion or “IPcalypse” problem. The most notable proposals in this direction are NAT and IPv6.

NAT stands for Network Address Translation and allows the use of a single IP address for thousands of devices. Its main drawback is that it creates a hierarchy between computers that can both access and provide what are called “services” (i.e. Web pages, e-mail accounts, etc) and computers that can only access these services as clients. This transforms the Internet from a “peer to peer” network, in which all devices can provide and access services, to something that resembles traditional broadcast media (e.g. TV), in which there is a distinction between producers and consumers. This does not mean that NAT users are not able to post on Web pages such as blogs or social networks or send e-mails, but it means that they cannot usually host these services directly on their computers.

NAT also breaks the end-to-end principle, which states that in order for a network such as the Internet to work well, all the “intelligence” should be on the end devices while the network should be “dumb” and neutral, i.e. it should not discriminate between types of traffic.

The main idea behind IPv6 (IP version 6) is instead to replace the old IP (v4) addresses with larger addresses, allowing for billions of billions of billions of billions of them, and thus no need for NAT, preserving the horizontality of the Internet. The major drawback is that is that IPv6 addresses are not directly compatible with IPv4 addresses and so the whole World should switch to IPv6. This is not an easy task, as there is no organization owning or managing the whole Internet, but, as the name “Inter-net” suggests, it is an interconnection of autonomous networks, each network belonging to a different entity (universities, companies, non-profit organizations, governments, etc). Another thing that slows down IPv6 adoption is that there is not much know-how out there about how to run IPv6 networks in a reliable and safe way.

But time is running out: no more IPv4 addresses are available in Asia since April 2011, and the rest of the World will follow before the end of 2014. For this many organizations, including big players such as Google, Facebook and Yahoo!, are pushing for IPv6 adoption by adhering to events such as the World IPv6 Launch.

So, going back to the collaboration with Unidata, the idea was that they would provide our community free access to the IPv6 Internet if we were willing to play and experiment with it and spread the acquired knowledge on the Web. As experimentation has always been one of our drivers, we accepted enthusiastically and began by installing a wireless router on top of the building that hosts the Unidata servers. Then we needed what is called an “IPv6 address block”, that is a set of IPv6 addresses assigned to an organization. For this task we asked for help to our friends at Ydea, which were successful (also thanks to Fusolab, the association of which is an active part) after going through the labyrinths of bureaucracy. So we upgraded our network to support IPv6 along with IPv4 and started choosing our own IPv6 addresses out of our block. While IPv4 addresses are represented using quite boring numbers separated by dots (e.g., IPv6 addresses are represented using also letters from a to f (e.g. 2a03:2880:2110:3f03:face:b00c:: – guess who is the owner). This allowed for some nerd fun by putting words such as ‘cafe’, ‘beef’, ‘b055’ (not to report the bad words) inside our addresses.

Along with the IPv6 address block we obtained also what is called an Autonomous System Number (ASN). This is used by an autonomous network that is part of the Internet to link to other peer networks. So we can say that we are not connected to the Internet but that we are the Internet.

This experimentation has been very successful and we are among the firsts in Italy to have IPv6 at our homes. This is a double success if we think that we are using our own network, built by us, and that we are providing the IPv6 addresses ourselves.

Talk Moca 2012

Saturday, August 25th, 2012

Qui raccoglieremo i link al materiale utilizzato per il talk “Reti Comunitarie dall’Utopia alla Realtà” del Moca 2012.

Il tutto è rilasciato con licenza creative commons Attribuzione – Non Commerciale – Condividi allo stesso modo.

Si ringraziano gli autori della libreria di icone Picol per aver reso possibile la creazione di immagini esplicative gradevoli in un tempo molto ridotto.

Talk a cura di Federico Capoano (Nemesis) – @nemesisdesign su twitter.

Si ringraziano anche Marco Giuntini (Hispanico), Claudio Pisa (Clauz), Saverio Proto (ZioProto) e Salvatore (Sal) per i contributi e l’aiuto nella revisione del talk.

DNS Plugin for Nodeshot done!

Friday, August 24th, 2012

The Nodeshot DNS Plugin for Google Summer of Code is finished!

After an hard and hot summer, work is done. The DNS Plugin can help my Community to administrate and manage our DNS Servers based on PowerDns using the nodeshot backend.

Here the list of features I’ve implemented:

  • Backend manage for PowerDNS server
  • Integration with Nodeshot
  • Customizable domain names

Skeched features:

  • Automatic DNS record update
  • DNS Zone management for users

Features planned:

  • Integration with Nodeshot frontend
  • Improvement of DNS performances by the automatic configuration

Here the branch of the new version of Nodeshot I’ve worked on:


Improve OpenWrt monitoring and managing Completed!

Monday, August 20th, 2012

The GSoC work to improve eigenNet ( the OpenWrt based firmware ) is finally finished!

All the planned features and more are now implemented and the code is ready to rock on ours roof, moreover the eigenNet firmware community is very enthusiast on the work done so the code is going to be completely marged ( the most part is already in 😀 ) on the official git branch!

What was implemented:

  • Selectable custom community CRDA
  • Pointing GUI
  • Bandwidth test server and GUI
  • Conditional  IPv4 gateway announcing
  • ATH5K driver support
  • 5GHz device support
  • Export info via http (future integration into NodeShot)
  • Ebtables based firewall

Future plan:

  • OpenWrt trunk madwifi support is rapidly changing we have to take that in account for the future
  • Batman-adv is evolving so rapidly too adding new features and changing some paradigms so we should take advantage of that in the future
  • Light and secure web management ( NodeShot is not ready yet to do that so we should wait )

Checkout the code  and give us feedback for the final merge 😀 !

Application NodeShotMobile Android finished!

Sunday, August 19th, 2012

We have finally reached the ultimate goal of our project, we brought the news on our application, implementing a backend on a server and allowing forwarding news to all phones that have the application.

There are some known bugs, such as the failure or wrong management of the GPS, but we will work as quickly as possible to accommodate even this shortage. Now it’s time to send the final evaluation to Google!

It’s great being inside Ninux and thank you for the opportunity you gave me!

Here the final repository: