Batman Routing bei mehreren Routen unter Last

Nabend,
ich habe gestern eine relativ schlaue Frage gestellt bekommen, die ich so adhoc nicht beantworten konnte. Daher hab ich das mal Aufgemalt und reiche das mal hierher weiter:

Die Zeichung zeigt ein kleines Mesh Netz bestehend aus 3 Router mit batman-adv 2013.4 und 4 Clients.
Nehmen wir mal an, die Route A-C kann 100Mbit/s die Route BatA-BatB und BatB-BatC nur 50Mbit/s.

ClientA hat eine TCP Verbindung zu ClientD aufgebaut und schiebt konsistent 100Mbit/s so das der Link BatA-BatC voll ist.
Jetzt baut ClientB eine Verbindung zu ClientC auf und will Daten schieben… Was passiert?

Nach meinem Verständnis, würde Batman die Strecke BatA-BatC als schlecht erkennen und neue Connections über BatA-BatB und dann BatB-BatC lenken?

Wie sieht es denn jetzt aber mit UDP Verkehr aus? nehmen wir an ClientA zu ClientD macht nicht TCP sondern feuert da einen UDP Stream durch, der den Link dicht macht. Batman würde die schlechte Strecke BatA-BatC erkennen und weiteren Verkehr auf BatA-BatB → BatB-BatC lenken? Sprich Batman würde dann zwischen beiden Strecken flappen? Ohne das es wirklich „mehr“ Bandbreite zwischen BatA und BatC werden würde?

1 Like

So weit ich es verstanden habe sorgt Batman nicht für Load-Balancing.
Sondern nur dafür anhand des Paketverslustes bei den OGM-Paketen zu erahnen, welche Strecken aktuell am wenigsten gestört sind (aka: Wenig Verlust haben)

Das führt dann dazu, dass die Routen sich alle paar Sekunden/Minuten ändern, dann aber „total“. Und zwar auf ethnernet-ebene, nicht auf TCP-Ebene. d.h. auch ein bestehender TCP-Connect wechselt dann auf die „besser“ diagnostizierte Route.
(In der Praxis ist das in der Tat oft kontraproduktiv.)

So habe ich es auch verstanden.

Batman scheint an der Stelle sehr rudimentär bis unterentwickelt zu sein, im Vergleich zu anderen Multilinkprotokollen wie bspw. Trill.

Zusätzlich kommt in gezeichnetem Beispiel hinzu das es keine zweite Verbindung gibt, denn die Verbindung über BatB ist mit einem weiteren Hop so weit entfernt, dass diese benutzt würde, wenn BatA - BatC gar nicht mehr existieren würde.

Das ist derzeit auch das Problem im Mesh lokal.

Drei Router meshen, A mit B und B mit C. A und C haben eine VPN Mesh Verbindung mit einer adsl 1.000/128.

Statt von A nach C über das lokale Mesh zu gehen wird die schlappe DSL Verbindung bevorzugt, weil aus Sicht von Batman die Strecken identisch weit weg sind und im Funknetz 2,5 Pakete mehr droppen. Ist noch ein weiterer Hop mehr im lokalen Netz dazwischen, hat man selbst mit Verschiebung der Metriken kaum noch eine Chance die lokale Verbindung zu bevorzugen.

DAS Leiden sehe ich hier in der Kiefern-Nadeshda-Niemandsland-Wolke täglich.
Da gibt es DSL6MBit, welches fast aus dem letzten Loch preift, und 3 „gute Hops“ (Linkspeed jeweils >200MBit/s laut Statuspages) weiter idelt ein DOCSIS200 gelangweilt in der Gegend herum… (o.k. es macht 8MBit/s Downstream… aber laut Speedtest „lokal“ ist noch Luft bis sonstwo)

Sind denn bei Batman Verbesserungen in Sicht? Soweit ich das verstanden habe, ist Batman doch auch für die nicht unerhebliche Internet-Grundlast verantwortlich oder?

Die Frage ist an der Stelle ob das Austauschen des batman nicht schmerzloser wäre…

Kann man auf den Servern nicht dafür sorgen dass 90% der OGM-Pakete „verlorengehen“?

1 Like