Freifunk-Gateway aufsetzen/Batman-Gatewayselection: Unterschied zwischen den Versionen

Aus Freifunk Franken
Wechseln zu:Navigation, Suche
Zeile 2: Zeile 2:


== Funktion & Konfiguration ==
== Funktion & Konfiguration ==
Mit der BATMAN Gateway Selection werden DHCP Anfragen die eigentlich Multicasts sind in Unicast zu einzelnen Gateways auf den Knoten umgewandelt. Damit der Knoten weiß welche DHCP Server im Netz sind, muss man als DHCP Server sich mit einer Bandbreite announcen. Über eine recht komplexe Formel anhand der announcend Bandbreite und der Metrik des Gateways wird nun entschieden welches Gateway ausgewählt wird.
Mit der BATMAN Gateway Selection werden DHCP Anfragen die eigentlich Multicasts sind in Unicast zu einzelnen Gateways auf den Knoten umgewandelt. Damit der Knoten weiß, welche DHCP Server im Netz sind, muss man als DHCP Server sich mit einer Bandbreite announcen. Anhand der announcend Bandbreite und der Metrik des Gateways wird nun entschieden welches Gateway ausgewählt wird.


Es kann z.b. eine feste Bandbreite announced werden
Es kann z.b. eine feste Bandbreite announced werden (siehe [[Freifunk-Gateway_aufsetzen/Batman-adv#IPv4]]


<pre>
<pre>
batctl -m bat6 gw_mode server 256000
batctl -m bat-nuernberg gw_mode server 100mbit
</pre>
</pre>


oder ein Script verwendet werden das die Bandbreite dynamisch anhand der Auslastung berechnet:
oder ein Script verwendet werden, das die Bandbreite dynamisch anhand der Auslastung berechnet:


== Gateway Selection dynamisch festlegen ==
== Gateway Selection dynamisch festlegen ==

Version vom 23. Juni 2019, 19:00 Uhr

B.A.T.M.A.N Gateway Selection

Funktion & Konfiguration

Mit der BATMAN Gateway Selection werden DHCP Anfragen die eigentlich Multicasts sind in Unicast zu einzelnen Gateways auf den Knoten umgewandelt. Damit der Knoten weiß, welche DHCP Server im Netz sind, muss man als DHCP Server sich mit einer Bandbreite announcen. Anhand der announcend Bandbreite und der Metrik des Gateways wird nun entschieden welches Gateway ausgewählt wird.

Es kann z.b. eine feste Bandbreite announced werden (siehe Freifunk-Gateway_aufsetzen/Batman-adv#IPv4

batctl -m bat-nuernberg gw_mode server 100mbit

oder ein Script verwendet werden, das die Bandbreite dynamisch anhand der Auslastung berechnet:

Gateway Selection dynamisch festlegen

Achtung: Das dynamische Verändern der Gateway Selection macht das Debugging noch wesentlich komplizierter, als es eh schon ist. Bei den meisten Aufbauten bringt das auch gar nichts. Daher ist es (vor allem für den Anfang) NICHT empfehlenswert, etwas derartiges einzurichten.

Gatewayselection abschalten wenn Lease voll

Wenn man keine DHCP Leases mehr zur Verfügung hat, sollte die Gateway Selection abgeschaltet werden, damit Clients die DHCP-Offers des anderen Gateways sehen können. Dazu muss ein passendes Skript gebaut werden, dass die Anzahl der Leases prüft.

Das Skript muss dann natürlich regelmäßig aufgerufen werden, z.B. per Cron.

Unten ist dafür ein Beispiel, wie so ein Skript aussehen könnte.

# Vergebene Leases beim isc-dhcp-server zählen
#leasecount=$(/usr/sbin/dhcp-lease-list --parsable --lease /var/lib/dhcp/dhcpd.leases 2>&1 | grep "10.50.6" | wc -l)

# Vergebene Leases beim dnsmasq zählen
leasecount=$(cat /var/lib/misc/nuernberg.leases | wc -l)

# Bei entsprechender Anzahl an vergebenen Leases (-gt => greater than) die Selection entsprechend anpassen
if [ $leasecount -gt 450 ]; then 
	/usr/local/sbin/batctl -m bat4 gw_mode off
else
	/usr/local/sbin/batctl -m bat4 gw_mode server 5mbit
fi