Richtlinien
Freifunk kann nur funktionieren wenn sich alle Teilnehmer an bestimmte Richtlinien halten. Die hier gesammelten Vereinbarungen sollten daher von allen Teilnehmern eingehalten werden. Anders gesagt wenn du dich an diese Vereinbarungen hältst sollte deine Firmware kompatibel mit Freifunk Kiel sein.
Notwendiges
AdHoc / Mesh WLAN
In jedem Freifunk Router sollte es ein WLAN Interface geben was wie folgt konfiguriert ist:
- Modus: AdHoc
- ESSID: batman.kiel.freifunk.net
- BSSID: 02:CA:FF:EE:BA:BE (leicht zu merken: "2 Caffee Babe")
- Modulation: (mindestens) 802.11g oder (besser) 802.11n
- Kanal: 11
Im folgenden werden wir diesen Interface mit dem Gerätesynonym wlanM bezeichnen. Wobei M auf deinem Gerät eine beliebige Nummer sein könnte.
Routing / B.A.T.M.A.N. Advanced
Zum Aufbau des Mesh Netzwerkes verwenden wir in Kiel B.A.T.M.A.N. Advanced und zwar in der 'compatibility version 14' z.B. Version 2011.3.0. Mehr zu B.A.T.M.A.N. Advanced findest du im OpenMesh Wiki. Das Interface wlanM muss dabei von B.A.T.M.A.N. Advanced verwaltet werden.
IP Adressen Vergabe
Um Adressvergabe Listen zu umgehen wird im Freifunk Mesh Netzwerk IPv6 verwendet. Wir benutzen als Präfix:
FDA1:384A:74DE:4242::/64
Wenn eine Verbindung zur Kieler Wolke besteht oder per W-LAN eine direkte Verbindung zu einem Freifunk-Knoten besteht kann Router Advertizement genutzt werden um Adressen zu vergeben. Dazu muss unter Linux das IPv6 forwarding auf dem Interface abgestellt werden:
sysctl -w net.ipv6.conf.$BRIDGE.forwarding=0
Wobei $BRIDGE die Finale Freifunk Netzwerk Schnittstelle sein sollte. Das kann bat0 sein, falls das Mesh Netzwerk nicht mehr mit anderen Netzwerkschnittstellen über eine Brücke verbunden wird. Danach sollte sich die Schnittstelle innerhalb von 10 minuten eine IPv6 Adresse mit obigem Präfix geben.
Alternativ kann der Interface Identifier auch selbst festgelegt werden.
Siehe auch IP-Adressen.
Empfohlendes
EndGeräte WLAN
Wir bezeichnen Geräte, die nicht die in der Lage sind, B.A.T.M.A.N. Advanced zu betreiben, als Endgeräte. Für diese kann/sollte man einen Access Point (AP) betreiben, welcher mit dem 'bat0' (dem virtuellen Interface von B.A.T.M.A.N. Advanced) in einer Netzwerkbrücke verbunden werden sollte.
- Modus: Master/AP
- ESSID: http://kiel.freifunk.net/
- Modulation: (mindestens) 802.11g oder (besser) 802.11n
- Kanal: 11
FASTd / Kieler Wolke
Falls dein Router der einzige in der Gegend ist kannst du Verbindung zur 'Kieler Wolke' aufbauen. Das virtuelle Interface von tinc sollte dabei mit von B.A.T.M.A.N. Advanced verwaltet werden.
Optionales
Siehe auch Gateway.
Öffentliche Dienste
Reserviere dir eine fest IP und lass dich damit auch ins DNS eintragen.
Internet Zugang oder andere Subnetze
Als erstes solltest du in der Liste IP-Adressen sowohl eine IPv4 als auch eine IPv6 Adresse reservieren. Danach brauchst du je nach Zweck folgende Dienste (Technologien):
- babeld (babel)
Wenn du Internet Zugang anbieten möchtest brauchst du folgende Dienste (Technologien):
- dhcpd (dhcp)
- optional bind (dns)
Babel
Um im die Route zu einem Subnetz im Netz bekannt zu gegeben verwenden wir babeld. Wir verwenden Port 6696 und die Multicast Adresse ff02:0:0:0:0:0:1:6.
# /etc/babeld.conf interface br-ffki wired false # refuse default gateway routes in ip 0.0.0.0/32 le 0 deny # deny subnets in mesh subnet in ip fda1:384a:74de:4242::/64 le 127 deny # allow private v6 and v4 networks in ip fc00::/7 ge 48 allow in ip 10.116.0.0/16 le 32 deny in ip 10.0.0.0/8 ge 16 allow # refuse other routes in deny # redistribute private v6 subnets redistribute ip fc00::/7 metric 256 # redistribute v4 subnets but not addresses from our own redistribute ip 10.116.0.0/16 le 32 deny redistribute ip 10.0.0.0/16 ge 16 metric 256 # redistribute local interface addr redistribute local if br-ffki # refuse anything else not explicitely allowed redistribute local deny redistribute deny
DHCP
Reserviere dir für diesen Zweck ein IPv4 Subnetz in der IP-Adressen Liste. Das Netz sollte mit der Subnetmask /16 verteilt werden. Als DNS sollten, wenn du nicht selber einen DNS Server pflegst, Server aus der Liste der DNS Server verteilt werden.
Siehe auch DHCP.