Ist es möglich die Mesh Hops zu wählen, die eine Verbindung benutzt?

Im Moment ist es bei gluon ja so, dass bei der Datenübertragung von einem Client an einer Node zu einem an einer anderen Node, die kürzeste Route, die gewählt wird, ja meist dann das Gateway wählt, anstatt eine ev. direkte Wlan mesh-Verbindung durch mehrere Router zu benutzen.

Kann man irgendwie beeinflussen, dass eine definierte Strecke von Freifunk Router Hops gewählt wird, damit man dort schnell große Datenmengen durchjagen kann, ohne dass ein Gateway benutzt wird?

2 Likes

Batman wurde konzipiert, um ein WLAN-Maschen-Netzwerk aufzubauen. Um ins Internet zu Routen gibt es Gateways. Nun sind aber viele Freifunk-Gemeinschaften davon abgekommen und stellen ihre Gateways über fastd-Verbindungen direkt ins Internet, um einen kohärenten Batman-Unterbau für das gesamte Gebiet anzubieten und die weißen Flecken auf der Karte zu überbrücken. Diese fastd-Tunnel sind aus Sicht von Batman viel besser, obwohl langsamer. Batman routet bevorzugt über stabilere Verbindungen. Hier die ganze Beschreibung:

und noch viel mehr auf http://www.open-mesh.org

man kann in Batman aber eine Backbone-Tabelle anlegen:

http://downloads.open-mesh.org/batman/manpages/batctl.8.html

Spiel damit rum, mal sehen was passiert.

Notfalls die Knoten mit langsameren Internet-Verbindungen vom Internet trennen, so dass über WLAN verbundene Wolke nur einen Zugangspunkt ins Internet hat.

2 Likes

Könnte man nicht die Penalty für die gateway verbindungen hochsetzen?

[quote=„fly“]den konkreten pfad im mesh per hand zu waehlen ist genau das gegenteil eines dynamischen routing-protocol. aber AFAIK kannst du bei batman-adv in den untiefen von /sys die hop-penality je interface aendern und somit wlan-pfade priorisieren
[/quote]

Wie würde so etwas gehen? bzw. was muss ich alles lernen/können um so etwas zu konfigurieren? (Ich bin noch fast blutiger Freifunk-Anfänger)

Update:

[quote=„Diskussion im #gluon IRC Channel“]@fly: ich hab grad nochmal nachgeschaut. anscheinend laesst sich die hop-penalty nur je soft-interface (bat0, bat1 usw) aendern und nicht wie zunaechst vermutet je transport-interface
@rubo77: irgendwie muss es doch möglich sein, seine daten durch die Freifunk-mesh verbindungen zu leiten, oder?
Sonst wäre ja das zweitbesste feature von Freifunk kaputt zur Zeit, wenn der immer die gateways als bessere verbindung sieht obwohl eine direkte mesh verbindung da waere
Das waere doch schön, wenn man das irgendwie aktivieren könnte.
@tcatm: Die Metrik ist nicht optimal für das, was wir machen.
@rubo77: vielleicht durch ein regelwerk, dass man im gateway anmelden kann, wo er verbindungen bevorzugen soll oder so was
@rubo77: also es waere doch gut, wenn man den gateways bekannte sicht-verbindungen beibringen könnte und da haut das dann eine penalty auf die gateway hops
@tcatm: Bekommt man bestimmt schöner hin. Muss nur mal wer machen. Etwas, was sowas automatisch hin bekommt.
Wenn das gateway bei bestimmten verbindungen eine penalty draufrechnet, wenns durch gateway gehen soll, dann wäre es schon zu spät.
@rubo77: achso, wo muesste das denn ansetzen?
@tcatm: Batman kennt keine Verbindungen. Nur Pakete.
@tcatm: Vielleicht reicht es auch schon auf allen Gateways die penalty zu erhöhen, aber mach mal lieber erstmal ein paar Experimente bevor du das mesh kaputt machst.
@tcatm: Wichtig wäre wohl die penalty auf allen gleich zu setzen.
@ohrensessel: ja wenn du ergebnisse hast immer her damit, würde mich auch interessieren
@tcatm: Ein test setup könnte wohl aus laptop + 4 Knoten bestehen.
irc log zu https://forum.freifunk.net/t/ist-es-moglich-die-mesh-hops-zu-wahlen-die-eine-verbindung-benutzt/1434/3 · GitHub

@rubo77: wer könnte das mal testen?

[/quote]

3 Likes

Auch wenn ich inhaltlich gerade wenig dazu beitragen kann: Ich finde das sehr spannend und kann mir nur wünschen, dass bei dieser Forschung etwas herauskommt.

(Ich muss gestehen, in früheren Jahren mal Teil eines flat-routing-Netzes mit rund 700 Nodes „Store&Forward für Email“ gewesen zu sein. Da hat man MAPS-Schipsel mit den eigenen Verbindungen zu Nachbarnodes und die Verbindungshäufigkeit angegeben. Jeder Node hat dann diese Mapsschnipsel von allen Nodes genommen und daraus eine lokale Routing-Tabelle mittels eines pathalias-Aufrufes generiert.
Da konnte man viele Dinge lokal „tweaken“. Jedoch immer mit dem Risiko, dabei unbeabsichtigt Loops zu erzeugen, weil Pakete dann im Kreis gelaufen sind, wenn innerhalb des Netzes unterschiedliche Vorstellungen vorhanden waren, welches die „Transportrichtung“ denn zu sein habe.)

Könnte man das nicht mal hiermit testen?

Ich habe noch eine Idee, geht allerdings nur, wenn man zu allen routern auf dem weg direkten ssh-zugang hat:
Man könnte doch von Hand per ssh-forwarding oder -tunneling sich seine Route zusammen-konfigurieren oder?

Also von seinem lokalen Rechner direkt auf den Router an dem man Hängt, von da zu nchsten, wieder direkt… bis man an dem Router angelangt ist, zu dem man will.

Welche technik und welhe Befehle benutzt man da am besten?

Oder kann man dies mit „sourcerouting“ erreichen?

Wie müsste man das konfigurieren?

Ich glaube du setzt da falsch an, das „Mesh“ läuft ja über Batman der auf Layer 2 seinen Dienst tut.
Die SSH / Routing Sache läuft auf Layer 3 welche vom Mesh nichts mitbekommt.

http://de.wikipedia.org/wiki/B.A.T.M.A.N.

Im Unterschied zu diesem klassischen B.A.T.M.A.N. arbeitet das neuere „B.A.T.M.A.N. advanced“ (auch „Batman-adv“) auf Schicht 2 des OSI-Modells.[10] Das komplette vermaschte Netz erscheint damit für die darüberliegenden Schichten als verteilter Switch: Der Netzwerkverkehr wird gekapselt an sein Ziel geschickt, als ob es gleich der nächste Nachbar wäre. Software, die darüber, auf Schicht 3 mittels IP arbeitet, muss von dem Meshnetzwerk nichts wissen.[11][12]

Gruß

aber man kann sich doch (zumindest per IP6) direkt auf jeden Routern per SSH einloggen. dann müsste man doch auch Direktverbindungen benutzen können. Vielleicht hilft dies weiter : https://openvz.org/Source_based_routing