Software

Erstes Release für Freifunk-Bielefeld

Nach längerer Entwicklungszeit haben wir endlich die erste Firmware-Version (0.1) für unsere Freifunk-Bielefeld Gruppe fertig. Die Firmware baut auf batman-adv (2013.1.0), fastd (7) und auf OpenWRT (Attitude Adjustment) auf und wurde mit dem Ziel entwickelt eine simple und möglichst dezentrale Konfiguration zu bieten. Ein Router muss nur mit der Firmware bespielt werden und benötigt ansonsten nur Strom um sich sich mit gleichartigen Routern in Reichweite zu verbinden. Eine weitere Konfiguration ist nicht nötig aber natürlich möglich.

Die Firmware wurde so konfiguriert, dass es (fast) keinen routerspezifischen Code gibt und mehrere Wlan-Karten (2.4/5Ghz) unterstützt werden. Jeder Router hat eine öffentliche Statusseite mit dem Namen des Routers, der Anzahl der Nachbarn und einer Liste von alternativen Gateways. Über eine Web-GUI können sehr vielfälltige Einstellmöglichkeiten wie z.B. das Konfigurieren einzelner Ports, eines privaten WLAN-Netzes oder einer Splash-Seite vorgenommen werden.

Wer also in Bielefeld oder Umgebung wohnt kann gerne einen Router aufstellen. Wir helfen dabei auch gerne und laden dazu jeden Dienstag Abend in den Hackerspace Bielefeld ein.

Natürlich haben wir noch eine offizielle Release-Ankündigung, fertige Images, eine Freifunkkarte und eine Seite mit Stichpunkten zu technischen Details.

Frohes Maschen,

die Freifunk-Bielefeld Gruppe :-)

Node Database and Map Server Yaffmap: Yet Another Freifunk Map

yaffmap is a project from Dennis Bartsch from Freifunk Berlin, which he started with a friend. It is called yaffmap. It got its name because at the beginning of the project we had many mapservers in Berlin and so it started as yet another approach for a Freifunk map. 
 
yaffmap - screenshot
 
The intention was to make a server that not just produces points and lines (nodes and their links) but to gather all information that might help to understand why a link is as bad as it is. This includes to gather wireless scan results, the effective rate chosen/calculated by the wireless driver to a specific neighbour and so on. Furthermore it had to be independent from the routing-protocol and its daemons (but needs it to gather useful info) and the IP version (or even no IP version for RPs like batman) and had to be able to upload and store data from multiple routing protocols on the same node. In order to sample so much information we went the route of scripting an agent for the map-server which runs on the nodes gathering the information and uploading it through a JSON interface to the server. For link-state-protocols like OLSR we even implemented the upload of the global topology to the server, which gave us some headache. From the beginning on the need for decentralized operation was stressed, so replication between the servers was implemented and any community which wants can have their own map data server. Moreover they cleary wanted the datacollection/storage to be independent from the frontend the map user is presented. In Berlin everytime a new map came along and an old one was gone we saw huge ammounts of data simply disappear. So the server only provides a SOAP interface for UIs and other services to use to get map data. The representation of a node in the database ist best seen on a graphic. Dennis uploaded it to imageshack, see [1]. A little bit of documentation is found under [2], but wasn't thoroughly updated after we left concept stage.
 
We got to the point where the agent (bunch of shell/AWK) for the nodes runs on openWRT (best with madwifi and ath9k/ath5k) with olsrd (other routing daemons simply need scripts for data gathering, agent is held modular), uploades many useful information to the server (or another if the first does not respond; multiple can be configured) using JSON, where it gets stored correctly into a SQL database and replicated to other servers and provided through a SOAP interface. The agent even is already provided as a package in the respected PBerg Freifunk Firmware. There also exists a 'proof-of-concept' implementation for a map frontend, see [3]. The code is hosted on github as seen und [4]. Because of the frontend development got stuck the frontend SOAP interface is not very sophisticated nor much tested as is the frontend itself.
 
The result is a database which can answer more complex question to the mesh engineer or software developer. Maybe you want to know the average effective rate on all 11n interfaces or all 5GHz interfaces? Or you might be interested in the average ETX on different channels in a certain geographic area. Or you want to compare how different routing daemons evaluate the quality of a certain link. Maybe you even want to draw a noise map. Or wouldn't it be interesting to see the correlation between the effective rate of a wifi link and the metrics which result in the routing daemons? Because the node data includes a 'misc' field through which any kind of node id or statistics could be stored/sent this is can even be integrated into existing community portals.
 
 

International Community Map Project and Node Database

One of the things every community would like to see are maps of their network. There are many initiatives and map projects around, but how much more progress could we make, if we work together? This is why a group of free networks contributors started a group to work together on a common project. We started a mailing list to coordinate efforts and welcome everyone who would like to collaborate: https://lists.funkfeuer.at/mailman/listinfo/interop-dev
 
The current goal is to define a basis for a common map. We are looking at different map solutions and try to find out how we can merge the best of each into one. The best approach seems to be a modular system. In the following three great projects of different communities.
 
Nodeshot comes from the community in Italy and is widely being used there (map.ninux.org). The main developer is Federico Capoano. The goal of the Django application is to have "a nice snapshot of your wireless community network". Nodeshot is a web tool for wireless community network. It allows members to add their node and to share and manage information about their configurations like devices, ip addresses, wireless parameters etc. In this way, newcomers can easily contact/connect with them. Internal scripts will update the topology and retrieve nodes information via snmp, or parsing routing information given by olsr, batman or whatever. It is super-fast, nice and easy to use. It rises from the ashes of WNMap (sourceforge.net/projects/wnmap/), powered by django, released under GPLv3 and tested inside the Ninux wireless community network (wiki.ninux.org). How to install: A basic guide on how to setup nodeshot for your community is available here: wiki.ninux.org/InstallNodeshot
 
Nodewatcher, another Django based application was started in Slowenia by Mitar. Its main goal is the development of an open source network planning, deployment, monitoring and maintanance platform. The project is divided into multiple components:
* node telemetry provider: A simple shell script that is accessible via HTTP interface and is used for node status data acquisition that is performed by the data collection system. Its role is similar to the one of SNMP, however it uses less resources (CPU-wise and, mostly, when it comes to memory and flash space). Our firmware has this preinstalled, others can follow these instructions to install it.
* data collection system: A daemon written in Python that periodically collects data regarding the OLSR topology, active HNAs, node telemetry and performs active reachability tests for visible nodes. Using rrdtool it can then generate graphs that are used by the web interface.
* web interface: A web-based application, written in Python and using the Django framework. It is used by the users to monitor the status of the network and individual nodes and by the node owners to manage their nodes.
* firmware image generator: A daemon that handles per-node configuration and firmware image generation via the OpenWrt buildroot using our custom firmware. It receives requests from the web interface. Live version We use nodewatcher in wlan slovenija network (this is why we are developing it), so you can see a live version of nodewatcher for real deployed network here
 
yaffmap is a project from Dennis Bartsch from Freifunk Berlin. He is working on an implementation of a node database he started with a friend. It is called yaffmap. It got its name because at the beginning of the project we had many mapservers in Berlin and so it started as yet another approach for a Freifunk map. The intention was to make a server that not just produces points and lines (nodes and their links) but to gather all information that might help to understand why a link is as bad as it is. This includes to gather wireless scan results, the effective rate chosen/calculated by the wireless driver to a specific neighbour and so on. Furthermore it had to be independent from the routing-protocol and its daemons (but needs it to gather useful info) and the IP version (or even no IP version for RPs like batman) and had to be able to upload and store data from multiple routing protocols on the same node. In order to sample so much information we went the route of scripting an agent for the map-server which runs on the nodes gathering the information and uploading it through a JSON interface to the server. For link-state-protocols like OLSR we even implemented the upload of the global topology to the server, which gave us some headache. From the beginning on I stressed the need for decentralized operation, so replication between the servers was implemented and any community which wants can have their own map data server. 
 

Freifunk Google Summer of Code: Guifi.net and QMP

Hakais has put up some info about student projects that were accepted as Freifunk Google Summer of Code projects and which are taken care by Guifi.net. Two students involved in Guifi.net have been accepted for the Gsoc 2012.

Google Summer of Code is a global program that offers students stipends to write code for open source projects. We have worked with the open source community to identify and fund exciting projects for the upcoming summer. One of these projects is named Guifi.net integration for QMP system, which has been applied by Joel Espunya and mentored by Pau Escrich. The main objective of it is to provide an easy way to use the QMP Mesh firmware inside the Guifi.net community network. (http://guifi.net/en/node/47699)

More info on the projects:

State of the art

The main purpose of QMP (Quick Mesh Project) is to provide an open and free software solution for the quick deployment of a WiFi network based on Mesh/MANET technology. It is focused to be useful mainly in the wireless community network. It is based on OpenWRT Linux and it is completely OpenSource.

The QMP project was drafted by Guifi.net (http://guifi.net/en) active members during year 2010. It was started on the beginnings of 2011 thanks to the funding of a local fundation named puntCat (http://www.fundacio.cat/en_index.html). This funding was ended on december 2011. However the project development still alive by a volunteers team.

  • Mesh Network

Strictly speaking, a Mesh network is one where all nodes (participants) are routers, meaning that all the nodes accept and forward packets from other nodes according to the routing rules. Thanks to this property the physical topology of the network is only restricted by the need of all nodes to be connected through at least one link.

  • Community Network

A community network is a network made and maintained by the same participants. Unlike the model used by the global telecommunication companies (which are business-focused), each user is owner of his stretch following the philosophy make-it-yourself. Using some agreements and organizations (e.g web site) they are able to connect with neighbours, neighbours of the neighbours and so on.

Project description

  • Summary

The objective of the project is to provide a software solution to easy integrate the Guifi.net characteristics into the QMP system.

  • Why this is needed

Currently QMP is a working system, that can be used to easy deploy a Mesh Network but there are several missing features. One of them is the integration with the Guifi.net community. It can also be used as a template for the integration of other Network Communities like Freifunk, Funkfeuer, AWMN, etc.

Die Augsburger Freifunkkiste

Super Hack von Freifunk Augsburg. Zigarrenkiste + Display + Router + modifiziertes Lcd4Linux-Paket = Die Augsburger Freifunkkiste.

"Ich hab heut mal nen Router und Display in eine alte Zigarrenkiste gebaut und das passte da wunderbar rein. Das Display ist von Pearl und kostete da gerade mal 2,90€, die Routerstation lag hier noch so rum. Zusammen gibt das ein recht nettes Austellungsstück... Um das Display anzusteuern wird ein modifiziertes Lcd4Linux-Paket benutzt. Irimi hat dazu im Openwrt Forum eine ausführliche Anleitung geschrieben: Digital Photo Frame as OpenWrt display howto. Für Freifunk hab ich ne angepasste lcd4linux.conf geschrieben, die zwei WLAN-Karten anzeigt. Das kann man hier Downloaden: lcd4linux für Freifunk (http://augsburg.freifunk.net/blog/show/archive/2012/Maerz/13/die_augsburger_freifunkkiste.html)"

Freifunk.net and Ninux.org accepted as Google Summer of Code Mentor Organizations

Freifunk.net and Ninux.org have been accepted as mentor organizations for the Google Summer of Code 2012. It is fantastic news that the growing international free networks community is now represented by two organizations in the study program.

If you are looking for more information on how to participate get in touch with your local wireless community or introduce your ideas on the wiki or Wlanware mailing list. People on the list will direct you to specific subprojects and contact points if needed.

Freifunk.net is an umbrella organization for wlan networks and community projects around the world and welcomes student applications for software tools to build and enhance free networks including:

* projects for routing protocols like OLSR, B.A.T.M.A.N. or other freely licensed protocols

* firmwares for routers and software for network devices

* software for network specific content creation like network CMS'

* any other network related software project

If you are a student there are important links to follow:

* Idea Page: http://wiki.freifunk.net/Ideas

* Student Check List: http://wiki.freifunk.net/Student_Check_List

* Mailing List http://freifunk.net/mailman/listinfo/wlanware

* Freifunk GSoC Page http://www.google-melange.com/gsoc/org/show/google/gsoc2012/freifunk

* Google Open Source Programs: http://socghop.appspot.com

There is an info day on March 15 in Rome. You can also meet many contributors to the community at the battle of the mesh in Athens from March 26-April 1: http://battlemesh.org/BattleMeshV5

Freifunk Global Newswire Relaunched with Map and Embed Features

After several years of maintaining the Global Newswire, we have just launched a new site of Global.freifunk.net with updated feeds and cool map features. The new site uses the Managing News profile which is based on Drupal and developed by the folks from Development Seed. A big thanks goes to Thanh Nguyen from Vietnam, who set up the system together with me. As the other freifunk.net sites, the site is hosted at in-berlin.de.
 
Mario Behling and Thanh Nguyen working on freifunk.net in Vietnam 
Mario Behling and Thanh Nguyen working on freifunk.net in Vietnam 
 
It took us a few days to figure out how to make it work for us. Some errors like an issue with sharing just came up, because we had not activated clean URLs, other errors, because the different servers we use run slightly different MySQL versions with the one the site is hosted on. Initially we wanted to update the previous site with the new profile. This worked generally, but some features just did not want to get working. The Managing News installation profile has a number of preconfigured modules. After taking a week trying to figure it out, we went back to the start and took another way. We chose to use a fresh install and moved the content of the previous site with the node exporter module. While the old content does not show up in the history anymore now, it can still be found through the search.
 
Global Freifunk Newswire - Map View 
 
To geolocate places in articles we use Yahoo Placemaker, which seems to give a good outcome when tagging places in articles. As we have a rather large number of feeds that need to be checked and updated, we need to run cron every few minutes in order to avoid time outs.
Previously, we also had a special German news site focusing on the German speaking freifunk community. As hits on this website have been rather low over the last two years, we have closed that site and redirected it to the international news site saving us time to focus on one system.

So, here it is, the new Freifunk News Site. One thing I personally like is the embed feature that lets you embed any feed into your site. Please check it out and tell us which cool new features you like. 
 
 
 
If you would like us to include your feed, please add it to the wiki page on the freifunk wiki. We will check here from time to time and add feeds to the newswire.

Links:

GSoC 2011: L-VN Lite Virtual Network

L-VN is a tool for overlay network creation based on IP in UDP encapsulation performed in Kernel space without encryption/authentication of the tunneled packets. The idea of L-VN is to exploit the IP/UDP encapsulation kernel module proposed for GSoC 2010  to develop a VPN/Overlay tool based on IP/UDP encapsulation performed in kernel space with no “security services” for the encapsulated packets (i.e. no confidentiality, no authentication). The goal is to provide a lightweight overlay network tool that might be preferable to other VPN/Overlay solutions for devices with limited computational resources. The project is a Freifunk-Ninux.org proposal, and is sponsored by the Google Summer of Code 2011 program.L-VN consists of 3 main elements:

  1. IPUDP encapsulation module: is a kernel module that exports a virtual network devices that perform ip-udp encapsulation. Packets routed through this network interfaces will be encapsulated in IP/UDP headers and sent to the proper tunnel endpoint.  As to the current status, ipudp module provides 2 virtual devices modes:  A) FIXED mode: a single ipudp tunnel is bound to a virtual ipudp device. This type of virtual interface is double-stack, in the sense that we can assign both IPv4 and IPv6 address to the device and use it for both IPv4 and IPv6 applications. B) MULTI_V4 mode: multiple ipudp tunnels can be bound to this type of virtual interface. For each encapsulated packet, the proper tunnel is chosen by a set of rules that bind the destination IP address of the inner packet, with a given tunnel. For GSoC2011 the module has been updated to be compatible with kernel 2.6.38 and modified in different points to implement the keepalive mechanism.
  2. IPUDP configuration tool: this tool can be compiled as both program or library and provides a set of primitives based on NETLINK sockets to configure the IPUDP encapsulation module. IPUDP_CONF provides the necessary primitives for addition/removal of virtual network devices, ipudp tunnels and forwarding rules.
  3. IPUDP signaling agents: a client and a server program written in C for automatic tunnel establishment and management. In details, these components provides the following services: a) mutual authentication based on X509 certificates and TLS (openssl); b) NAT reflexed address discovery and automatic tunnel establishment; c) NAT binding keep alive; d) automatic inactive tunnel de-allocation. This component has been completely implemented for GSoC2011 but it still needs some work.

The code is available through the ninux SVN repository, at the path: https://svn.ninux.org/svn/ninuxdeveloping/ipudp/v02. Comments, remarks or any kind of support will be truly appreciated.Contacts: marco.bonola@uniroma2.it, marco.giuntini@uniroma2.itThis article appeared first on Ninux.org: http://blog.ninux.org/2011/09/05/gsoc-2011-l-vn-lite-virtual-network/

Syndicate content