Batman Link alternating (Bonding) (Was: [Freifunk Franken] Speedtest Hardhöhe.)

Tim Niemeyer tim.niemeyer at mastersword.de
Di Jan 5 12:30:42 CET 2016


Guten Morgen Ralf

Ich hab mal die -dev Liste inc CC gepackt.

Am Dienstag, den 05.01.2016, 08:37 +0100 schrieb R.funkt:
> Am 04.01.2016 um 23:51 schrieb Tim Niemeyer:
> > Moin Ralf
> > 
> > Am Montag, den 04.01.2016, 23:06 +0100 schrieb R.funkt:
> >> Ich habe in den Ferien mal anfangen, mich in batman-adv einzulesen,
> >> bin aber auch noch weit weg von 100%. (Hab auch schon was
> >> zusammengeschrieben fürs Technik-Portal, kommt demnächst.)
> >> Jedenfalls stimmt deine letzte Aussage (= batman ist dumm). Zur Zeit
> >> macht batman kein Load-Balancing. Batman sucht sich den Weg basierend
> >> auf Anzahl der Hops (Parameter hop_penalty) und Leitungsqualität (=
> >> Anzahl verlorener Pakete). Dabei wird NICHT die Gesamtqualität bis zum
> >> Ziel berechnet, sondern immer nur Hop für Hop betrachtet.
> >> In bestimmten Szenarien (ein Hop) kann man sich mit Interface Bonding
> >> in Richtung Load-Balancing bewegen, aber das trifft nicht auf das
> >> komplexe Hardhöhe Setup zu.
> > 
> > Ich hab das hier eher anders raus gelesen:
> > https://www.open-mesh.org/projects/batman-adv/wiki/Multi-link-optimize
> > 
> > Tim
> 
> Hi Tim,
> 
> ich vermute, Du beziehst Dich konkret auf Interface Bonding?
> Wahrscheinlich müsste man das einfach mal selbst ausprobieren und
> Erfahrung damit sammeln.
Ne, ich hab nur die batman-adv Doku gelesen.

> Mein Verständnis ist, das Interface Bonding (ebenso wie Ethernet Link
> Aggregation) ein Layer-2 Feature ist und zwischen zwei Stations
> aufgesetzt wird. Falls man das ganze von einem auf mehrere Hops
> erweitert, sind auf den open-mesh.org Seiten Throughput Probleme
> dokumentiert, z.B. hier (es gibt aber auch aktuellere Links):
> 
> "However, our tests have shown that bonding mode achieves maximum
> throughput over single hops only. For multi-hop paths interface
> alternating (see the next section) provides better performance results."
Richtig, das steht so auch in meinem Link oben drin. Daher setzen wir ja
auch seit Jahren das "alternating" (was default ist) ein.

> https://www.open-mesh.org/projects/open-mesh/wiki/2010-12-12-batman-v-status-update
> 
> Ich denke, das liegt im Wesentlichen daran, dass keine Traffic Flows
> verteilt werden (so wie bei Layer-4 Load-Balancing), sondern (da wir ja
> nur auf Layer-2 sind) ein simples Round-Robin Schema eingesetzt wird.
> Die Pfade dürfen sich daher in Throughput und Buffering Latency nicht zu
> stark unterscheiden, sonst gibt es Packet Re-ordering. Je mehr Hops
> involviert sind und je komplexer das Setup ist, desto schwieriger wird
> es, dies zu erreichen.
Vermutlich ja. Aber in wie fern diese Entscheidung in die
Routing-Entscheidung eingeht weiß ich nicht. Ich kann mich da aktuell
auch nur an der Doku orientieren, die sagt nämlich dass ein halb-duplex
Interface eine penalty für die Weiterleitung bekommt. Daher würden bei
der Hardhöhe die Weiterleitungen auch vermutlich immer über das Ethernet
gehen. Paket über Wifi wird emfpangen, weiterleiten über Wifi
(halb-duplex) is schlecht, also wird der zweite Weg (Ethernet) genommen.

> Ich bin mir zudem nicht sicher, ob das Christian/delphiN-->Höffner Setup
> aufgrund seiner Y Struktur überhaupt Bonding fähig ist. Auf jeden Fall
> bräuchte man schon mal denselben Gateway Server.
Wenn da nicht irgendwas grundlegend kaputt ist, sind beide Enden mit den
selben VPN Servern verbunden. Also dort könnte (zumindest theoretisch)
das alternierende Signal vom Batman wieder zusammen gefriemelt werden.

Tim




Mehr Informationen über die Mailingliste franken-dev