ich wollte mal einen Aktuellen Stand der Supernode umbauten durchgeben.
Wir haben die letzten Wochen sehr viel gebastelt. Leider ließ es sich nicht immer ohne Störungen im Netz durchführen. Mittlerweile sollte aber alles wieder normal laufen.
Die Supernodes werden nun alle per Ansibe Verwaltet und Ausgerollt. So haben wir immer die Möglichkeit schnell einen Supernode zu ersetzen.
Aktiv sind im moment 4 Stück. Alle 4 sind Hetzner vServer mit 1-Kern. Alle Supernodes laufen mit Kernel 3.16 auf Debian und dem Tunneldigger Broker als L2TP endpunkt.
Das Abschmeißen des Traffics ist nun unser nächstes Projekt. Im moment wird der gesammte Traffic Lokal abgeworfen und wir (Ich und Roman) haften mit unseren Firmen für den Traffic. Das soll aber nur eine Übergangslösung sein bis wir bei uns Intern die FFRL Backbone anbindung umgesetzt haben. (Also erstmal nicht über den Netzprovider Hetzner Online wundern)
Leider Spielt Batman adv15 nicht so 100%ig mit wenn es um L2TP geht und die Supernodes halten alle nur ca. 1 Tag durch und booten dann einmal durch. Das macht aber kaum was aus. Wir hoffen dafür in zukunft eine Lösung zu finden.
Die 4 Supernodes machen alle fast ihre 2TB Traffic Grenze im Monat voll. Bis jetzt mussten wir noch nicht nachkaufen. Wir sind mal gespannt ob das so bleibt
Welche Probleme habt ihr denn das die Supernodes häufiger abstürzen?
Ich hatte bis jetzt beobachtet das es manchmal zu Probleme kommen kann wenn neue Interfaces hinzugefügt oder entfernt werden. Allerdings ist dies völlig unabhängig von L2TP sondern ist wohl ein Fehler im Code von Batman-Advanced.
Alternativ hatte ich überlegt die Nodes via Bridge in das Bat0 Interface zu hängen, dann muss man nur sicherstellen das mittels Ebtables die einzelnen Switchports untereinander isoliert sind. Dies sollte diesem Problem entgegenwirken da die Interfaces so niemals direkt dem Batman Interface hinzugefügt werden.
Allerdings lässt sich so das Rebroadcasting nicht auf der Server Seite abschalten, aber wie ich sehe nutzt ihr dies anscheinend nicht.
wir haben seit Anfang November unser Eventnetz mit tunneldigger am laufen. Die erwähnten Abstürze können wir hier nicht bestätigen.
Das Ganze läuft auf 2 KVM VMs mit 3.16er Kernel. Batman ist in der Version 2015.1 mit der no rebroadcast Option aktiv. Die VMs haben sogar 4 Cores. Auch nach einem tunneldigger Restart friert die VM nicht ein.
Im upscript wird einfach nur das L2TP Interface ins br-mesh gehangen. Funktioniert problemlos
Hier Stürzen die Supernodes z.b. IMMER ab wenn man den tunneldigger neustartet oder beendet. Daher kam mein Verdacht auch.
Das Problem hatte ich anfangs, aber dies lag an einem Bug in Batman-Advanced. Die Interfaces wurden nicht freigegeben daher gab es tonnenweise Spam im Kernel-Log und man musste die Maschine komplett neu starten.
Ich bezweifele aber das dies der selbe Bug ist.
hast Du oder der Tunneldigger mit batctl if del »Schnittstelle« eine Schnittstelle von Batman entfernt. Wenn ja, dann mutmaße ich, dass man in diesem Bereich den Fehler eingrenzen kann. Ist es ein SMP-Kernel? Wenn ja, versuche die Maschine nicht im SMP-Modus zu betreiben und versuche dann den Fehler zu reproduzieren. Bit Du vertraut mit dem Crashkernel und mit Kerneldups? Mit einem Kerneldump können die Entwickler etwas anfangen und bei Zeit den Fehler beseitigen.
ich kenne den tunnelartiger leider nicht, deshalb weiß ich nicht, wie Tunneldigger das intern handhabt. Sieht man bei batctl if mehrere Schnittstellen und kommen welche hinzu, wenn neue Tunnel gegraben werden?
steht bei dmesg | head -n100 | grep SMP irgendetwas vom Aktivierten SMP? á la:
ja:Im batctl if sind alle tunneldigger Interfaces sichtbar.
dmesg | head -n100 | grep SMP
[ 0.000000] Linux version 3.16.0-4-amd64 (debian-kernel@lists.debian.org) (gcc version 4.8.4 (Debian 4.8.4-1) ) #1 SMP Debian 3.16.7-ckt11-1+deb8u6 (2015-11-09)
[ 0.000000] found SMP MP-table at [mem 0x000f0e80-0x000f0e8f] mapped at [ffff8800000f0e80]
tut mir leid, mit head habe ich es zu sehr eingeschränkt – noch mal bitte: dmesg | grep SMP und dmesg| grep "Booting SMP" -A20 verschafft endgültig klarheit
Also maxcpus=0 und nosmp sind das gleiche. Versuchs mal nur mit nosmp oder maxcpus=0
'nosmp' and 'maxcpus=N'
(Only when __SMP__ is defined.) A command-line option of
'nosmp' or 'maxcpus=0' will disable SMP activation entirely;
an option 'maxcpus=N' limits the maximum number of CPUs
activated in SMP mode to N.