Neustart der uplinks erforderlich

Also die Fehlerbeschreibung kann ich für die von mir betreuten Standorte weiterhin aufrecht erhalten. Endgeräte kommen regelmäßig nur nach einem reboot der FF-Knoten ins Netz. Im fehlerhaften Zustand sind meistens gar keine oder nur 1 supernode aus dem FF Client Netz zu erreichen. Die Knoten sind jedoch durchgängig auf der Karte mit Clients sichtbar.

Nach einem Reboot funktioniert dann erst einmal wieder „alles“. (Auch nach dem reboot geht z.B. Google Play nicht, aber das ist ein anderes Thema, siehe hier im Forum)

Nach 2 Wochen ist das Bild unverändert. Da das Problem anscheinend nur bei mir existiert bin ich erstmal raus hier und beobachte die FF-E Entwicklung passiv weiter.

Falls sich das Problem dennoch bei jemandem zeigt nutzen vielleicht folgende 2 traceroutes:

Ein fehlerhafter uplink liefert diesen traceroute:

Ein neugestarteter und funktionierender diesen:

Auf node01-1 hing Bird in den Fritten, nach einem Neustart sieht es gut aus und die Kisten Routen auch wieder Traffic.
@apo: Was sagen deine Knoten?

1 „Gefällt mir“

Unschön, hat aber nichts mit dem beschriebenen Problem zu tun.

1 „Gefällt mir“

Ich denke, das ich das gleiche Problem habe. Ich kann über freifunk die internen Dienste, wie das Forum und den Meshviewer erreichen, aber nux im Internet.

Mein Traceroute sieht so wie oben beschrieben aus:

/usr/sbin/traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
 1  10.228.32.1 (10.228.32.1)  26.746 ms  28.482 ms  31.146 ms
 2  10.228.16.1 (10.228.16.1)  320.501 ms  321.601 ms  321.573 ms
 3  100.64.0.244 (100.64.0.244)  321.539 ms  322.677 ms  322.649 ms
 4  * * *
 5  * * *
 6  * * *
 7  * * *
 8  * * *
 9  * * *
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *

Meine Tunnel sehen so aus:

VPN status
fastd running for 151620.532 seconds
There are 4 peers configured, of which 2 are connected:

mesh_vpn_backbone_1_peer_node02: not connected
mesh_vpn_backbone_1_peer_node01: connected for 151578.673 seconds
mesh_vpn_backbone_2_peer_node01: not connected
mesh_vpn_backbone_2_peer_node02: connected for 151580.017 seconds

Weshalb tauchen denn da an Position 1 und 2 zwei mal supernodes auf? Ich dachte bisher, dass immer über einen geroutet wird.

Was mich am meisten interessiert, ist wohin es von 100.64.0.244 weiter gehen soll, wenn das ueberhaupt der richtige gateway ist.

Das über 2 Supernodes geroutet wird bedeutet eventuell einen Geschwindigkeitsverlust, aber alles funktioniert noch.

Wir werden sowieso bei der neuen Gluon-Version nur noch einen VPN-Tunnel einsetzen. Das wird schon mal etwas weniger Probleme bringen.

Ich glaube nicht, dass das in Ordnung ist. Mein Router ist mit der 10.228.24.1er Supernode verbunden. route zeigt mir an, dass mein default gateway 10.228.24.1 ist. Soweit alles super.
Jetzt mache ich mal ein Ping auf 8.8.8.8 und bekomme:

PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
From 10.228.24.1: icmp_seq=1 Redirect Host(New nexthop: 10.228.8.1)
64 bytes from 8.8.8.8: icmp_seq=1 ttl=56 time=305 ms

Also habe ich einen ICMP-Redirect bekommen auf 10.228.8.1. Das heißt hier leitet jetzt die Supernode nochmal durch nen GRE-Tunnel zur anderen Supernode und von dahin erst ins restliche Rheinland-AS.

Das erste was ich vermutet hatte war, dass die BATMAN gateway selection möglicherweise diese ICMP-redirects verursacht und durch ein Update von BATMAN auf den Supernodes jetzt die Funktion aktiviert worden ist.

Das könnte aber sinnvoll sein und damit nichts zu tun haben, wenn zum Beispiel die 10.228.8.1-Supernode im gleichen Rechenzentrum steht, wie die Rheinland-Infrastruktur, aber ist für mich jetzt erst mal unwahrscheinlich. Soweit ich weiß bei BGP jedoch eine mögliche Konfigurationsmöglichkeit.

@pberndro Weißt du woran das liegt? Könnte ja ein Bottleneck sein, wenn es so nicht sein soll… Könnte da vielleicht BIRD bei der 10.228.24.1 Supernode Probleme mit der Verbindung zur Rheinland-Infrastruktur haben? Also nur BIRD könnte außer BATMAN ICMP-redirects verschicken.

1 „Gefällt mir“

@anon88999732,
ich wollte nicht sagen, dass das routen über 2 Supernodes ok ist, sondern nur, das es immer noch besser ist als gar keine Verbindung.

Wenn das Routing an der Stelle durch BGP erfolgt kann man sicher das Routing gerade ziehen. BGP ist ja genau dazu designed, die Routen mit Hilfe manuell eingestellter Parameter festzulegen.

Eine mögliche Fehlerquelle kann uebrigens einfach ein asynchrones Routing sein, dh, in die eine Richtung wird ein anderer Weg genommen als in der anderen. Ich habe null Ahnung von dem Setup der Supernodes, abe genau sowas hab ich schon öfter erlebt.

@oldman
Ich wundere mich die ganze Zeit wie das BATMAN der Supernodes konfiguriert ist. Hat jede Supernode einen eigenen DHCP-Server oder teilen sich alle einen? Sinnvoll wäre ja, dass jede einen eigenen hat (was ich auch die ganze Zeit schon angenommen habe). Dann sollte ja eigentlich, wenn die Supernodes per GRE/BGP miteinander verbunden sind der Gateway client mode statt dem Server mode benutzt werden, aber ich habe letztens irgendwo ein Diagramm oder so mit der announced bandwidth der Supernodes gesehen und das funktioniert eigentlich ja nur mit dem Gateway server mode…

Ich rede/schreibe jetzt mal ins Blaue, aber wenn jede Supernode einen eigenen DHCP Server hat, und zwei Uplink-Knoten aus einem gemeinsamen Mesch mit zwei unterschiedlichen Supernodes verbinden, haette man zwei verschiedene IP Ranges im gleichen Netz.

DHCP auf jedem Server, natürlich!
Die Supernodes sprechen untereinander iBGP.
BATMAN läuft natürlich im GW Modus.

Was sagt denn batctl gw_mode?
Es gibt den Gateway-Mode „Client“ und „Server“. Der Unterschied ist, dass bei dem „Server“-Mode nicht BATMAN entscheidet, welche Gateway benutzt wird, sondern alle DHCP-Requests gebroadcastet werden und die Clients sich für ein Gateway entscheiden. Beim „Client“-Modus hingegen kann BATMAN die DHCP-Requests manipulieren und sie an die beste Verbindung weiterleiten. Den „Client“-Modus kann man auch so einstellen, dass immer die Gateway der Supernode, zu der man verbunden ist bevorzugt wird. Der Vorteil ist halt auch, dass die DHCP-Requests nicht an alle Supernodes gebroadcastet werden…

wir hatten das mehrfach: einmal waren uns schlicht die dhcp leases ausgegangen … das andere mal verabschiedete sich die tunnel auf den sn, die haben aber sich weiter munter als gw announced, also eher kein router/fehler - richtig gefunden haben wir den fehler nicht, manchmal killt alfred -m auf schwachen geräten (bzw. stirbt ohne zu sterben, das ja das ärgerliche …antwortet schlicht nicht mehr obwohls noch läuft - so gesehen mind. auf dem raspberry pi)

Bei IPv4 können auch die Contrack-Buffer ausgehen…

Effekt ist dann meist „Nach Plasterouter-Neustart geht es erstmal wieder“ → Freifunkende denken „Mein Router war abgestürzt“
Und je nach Charakterstärke der Admins werden $NUTZENDE auch bei dem Glauben belassen.

Stimmt, das conntrack Thema und tcpnumbsocks hatten wir auch mal, und meist sind wir lieber selber schuld :wink:

Du denkst zu sehr in Layer 3 und Subnetzen. Es ist aber ein Layer 2-Netz über alle Supernodes.
Der Router verbindet sich zwar mit einem oder mehreren Servern über FastD, damit ist er aber erst mal nur Teilnehmer im Layer 2-Netz. Das wäre als wenn du deinen PC einfach mit dem Netzwerk verbindest, aber keinerlei IP-Konfiguration (auch kein DHCP) vornimmst.
Nach der Verbindung sendet der Router DHCP-Broadcasts. Die sehen aber nicht alle Supernodes, denn BATMAN steuert, welches Gateway verwendet werden soll und auch nur dieses Gateway bekommt den DHCP-Request. Danach erhält der Router von dieser einen Supernode eine IP-Adresse. Nicht von mehreren.

Da diese IP-Adresse - wie du ja selber schon schreibst - nur aus einem gesonderten Bereich, aber nicht aus einem getrennten Subnetz ist, kann er sie auch weiter nutzen, wenn BATMAN auf die Idee kommen sollte, ein anderes Gateway zu bevorzugen. Es ist eben EIN Netz, in dem jeder DHCP-Server aus einem bestimmten Bereich (NICHT Subnetz) Adressen verteilt.

Stimmt, solange die Supernodes alle per DHCP IP Adressen aus dem gleichen Netz vergeben, also z.B

  • Super node 1

    • 10.228.1.1 - 10.228.124.255 /255.255.0.0
  • Supernode 2

    • 10.228.125.0 - 10.228. 254.255 /255.255.0.0

usw.

Dann ist es das gleiche IP Netz und jeder kann mit jedem reden und wenn der Gateway wechselt ist es auch kein Problem

Nachdem das Problem zwichenzeitlich weg war, habe ich jetzt wieder die gleiche Situation:

traceroute www.cisco.com
traceroute to www.cisco.com (184.24.192.170), 30 hops max, 60 byte packets
1  * * *
2  10.228.16.1 (10.228.16.1)  313.429 ms  314.757 ms  314.738 ms
3  100.64.0.244 (100.64.0.244)  315.439 ms  316.331 ms  316.315 ms
4  * * *
5  * * *
6  * * *
7  * * *
8  * * *
9  * * *
10  * * *
11  * * *
12  * * *

da der letzte Knoten, der antwortet, 100.64.0.244 ist, vermute ich, das da die Packete ins Nirvana laufen.

Wenns alles funktioniert habe ich einen anderen Knoten aus dem 100er Netz in der Liste

1 „Gefällt mir“

Nix geht hier… 16.1 ist der schuldige

//update: Stand Samstag: Läuft wieder zuverlässig.

2 „Gefällt mir“