Babel und dnsmasq in unsere firmware: Unterschied zwischen den Versionen

Aus Freifunk Franken
Wechseln zu:Navigation, Suche
Keine Bearbeitungszusammenfassung
 
(16 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Outdated}}
[[Kategorie:Scripte]]
'''Mittlerweile sind babeld und dnsmasq in der offiziellen Firmware. Siehe auch [[Gatewayfirmware]]'''
<div class="toccolours mw-collapsible mw-collapsed" style="overflow: auto">
__TOC__
__TOC__
{{Entwurf}}
[[Kategorie:Technik]]
Um aus einem Router ein Gateway zu machen, muss in die Firmware Babel und dnsmasq mit eingebaut werden. Dieses Patch baut diese 2 Programme plain mit ein, es müssen danach noch diverse Konfigurationen und Routingparameter gesetzt werden. Es kann sich dazu ganz grob an die Anleitung zum [[Freifunk-Gateway_aufsetzen|Gateway aufsetzen]] gehalten werden.
Um aus einem Router ein Gateway zu machen, muss in die Firmware Babel und dnsmasq mit eingebaut werden. Dieses Patch baut diese 2 Programme plain mit ein, es müssen danach noch diverse Konfigurationen und Routingparameter gesetzt werden. Es kann sich dazu ganz grob an die Anleitung zum [[Freifunk-Gateway_aufsetzen|Gateway aufsetzen]] gehalten werden.


Achtung! Man sollte sich bei solchen Experiementen immer gut überlegen wie man den Router noch erreichen kann, man kann sich relativ leicht selbst komplett aussperren. Nach diesem Patch baut der Router z.b. kein fastd Batman mehr zu einem Gateway auf, er mesht aber noch frei mit anderen Routern und spannt auch noch ein WLAN auf.
Achtung! Man sollte sich bei solchen Experiementen immer gut überlegen wie man den Router noch erreichen kann, man kann sich relativ leicht selbst komplett aussperren.


Zu beachten gilt auch, das dnsmasq und Babel zu groß für 4MB Router sind, die Firmware wird nicht für jeden Router bauen. Ich hab sie aktuell für ar71xx gebaut und auf einen wr1043 (hat 8MB Flash) verwendet.
Achtung Patch ist nur für ar71xx muss u.U. auch für andere Hardware manuell angepasst werden!


<pre>
<pre>
Zeile 50: Zeile 55:
2.1.4
2.1.4
</pre>
</pre>
das ganze liegt fertig kompiliert hier:
http://fff-gw-cd1.fff.community/dev/babeld/
(!!ACHTUNG!! ungetestet!! Verwendung auf eigene Gefahr!)


Ganz zwingend sollte nach dem flashen zuerst komplett unterbunden werden, das er noch eine BatmanVPN Verbindung aufbaut:
Ganz zwingend sollte nach dem flashen zuerst komplett unterbunden werden, das er noch eine BatmanVPN Verbindung aufbaut:
Zeile 104: Zeile 114:
on up "
on up "
ip link set up fffgwcd1VPN
ip link set up fffgwcd1VPN
ip address add 10.83.252.12/32 dev $INTERFACE # eigene IP
ip address add 10.83.252.xx/32 dev $INTERFACE # eigene IP
ip -6 addr add fe80::c11:12:15:d4 dev $INTERFACE # gefakte Locallink
ip -6 addr add fe80::c11:xxxx dev $INTERFACE # gefakte Locallink
ip rule add from 10.0.0.0/8 table fff prio 20
ip rule add from 10.0.0.0/8 table fff prio 20
ip rule add to 10.0.0.0/8 table fff prio 20
ip rule add to 10.0.0.0/8 table fff prio 20
ip route add 10.50.140.1/32 dev br-mesh proto static table fff # eigene Gatewayip der Hood
ip route add 10.50.xxx.1/32 dev br-mesh proto static table fff # eigene Gatewayip der Hood
ip route add 10.50.141.0/24 dev br-mesh proto static table fff # Range die per dhcp vergeben wird
ip route add 10.50.xxx.0/24 dev br-mesh proto static table fff # Range die per dhcp vergeben wird
";
";
secure handshakes no;
secure handshakes no;
Zeile 115: Zeile 125:




Ebenfalls muss fastd noch in den Autostart, ich glaub ich hab dazu einen Cron gebastelt, damit falls der Link abbricht wieder neu aufgebaut wird. Muss u.U. noch schöner gemacht werden ;)
Ebenfalls muss fastd noch in den Autostart (/etc/rc.local -> "fastd -c /etc/fastd/CONFIGFILE &") das "&" am Ende keinesfalls vergessen! Sonst wird ab hier die File nicht mehr weiter ausgeführt und der ganze rest danach fehlt!!


2 wertvolle Links die bei fastd extrem weiterhelfen:
2 wertvolle Links die bei fastd extrem weiterhelfen:
Zeile 140: Zeile 150:
</pre>
</pre>


falls man dies in der /etc/rc.local macht, aufpassen das jede Zeile mit & abgeschlossen wird, da er sonst u.U. beim booten hängen bleibt und die File nicht bis zu Ende ausführt, ganz ekliges Zeug...


Das Interface br-mesh muss noch die Gateway IP bekommen:
Das Interface br-mesh muss noch die Gateway IP bekommen:
Zeile 150: Zeile 161:
         option type 'bridge'
         option type 'bridge'
         option auto '1'
         option auto '1'
         option macaddr '30:b5:c2:0e:c9:54'
         option macaddr '30:b5:c2:XXXXXX'
         list ip6addr 'fdff:0::30b5:c20e:c954/64'
         list ip6addr 'fdff:0::30b5:c20e:XXXXX/64'
         list ip6addr 'fdff:0::1/64'
         list ip6addr 'fdff:0::1/64'
         list ip6addr 'fdff:0::32b5:c2ff:fe0e:c954/64'
         list ip6addr 'fdff:0::32b5:c2ff:fe0e:XXXXX/64'
         option ipaddr '10.50.130.1'
         option ipaddr '10.50.X.1'
         option netmask '255.255.254.0'
         option netmask '255.255.X.0'
         option proto 'static'
         option proto 'static'
         option ifname 'eth0.1 bat0'
         option ifname 'eth0.1 bat0'
Zeile 171: Zeile 182:
dhcp-range=10.50.131.1,10.50.131.127,255.255.254.0,1h                             
dhcp-range=10.50.131.1,10.50.131.127,255.255.254.0,1h                             
dhcp-option=3,10.50.130.1
dhcp-option=3,10.50.130.1
dhcp-option=option:dnsserver,10.83.252.11,10.50.40.10,10.50.252.0                                                           
dhcp-option=option:dns-server,10.83.252.11,10.50.40.10,10.50.252.0                                                           
log-queries   
log-queries   
</pre>
</pre>
Zeile 179: Zeile 190:
dhcp-range=DHCP_RANGE_START,DHCP_RANGE_ENDE,SUBNETZMASK,LEASETIME
dhcp-range=DHCP_RANGE_START,DHCP_RANGE_ENDE,SUBNETZMASK,LEASETIME
dhcp-option=3,STANDARTGATEWAYIP
dhcp-option=3,STANDARTGATEWAYIP
dhcp-option=option:dnsserver,DNSSERVER
dhcp-option=option:dns-server,DNSSERVER
log-queries   
log-queries   
</pre>
</pre>
Zeile 219: Zeile 230:
</pre>
</pre>


dabei ganz oben die Interfaces anpassen. In /etc/default/babeld auch die Interfaces eintragen. Danach /etc/init.d/babeld start und Router nochmals neu starten.  Fertig.
dabei ganz oben die Interfaces anpassen. /etc/config/babeld löschen! Danach /etc/init.d/babeld start und Router nochmals neu starten.  Fertig.


== Alfred ==
== Alfred ==


Leider ist noch kein Alfredproxy für die Router geschrieben worden, aktuell umgehe ich das Problem indem ich die Alfreddaten mit einen zusätzlichen Raspberry Pi sammel und ans Monitoring schicke, Infos dazu hier [https://wiki.freifunk-franken.de/w/Raspberry_Pi_ins_Batman]
Inzwischen gibt es den [https://github.com/kratz00/firmware/tree/calfred/src/packages/fff/fff-alfred-monitoring-proxy alfred-monitoring-proxy] und [https://github.com/kratz00/firmware/tree/calfred/src/packages/fff/alfred-json alfred-json] gibt es als OpenWRT Packages.
 
Allerdings ist ein Fehler im alfred-monitoring-proxy in Zeile 9:
 
Anstatt <pre>--data "{$fetch_id: $data}"</pre> müsste es <pre>--data "{\"$fetch_id\": $data}"</pre> heißen.


== WLAN Parameter ==
== WLAN Parameter ==
Zeile 237: Zeile 252:


Die eigene Hood kann aber auch mit ganz anderen Parametern betrieben werden, so ist z.b. denkbar die Hood auf 802.11s umzustellen oder gar eine andere Batmanversion zu verwenden.
Die eigene Hood kann aber auch mit ganz anderen Parametern betrieben werden, so ist z.b. denkbar die Hood auf 802.11s umzustellen oder gar eine andere Batmanversion zu verwenden.
== und das geilste daran... ==
Wenn man auch den Layer 3 Endpunkt selbst betreibt und dort genug L3 Peerings zu verschiedenen Personen hat, ist dieser Aufbau absolut dezentral und kann von keiner zentralen Position mehr abgeschaltet werden. Es wird kein KeyXchange und auch sonst keine "zentrale Instanz" mehr benötigt.
=== Beispiel Neunhof und Unterfürberg ===
Diese zwei Layer 2 Netze hängen jeweils an [http://vm2-fff-gw-cd1.fff.community:8080/ vm2-fff-gw-cd1.fff.community] angebunden. Dieser Server wird auch von mir alleine administriert. Auf diesen Server habe ich mich um viele Layer 3 Peerings zu anderen Personen gekümmert. Wenn ich mich nicht gerade verzählt habe, müssten darin 6 Personen hängen die alle das Peering zu mir kappen müssten um mein Netz vom Freifunk zu trennen und selbst dann würde es durch eigenen Internetexit (Mullvad) zumindest noch Internet haben.
Das ist für mich dezentralität.
</div>

Aktuelle Version vom 15. August 2019, 23:44 Uhr


Mittlerweile sind babeld und dnsmasq in der offiziellen Firmware. Siehe auch Gatewayfirmware