Freifunk
What it is and how is the software developed?
What's that?
Freifunk stands for free communication in digital data networks.
We understand free as publicly accessible, non-commercial, owned by the community and uncensored.
Original:
Freifunk steht für freie Kommunikation in digitalen Datennetzen.
Wir verstehen frei als öffentlich zugänglich, nicht kommerziell, im Besitz der Gemeinschaft und unzensiert.
… or in other words
-
Non-commercial initiative for free (radio) networks
- Citizens invest time, money and enthusiasm in themselves
-
Open network
- Attention: Do not confuse with open hotspots!
- As independent and decentralized a network as possible
- Internet technology for citizens
-
People interconnect their network (autonomous systems)
Pico Peering Agreement (1/2)
Basic rules for free (radio) networks
- Free transit (no impairment or modification of the data)
-
Open communication
- publish all interface information (free license)
- available owner, provides at least one e-mail address
- No warranty
- Terms of use (acceptable use policy)
- Local amendments (by the node owner)
Pico Peering Agreement (2/2)
Links
A typical free radio network (1/5)
- A Batman-Adv network (Like a big decentralized switch)
- VPN for the radio islands
- Multi-Client to Multi-Client VPN
- Layer 2 Net
- No internal routing / forwarding
- Multiple VPN Server / Gateway
A typical free radio network (2/5)
- DHCP
- DNS name resolution
- Gateway to the Internet / ICVPN (Freifunk-InterCity-VPN)
- Monitoring
- Map of all nodes (→ https://www.freifunk-karte.de/)
- Router firmware built for every network and for device types
A typical free radio network (3/5)
Mostly based on Gluon (4/5)
-
Gluon
is based on OpenWrt
-
OpenWrt project started 2004.
Linksys built WRT54G with modified GPL code.
Linksys was required to make its version available under GPL.
-
One of the interesting things of OpenWrt is the centralized configuration named
→ UCI.
A typical free radio network (5/5)
-
The “Rheinland Backbone” has been operated by Freifunk Rheinland e.V. since
September 2014.
Currently, more than 60 communities throughout Germany are connected to the
backbone in order to transfer data traffic from the WiFi routers to the Internet.
- This is anything but decentralized, with all the disadvantages of centrality.
Freifunk Franken free radio network (1/2)
Multiple layer 2 islands (Hoods)
- Connection via layer 3
- Decentralized gateways (Not every gateway knows all other gateways. The Hoods are more independent.)
- Equal router firmware for all Hoods (also different for device types)
Freifunk Franken free radio network (2/2)
Freifunk Franken - keyXchange V1
Until December 2018
- Automatic peering
- VPN endpoint switching
- Node responds with location
- Geographically nearest Hood is assigned (voronoi)
- Client gets list of all servers of Hood
- Problem: Connected Hoods by WiFi
Gateway (1/2)
- VPN server: In every Hood are several of them
- Internet: DNS / Gateway
- Address assignment via DHCP
- Adjustment according to traffic load: Batman-Adv GW Selection
Gateway (1/2)
- IPv4 NAT (sometimes via foreign countries) to the Internet
- VPN as GRE or Wireguard / Routing to other Gateways
- Babel Routing
- Routing metrics without traffic/bandwidth
Freifunk Franken - keyXchange V2
Started at the beginning of 2018
- Node sends location
- KeyXchange provides Hood-File (suitable for the location, polygon, voronoi)
- Node configured: VPN, WiFi, IPv6 network
- Unintentional Hood connections are avoided
Freifunk Franken - Hood file V2
- ULA prefix (Unique local address, IPv6)
- VPN Access: Protocol, IP, Port, Key
-
Hood data:
- Name, AP-ESSID
- BSSID, MESH ID, MESH ESSID
- Mesh protocol (Batman-Adv)
- 2.4 and 5 GHz channel, bandwidth, mesh type
- Upgrade URL
- Location of the Hood
Where I saw Freifunk first?
- 2016 in a restaurant in Pinzberg near Forchheim
- Open WiFi named franken.freifunk.net - free Internet
- Have read more at http://franken.freifunk.net/
Tried it myself in September 2016
- Bought TP-Link TL-WR841 (no longer recommendet), price ~ 20 €
- Changed router firmware to Freifunk Franken
- Configuration: http://[fdff::1]/, set node name, pick location on map popup, add my email, change password, restart, online
Joined community by adding a node
Monitoring Freifunk Franken
Build a local community
- Find people around me, (e.g. mailing list)
- Meet them first
- Have a continuous appointment in Forchheim, first Friday in month
-
Have guests, e.g. gateway operators
(Gateway how to)
- Or I am a guest in other communities like Erlangen, Nuremberg, Haßfurt.
-
Set up a domain for my community
(freifunk-fo.de)
Run a dentralized gateway …
Have directional radio
Downstairs …
-
… is the decentralized gateway.
(device in
→ monitoring)
-
Blue lines are directional radio with Babel
(Babel is a distance vector routing protocol for unreliable computer networks.)
There was no Perl …
- … but remember, many things concerning the interaction of an Open Souce Community.
-
Wrote a bot in Perl to inform the community about recurring events,
and also wake me up.
-
Perl tool configured via the Wiki that informs me and others about the status
of my devices.
In the end, I don't always have to keep an eye on the monitoring web pages.