Eigene Firmware, eigenes Gateway - Verbindung funktioniert nicht

Hallo zusammen,

wir beabsichtigen eine neue Freifunk Community in unserer Stadt zu gründen.

Da ich noch einen vServer ungenutzt rumliegen hatte, dachte ich, das wäre das optimale Testobjekt :slight_smile:

Ich habe erstmal ein Gateway nach Anleitung von FF Nordlippe aufgesetzt. InterCity VPN habe ich noch nicht konfiguriert. Da ich noch keine IP-Adressen für die neue Freifunk Community reserviert habe.

Eine eigene Fimrware habe ich auch gebaut. Ich habe einen WR841N v11 zu Testen hier. Die Firmware läuft auf dem Router. Wenn ich mir das Syslog auf dem Server anschaue, dann hat er via fastd auch eine Verbindung zum Gateway hergestellt:

Nov 28 09:45:42 ffein1 fastd[1443]: generating new handshake key
Nov 28 09:45:42 ffein1 fastd[1443]: adding peer {f45b5aa9443b27f9}
Nov 28 09:45:42 ffein1 fastd[1443]: responding handshake with {f45b5aa9443b27f9}[1.2.3.4:33246]…
Nov 28 09:45:43 ffein1 fastd[1443]: received handshake finish from {f45b5aa9443b27f9}[1.2.3.4:33246] using fastd v18
Nov 28 09:45:43 ffein1 fastd[1443]: handling handshake finish with {f45b5aa9443b27f9}[1.2.3.4:33246]…
Nov 28 09:45:43 ffein1 fastd[1443]: 1.2.3.4:33246 authorized as {f45b5aa9443b27f9}
Nov 28 09:45:43 ffein1 fastd[1443]: connection with {f45b5aa9443b27f9} established.
Nov 28 09:45:43 ffein1 fastd[1443]: new session with {f45b5aa9443b27f9} established using method `salsa2012+umac’.
Nov 28 09:45:43 ffein1 fastd[1443]: cleaning left handshakes with {f45b5aa9443b27f9}
Nov 28 09:45:43 ffein1 fastd[1443]: learned new MAC address da:d1:fb:a1:13:df on peer {f45b5aa9443b27f9}

Allerdings scheint er keine Verbindung zu batman aufzubauen:

root@ffein-98ded091ec3c:~# batctl gwl
Gateway (#/255) Nexthop [outgoingIF]: gw_class … [B.A.T.M.A.N. adv 2013.4.0, MainIF/MAC: primary0/da:d1:fb:a1:13:db (bat0)]
No gateways in range …

Wenn sich ein Client mit dem Wlan verbindet, dann wird diesem keine IP zugewiesen. Der DHCP läuft aber auf dem Gateway.

Habe ich da irgendwo einen Denkfehler oder etwas vergessen?
Hier noch einige Configs:
site.conf
fastd.conf

Die Verbindungen vom batman-adv kannst Du anzeigen mit:
batctl o
batctl tg
Kontrolliere mal auf dem Server, ob der GW-Mode wirklich gesetzt wurde (siehe fastd-config)
batctl gw

Moin,
danke für die schnelle Anwort.

Der Router meldet folgendes:

root@ffein-98ded091ec3c:~# batctl o
[B.A.T.M.A.N. adv 2013.4.0, MainIF/MAC: primary0/da:d1:fb:a1:13:db (bat0)]
Originator last-seen (#/255) Nexthop [outgoingIF]: Potential nexthops …
No batman nodes in range …

root@ffein-98ded091ec3c:~# batctl tg
Globally announced TT entries received via the mesh bat0
Client (TTVN) Originator (Curr TTVN) (CRC ) Flags

Der Server läuft als Server (woher kommt die 0.1/0.1 MBit Angabe? In der Richtung habe ich nichts konfiguriert?)

root@ffein1:~# batctl gw
server (announced bw: 0.1/0.1 MBit)

Viele Grüße

Dann schau mal auf Freifunk-Node und Server

batctl if

ob auf den fastd-Interfaces auch wirklich batman-adv läuft.
Wieso verwendest Du eigentlich auf dem Node noch batman-adv 2013.4? Vielleicht liegt hier der Fehler. Ist auf dem Server auch diese alte Version?

Stimmt, aus irgend einem Grund hatte ich die Zeile auskommentiert. Auf dem Server lief batman-adv auf tap0.
Nun läuft es auf dem Server:

root@ffein1:~# batctl if
ffein-mesh: active

und auf dem Node auf folgenden Interfaces:

root@ffein-98ded091ec3c:~# batctl if
ibss0: active
mesh-vpn: active
primary0: active

Stimmt, das ist echt ne alte Version. Werde gleich nochmal ne Firmware mit aktueller Version kompilieren…
Auf dem Server läuft 2014.3.0 Also auch nicht so ganz neu. Das ist wohl den alten Anleitungen geschuldet. Ggf sollte ich das Gateway auch nochmal als aktuelle Version installieren.

so, habe nun in der Site.mk auf gluon-mesh-batman-adv-15 gewechselt. Neu kompiliert und schon geht es :smile:
Danke für die Hilfe!

1 Like

Kannst Du bitte mal die Anleitung verlinken, die Du verwendet hast?

Gerne.
Das Gateway habe ich nach folgender Anleitung eingerichtet:
https://wiki.freifunk.net/Freifunk_Nordlippe_Gateway

und die Firmware habe ich nach dieser Anleitung gebaut
http://gluon.readthedocs.io/en/latest/user/getting_started.html

Freut mich, dass es bei dir geklappt hat.

Für alle die nicht bei null anfangen möchten, hatte ich mal hier eine Anleitung für eine Gatewaykonfiguration mit Ansible und L2TP geschrieben: [Anleitung] Gateway aufsetzen mit Ansible für Neulinge

'ne Anmerkung zur site.conf: der IPv6-Block in der site.conf ist ein offizieller eines Hosters in Köln; Gluon funktioniert so, daß aus dem prefix6-Netz jeder(!) Freifunk-Knoten seinen Endgeräten daraus IPv6-Adressen ‚anbietet‘ (SLAAC als Stichwort, oder auch: man radvd). Heißt: Endgeräte glauben, eine IPv6-Verbindung zu haben und bevorzugen diese in der Regel. Falls das Gateway das so korrekt routen kann und soll, ist der Eintrag ok (aber: Vorsicht, Störerhaftung!); falls nicht, besser dort ULA verwenden. Bedenke, daß Dein vServer-GW IPv6 ggf. schon routet; Provider mögen es i. d. R. nicht, wenn man ihnen fremde IPs ins Netz kippt :slight_smile:

1 Like

Ups, gut aufgepasst, wird geändert… danke!

Wo gibt es andere, aktuellere Anleitungen für Gateways?
Die aus Nordlippe ist recht veraltet (zb altes batman-adv, noch mit ffmap) und der Link von MPW zum Ausprobieren ungeeignet (zb wegen ansible und l2tp).
Interessant wäre die Kombination mit hopclass, grafana und respondd, wie sie es ja zumindest einige Communities via debian verwenden.

p.s. Wer hat zufällig eine Anleitung für die Gateway-Installation mit Openwrt bzw. LEDE? Wir verwenden dies zwar schon eine Weile, allerdings ist das Setup noch nicht vollständig (zb collectd anstelle grafana)

1 Like

ist recht schön um den Kartenserver aufzusetzen ich glaube bei nodejs hängt es ein bisschen …

Kann hier zufällig jemand, wie schon gefragt, mit aktuellen Anleitungen für Gateways dienen? Wäre auch sehr interessiert.

@Borsal sind eigtlnicht soviele Dinge,

  • du lässt einen fastd als server laufen,
  • du sorgst dafür das ein dnsmasq auf dem mesh-vpn läuft damit clients ip und Gateway bekommen.
  • du sorgst dafür das der traffic auf dem mesh-vpn device seinen Exit findet,
  • du routest ggf. internen freifunk traffic zu anderen gateway
  • und zuguter letzt das mesh-vpn (und andere backendserver) zu batman hinzufügen und in den servermode schalten.

Als minimal notwendig würde ich erachten,

  • batman-adv in der richtigen Version
  • batctl
  • fastd

das lohnt durchaus sich mit seinen vorstellungen da selber durchzuarbeiten.
wenn das läuft kann gern auch alfred, alfred-vis , map-backend, map etc.pp folgen.
wenn du statt fastd , wireguard oder l2tp nutzen willst, musste halt dafür Endpunkte für potentielle clients erstellen. Hoffe das dich diese doch recht oberflächlichen Minimalbeschreibungen weiter bringen :wink:

( Ansonsten ists mit einer „Standard“ Gateway beschreibung glaub daher schwierig , weil der eine mag verschlüsselung, der andere will direkt ausleiten, andere wollen exotische Exit, die wege dahin sind vielfältig, die einen haben l2tp, die anderen fastd, experimentierfreudige wireguard/gretap, die einen haben batman-v14, andere wollen mapserver mitlaufen lassen, andere brauchen nagios/prometheus/icinga, die einen wollen alfred foo machen, die einen haben standalone backend, andere 10 backendserver, manche wollen nur spielen, andere ernsthaft hunderte clients performant versorgen, manche wollen icvpn, einige v6, ander nicht, manche nur intern … and so on …)
edit: manchen haben so Anleitungen die genau für sie passen und in der Regel outdatet sind, aber dennoch hlfreich sein können

1 Like

Uff, danke erstmal für den groben Umriss. Da gibts es wohl keine allgemeingültigen Zusammensetzungen von Gateways.

Ich habe darmals mir dieser Anleitung angefangen: Freifunk Stormarn:Gateway-alt – wiki.freifunk.net
Ein Sonntag und viel Kaffee dann lief der erste Gateway.
Ansonsten: ich wollte das bei Hetzner auf einer VM machen, dort bekommt man aber nicht direkt eine öffentliche IP. Bei netcup lief es dann aber Problemlos.

Wir haben im Münsterland ein Ansible-System entwickelt, das allerdings stark auf L2TP und die Anbindung über das FFRL-Backbone ausgelegt ist: [Anleitung] Gateway aufsetzen mit Ansible für Neulinge

Der Kartenserver hakt etwas, die Konfiguration als Gateway funktioniert ziemlich gut.

Grüße
Matthias

Hi,
ich hatte mit auch das was ich bisher auf meinem gw getan hatte auch wegdokumentiert.
Damit konnten die Knoten eine Verbindung aufbauen, und die clients bekamen eine ipv4 Adresse + über v4 internet via VPN … (sehe grade in der doku fehl der dhcp teil :-/)

https://github.com/tunnelhoshi/Tunneldigger-gw-doku/releases