Batman Client "Mesh on Lan" richtig (Raspi, Debian, Ubuntu)

Da bekanntlich viele Wege nach Rom führen frage ich mal hier in die Runde:

Wie binde ich einen Rechner (Linux mit konventioneller /etc/network/interfaces, kein netctl, kein „Desktop-Networkmanager“) in ein Batmannetz als Client ein? (Es gibt da weder „normales Internet“, weder Lan noch Wifi).

Wie es „von hand“ geht, eine Bridge anzulegen und da dann sowohl ein eth/ens einzuhängen wie auch den batman mit batctl if add drauf zu bringen: Kein Problem.
Ich kann das auch in die /etc/rc-local schreiben.

Aber wie tut man es „schön“ (also respektive: „by the book“/korrekt), so dass da die richtigen Dinge als post-up/pre-down so drin stehen, dass man ggf. auch ohne reboot das Netz rekonfigurieren kann?

Du willst also auf dem Rechner direkt Batman sprechen?

Installier dir das Batman Kernel Modul (entweder 2013.4 oder die neuere Version, sie sind nicht untereinander kompatibel). batctl macht auch noch Sinn zu installieren.

Dann in /etc/network/interfaces folgendes einfügen:

iface bat0 inet manual
post-up ifconfig $IFACE up
post-up ip addr add 10.X.X.X/XX dev $IFACE
post-up ip route add default via 10.X.X.X dev $IFACE
post-down ifconfig $IFACE down

Dabei eine feste IP aus deiner Community nehmen. Ich vermute mal es geht dort bestimmt auch irgendwie dhcp hab ich aber nie getestet,

Dann ifup bat0 und das Interface sollte da sein.

Je nachdem wo dein Batmannetz rein kommt, musst du dies noch ins Batman einhängen:

batctl if add eth0

dann würde am eth0 direkt Batman rein/rausfliegen und du kannst dort ein weiteres Batmangerät anstöpseln. Das ganze geht auch mit VPN Verbindungen, WLAN usw. (so machen es die meisten Uplink-Router).

Ne bridge brauchst du erst, wenn du z.b. eth1 als Clientport verwenden willst und dort Traffic ins Batman schieben willst. Dann muss bat0 und eth1 in eine gemeinsame Bridge.

MTU muss man ein wenig aufpassen sonst sollte es tun (ist jetzt nicht getestet sondern aus dem Kopf niedergeschrieben kann Fehler enthalten)

Vielleicht hilft dir auch das:

https://wiki.freifunk-franken.de/w/Raspberry_Pi_ins_Batman

Ich hab dort ein RasPi direkt per Kabel ins Batman gehangen, ich glaub das ist das, was du willst oder?

mfg

Christian

1 Like

Genau soetwas würde ich natürlich gern „schön“ haben.
Dass die Mac im DHCP eingetragen wird: Gekauft.

Wie gesagt: So handgehämmerte Dinge (hard kodierte IPs in embedded devices) will ich eigentlich vermeiden, noch schlimmer fixe gateways.

(Das was Du beschreibst: Gekauft, so habe ich es ja auch bislang gemacht. Ich finde es nur irgendwie unelegant, z.B. ein „batctl if add eth0“ in die /etc/rc.local zu schreiben.)

na, wenn du layer2 (however fastd, kabel, wireguard/gretap, l2tp/tunneldigger) an dem netz hängst mit irgendeinem if, dann hängst du das in batman ein und lässt da dhcp drauf laufen, genau wie das im normal fall jeder client auch machen würde.

batctl if add foo0
dhclient foo0

versteh deine frage dahingehend nicht ganz, du sagst er soll client sein (= es gibt einen master /server der magic macht) aber nicht „normales Internet“ …
wenn du damit meinst es gibt batman-adv netz, hast du hier die antwort.

vielleicht musste noch die routen, dns. oder die firewall kontrollieren, aber davon geh ich im normalfall nicht aus.

1 Like

Beantwortet es das?

Ihr erklärt mir das, was ich weiss.
Mir geht’s um RICHTIG
Also „schön“.

Darum geht es:
Wie sieht Eurer Meinung nach eine mustergültige Client-Konfiguration aus, wenn man einen Raspi&Co in ein Batman-Netz hängen möchte?

@ChrisD,@fuzzle um etwaige Enttäuschung zu reduzieren: Hier lesen ja immer noch andere mit ! danke für die Antworten, so klar habe ich das selten lesen koennen. Das ist genau das Minimalszenario, das man erst mal braucht, um das Wesentliche mitzunehmen. Sonst kommen ja immer noch das Interface zum DSL (EDIT: -Router) und das VPN dazu, und daher lasse ich mich vom typischen unmeshed Fertigrouter eher abschrecken. Aber der Endgegner naehert sich langsam :smile:.
Das DHCP im zweiten Schritt war pädagogisch perfekt !

Weitermachen…

1 Like

Dhcp waere echt porno …

Ich liebe es, Geräte zentral per DHCP zu provisionieren…
Wenn man sieht, was da alles in den RFCs vorgesehen ist, was nie jemand benutzt.
(ja, andere stehen auf bootp/tftp, aber dhcp hat so unendlich viele Options…)

vielleicht steh ich auf dem schlauch, aber das genau ist dein szenario? ein client der ein interface hat was in batman eingehangen ist?
dann ist wie gesagt irgendwo ein batman"server" der dhcp macht, aber danach fragst du nicht, oder? nur der client … und der bekommt entweder händisch IP/dns/routen foo, oder via dhcp .
aber irgendwie düngts mir, ich hab einen teil noch nicht verstanden.

irgendein Skript, dass das IF was real im Batman Netz ist (das heisst wo am anderen Ende dieser layer2 Verbindung auch jemand batman spricht und irgendwo dort sein batman im server mode läuft)
das wie oben gesagt „nur folgendes“ macht:
batctl if add foo0
dhcient foo0
Mehr gibt es für einen „batman-client“ nicht zu tun, von dort kann man das beliebig weiter denken - bspw: woher bekomme ich das andere batman Ende (ich hab an meinem Rechner direkt einen wireguard/gretap tunnel in unser freiburger batman netz).
Von dem Knoten der im batman server mode läuft ganz zu schweigen, das ist gemeinhin hier beschrieben als Supernode, oder Exitgateway, oder Gateway … je nachdem was man gerade meint.
Zurück zu meiner Verwirrung, du fragtst ja hier nach batman-client … und mesh-on-lan, und da versteh ich gerade nicht wo deine frage ist, hinter den beiden zeilen oben.

aber Grundsätzlich hatte ich mal ein Raspi mit batman aufgesetzt und einen Artikel dazu geschrieben, das war noch als Batman noch nicht nativ als Package zu laden war … vielleicht findest du hierin deine Antworten, oder Teile davon

http://viisauksena.de/blog/raspberry-pi-und-freifunk-freiburg-or-batman-adv-mesh-network/

Da:

Szenario:

Wie gesagt:

Sorry für die vielen Wiederholungen.
Aber mehr als ich da geschrieben habe fällt mir nicht ein.

Ich verweise aber gern nochmal auf’s Betreff „richtig“.
Quick&Dirty habe ich das schon Dutzendmal gemacht, mir ging’s darum, wie man es „schön“ macht.
(Offensichtlich tun es aber alle bisherigen Antwortenden ähnlich hemdsärmlig wie ich es bislang auch gemacht habe.)

Aus 2DA oder 4DA, meist in der Geschmacksrichtung Cat5e oder Cat7.

ah, in schön dann vermutlich (bspw. eth0 oder wlan0), benutz ich meistens nicht, aber würd das vermutlich so machen , wobei in dem script in der regel nur steht batctl if add foo0 und was man sonst so möchte (beispielsweise fixe ip für sein freifunk netz auf bat0 )

in der /etc/network/interfaces bspw.
edit: bitte folgekommentar/beitrag beachten, dhcp sollte auf bat0 laufen

auto foo0
allow-hotplug foo0
iface foo0 inet dhcp
iface foo0 inet6 dhcp
...
post-up /etc/network/if-up.d/foo0batmanscript

v6 stateless autoconfig entsprechend anders

im groben gibts da pre-up post-up pre-down und post-down

1 Like

@fuzzle
dhcp sollte aber auf dem bat Interface ne IP holen.

Es macht keinen Sinn, eth0 ins batman zu hängen und dann auf eth0 ne IP zu holen. Die IP muss dann auf bat0 geholt werden. Also:

batctl if add foo0 (oder eth0… je nachdem wo eben das Batman her kommt)
dhclient bat0 (bat0 braucht die IP um im Batman per IP zu kommunizieren)

wäre in meinen Augen richtig.

Sorry @adorfer ich hab dich dann leicht missverstanden, wie man das schön macht, keine Ahnung. Bei mir muss das Zeug funktionieren und nen reboot überleben :wink: Und das tut es so

mfg

Christian

1 Like

@ChrisD : aua, ja danke … mein Denk-Fehler

1 Like

Ich betreibe auf mein Linux-PC ein „FF-Router“ in einm Network Space. Damit kann ich einiges mit mehr Komfort testen als über ein Gluon Router.
Aktuell läuft batman_adv 2014.3.0 auf unsere Test Supernode (Debian 8.7). Auf mein PC läuft batman_adv 2016.5.
Beim Ermitteln der Upload/Download Geschwindigkeit, waren die Ergebnisse erst mal sehr enttäuschend. Durch setzen der MTU, sowohl auf die Bridge (Master von bat0) wie auf der client Bridge der emulierten „FF-Router“ auf ein passenden Wert, konnte ich die Transfer-Rate meinen DSL Anschluss (fast) vollständig ausnutzen.
Die Tests habe ich im „FF-Router“ und auch mit ein über WIFI angebundenen Notebook vorgenommen.
Die Geschwindigkeitsmessung wurde mit der Speed Test von AVM durchgeführt. Als Tunnel zur Gateway diente l2tp.
Ein Versuch mit fastd v 1.17 zeigte große Einbüße in der erreichbbare Datenrate.
Meine Beobachtungen (unter Fedora) sollten auch für der Raspberry PI gültig sein.

1 Like