L2TP-BATbone :)

Nach einer Nacht voller Fehlschläge meine ich das Problem identifiziert zu haben: es handelt sich sehr wahrscheinlich um SMP. Ich kann den Fehler nach einer Stunde auf zwei Maschinen mit nur einem CPU-Kern nicht reproduzieren. Um sicher zu sein fehlen mir aber noch weitere Maschinen, die zuvor im Versuch dabei waren und die ich heute Nacht abgeschossen habe und nun drauf warte, dass sie von anderen Freifunkern eingeschaltet werden.

Der Hintergrund ist: Kerneldumps von Multiprozessormaschinen sind wertlos, da man sie meines Wissens nicht Debuggen kann. Es hat laaaaaaange gedauert, bis mir das wieder eingefallen ist.

Wir nutzen aus dem Grunde zur Zeit auch nur ein Core jeweils. Einen Bugreport gibts auch dazu:

danke für den Link … ich werde dort auch was eintragen. Fragt sich nur, ob man was damit anfangen kann, denn aus dmesg-Ausgaben kann man nicht wirklich viel erfahren und SMP-Kernel-Dumps bekomme ich nicht analysiert.

1 „Gefällt mir“

Danke Phip für Dein Engagement!!!

Seit gestern kommt auch der Alfred wieder durch! Deine Optimierungen scheinen geholfen zu haben.

Mit L2TP würden doch auch weiter Supernodes (ohne Gateway) die Wupper Supernodes entlasten, oder? D.h.:

Router
|
viel Rechenarbeit, fastd

GL Supernode
|
wenig Rechenarbeit, L2TP

Wupper Gateway

Der nächste Schritt wäre dann, das Batman nur bis zu den GL Supernodes zu fahren und danach per Layer 3
Welch Implementation kommt eigentlich zum Einsatz? Es gibt ja irgendwie verschiedene. Wird IPSEC benutzt (soweit ich das verstanden habe ist das ein Krypto-Layer oben drauf)?

L2TP wurde nicht umgesetzt, da sonst die Superknoten abstürzen würden! Es ist alles beim Alten. Jedoch habe ich viel Zeit zum Ausprobieren gebraucht, um festzustellen, dass kein einziger Ansatz funktioniert, der mir eingefallen ist. Sogar die feste Zuweisung eines fastd, Alfred, bat-vis Prozesses zu einem bestimmten CPU-Kern haben nur kurzfristig Abhilfe geschaffen und mit mehr als einem L2TP Tunnel fliegen die Superknoten um die Ohren.

Es gibt noch andere Ansätze, jedoch habe ich erst Mal keine Zeit. Ich schreibe ein paar Bugreports und das war ’s vorerst. Viel später teste ich reine L2TP Knoten.

Alle in Wupper sollten im Übrigen ihre Kartenserver bekanntgeben, damit sie statisch angebunden werden und nicht beim Neustarten der Superknoten die Verbindung verlieren. Niemand außer Troisdorf hat das bis heute getan … ich brauche die Adresse oder IP plus öffentlichen fastd-Schlüssel ins Wiki. Dies ist der Grund für die falsche Statistik bzw. Meshviewer-Anzeige der letzten 5 Tage.

Wo, in welches Wiki?
gl1:
Public: 3408535ec67f042a4d384db510e1c018bd752e15b60cf5114963b1c1f4629fd3
46.38.241.142 oder gl.wupper.ffrl.de

dus0:
Public: 77c576371c6321dabc6aacbaee01382943fadca8fee05ea31d511ec0b484f589
46.38.234.225 oder map.ffdus.de

gek0:
Public: bb60aaecac94da608d2e41dd09635bb839fa998227884e24eaf85d43782a2b11
46.38.238.147 oder map.ffgek.de

1 „Gefällt mir“

Gilt das nur für die Upstreamanbindung oder auch, wenn man Knoten per L2TP anbindet?

https://wiki.freifunk-rheinland.net/Wupper#Weitere_Server

Das würde demnach auch für die Anbindung normaler Freifunkknoten an den Superknoten gelten. Irgendwo im Code ist ein Fehler, der durch bestimmtes Verhalten provoziert wird. Die Wahrscheinlichkeit, dass es im Datenstrom zwischen den Superknoten auftritt ist höher, da dort mehr Daten geleitet werden. Es ist also durchaus möglich, dass dies während der Kommunikation mit einem Freifunkknoten oder Offloader nicht auftritt, da sie nicht schnell genug ist, man kann aber nicht ausschließen, dass es da nicht auftreten wird. So wie ich das bisher sehe, sind nur Maschinen mit mehr als einem CPU-Kern betroffen.

Ist im Wiki. Ich habe auch mal ffdus / Düsseldorf-Flingern dort eingepflegt und alle weiteren mir bekannten Karten eingetragen.

2 „Gefällt mir“

@phip auf unserem Test Server mit l2tp Backbone

Ja. Zweite Zeile: SMP-Kernel. Entweder singlecore mit maxcpu=1 oder mit nosmp in den Kernelparametern starten. Ist ein Bug, den man so nicht wirklich debuggen kann, da es ja SMP ist.

Noch ein mal in die Runde: Wer weiß, wie man einen SMP-Kernel debuggen kann? In der Literatur lese ich immer nur vom Debugging von nicht SMP-Kerneln …

Danke @phip

Kernel Noob Frage: Wo kommt der Parameter hin? Ist ne Single CPU

Stellt doch besser durchsuchbare Ausgaben hier rein. Dann können vielleicht andere mit einer ähnlichen Fehlermeldung das hier bei Google finden.

Das ist einigermaßen schwierig wenn man die Console erst Post-mortem öffnet und das ein Web-VNC ist, also „APA“. Oder gibt es dafür irgendwo eine fixe OCR-Lösung im Web.

Dieser wird in den Bootloader eingetragen, welcher die Parameter beim Booten an den Kernel bei dessen Start übergibt.

https://www.kernel.org/doc/Documentation/kernel-parameters.txt

Bei debian 4.2 Backports funktioniert nosmp nicht wirklich … ich glaube man fährt da am besten mit einem selbst kompilierten Kernel. maxcpus=0 habe ich noch nicht getestet, klingt aber vielversprechend … scheint aber identisch zu nosmp zu sein. maxcpus=1 bootet immer noch einen SMP-Kernel.

Da Wupper batman v15 und Systeme/VMs mit >1 CPU einsetzt, gilt das wohl generell.

v14 läuft auf Single-CPU-VMs mit 3+ L2TP-Tunneln geschmeidig. Sprich: Wupper-Probleme sind auf batman-v14-Communities nicht zwingend übertragbar.