 Dann guten Morgen Ich bin froh dass noch Menschen zu so früher stunden zu mir gefunden haben Ich erzähle euch jetzt warum ich euer tcp mal trittiere damit das internet schneller wird zumindest im entropia Ein bisschen am Anfang erzähle ich euch was zur vorgeschichte wieso es dazu kam dass ich Eine box gebaut habe mit der man mit Hilfe von multipart ccp mehrere internet verbindungen kombinieren kann und am ende dann eine große Degleitung bekommt Da habe ich nämlich verschiedene lösungen ausprobiert und bin jetzt zu einer gekommen Die mir bis jetzt am besten gefällt und die ich in zukunft auch noch ein bisschen ausbauen möchte so dass ihr die dann irgendwann auch relativ black and plain wie sich nutzen könnt angefangen hat das mit Das internet in unserem hackerspace ist zu langsam es begabte zu einer zeit da gab es nur einen dsl 16.000 anschluss mitten in der innenstadt Im entropia und man hat sich dann halt einen zweiten dazu geklickt und zwar man gönnt sich ja man hat sich dann telekom hybrid gekauft Weil das die einzige möglichkeit ist noch mehr als 16 n wird zu bekommen das hat dann aber auch natürlich so ein paar tücken Denn wie kombiniert man jetzt diese internetanschlüsse so dass wir möglichst alle gut auslasten und Jeder was davon hat und jeder dann auch mit angenehmen geschwindigkeit dann rund ist an der linux distribution im klub runterladen kann Was wir ganz zu Anfang gefahren haben und immer noch parallel fahren das ist schawal schawal ist nichts anderes als ein großer ip table zu der part der einem dabei hilft ganz viel ip table rutsch zu erstellen und damit Haben wir dann ein portbausiertes routing gemacht das heißt all eure emails und der ganze web blödsinn lief dann über den telekom hybrid anschluss und alles andere lief über den qsc anschluss Was dann halt zufolge hatte dass man nur mit der folgen geschwindigkeit des hybrids anschluss runterladen konnte und die Anderen 16 n bet die wir noch haben ungenutzt umliegen wenn man seine lieblingslinus distribution runter lädt Wir haben auch mal ausprobiert ob das im round robin verfahren gut funktioniert das heißt die eine verbindung wird vom Da hin gemäppt die andere dahin war furchtbar Hat dann nämlich ganz viele webseiten kaputt und sessions kaputt gemacht weil auf einmal kamen sachen von der anderen ip und da sind irgendwelche dienste immer allergisch gegen Damit nicht auf die idee gekommen Es gibt da eigentlich auch was fertig ist nämlich multilink virtual public network das ist ein kleines tool für Linux und wir haben dann einen jump host angelegt auf unserer file infrastruktur und der hat tatsächlich auch den die bandbreiten nahezu ohne Verluste aggregiert und auch ein automatisches failover also wenn der telekom hybrid anschluss mal wieder nicht funktioniert hat Hat das funktioniert das problem ist dabei aber Wir haben da nicht die verwendeten link das bedeutet wenn der britanschluss im entropia ausgelastet ist ist die latence auf diesem Anschluss nicht mehr bei 15 millisekunden zu unserem jump host Sondern irgendwo bei 70 bis 100 Und da mlvpn davon ausgeht also die alle links gleichmäßig belastet wird dann halt das die user experience richtig scheiße im klub Weil das surf und einfach lange dauert es dauert ewig bis Sachen die du per ssh gerade tuest irgendwie bei deinem server ankommen weil es muss ja über das mlvpn Rüber zu unseren jump host und von dort ins internet Haben wir nicht irgendwann dazu gekommen mir anzuschauen Was es noch so für alternativen gibt und dann bin ich auf multipart tcp gestoßen Das ist im grunde eigentlich nur tcp extension die schon seit 2013 gibt und sie ermöglicht es einem auf dem tcp layer verschiedene subplots zu machen das heißt Ein ruder wie unserer der hat mehrere default ruten Und er probiert dann über jede dieser default ruten eine tcp session aufzubauen Wenn beide gegenstellen die extension an haben Es gibt da vollständig implementieren für den linux kernel die kann man sich auf multipart tcp Punkt auch runterladen anschauen den quercode angucken Compile es gibt für debbien und Für redhead auch dort fertige kernel Und multipart tcp wird am größten eingesetzt auf euren apple gerät nämlich für siri und für i message Denn das sind laut apple nicht so datenintensive dienste und wenn euer wlan langsam ist aber euer mobilfunk dann soll ja Mobilfunk noch gut ist dann soll ja trotzdem siri funktionieren er soll trotzdem nachrichten versenden können Also bauen die immer per multipart tcp Eine verbindung auf und im zweifel geht es dann nämlich über den mobilfunk link wenn euer wlan daun ist und umgekehrt So dass das möglichst immer funktioniert dann das ist die andere anwendung die man Braucht so war jetzt Warum möchte ich denn multipart tcp verwenden mlvpn verbraucht relativ viele bytes pro paket um Das multipart zeug zu machen Da fallen knapp 80 bytes weg pro paket bei multipart tcp fallen nur 40 weg Ich habe congestion control das bedeutet Ich kann auch internetverbindungen nutzen die komplett unterschiedlich sind das heißt ich habe ein lte ablink ich habe den telekom vibriert ablink ich habe vielleicht noch irgendwo Ein sdsl rumliegen halt was so da ist kann man zusammenkratzen Die volldruhte drüber und das funktioniert nämlich auch weil man angeben kann mit welcher priorität einer der sub flows geöffnet werden kann dann sind glaube ich 16 verschiedene abstufungen möglich Das heißt man versucht erst priorität eins den super guten dsl anschluss und danach schaltet man erst das mobilfunk hinzu und Zusätzlich kommt noch hinzu wenn da wenn wir verschiedene verbindungen mit selber priorität haben Verwendet multipart tcp In den meisten implementierungen die mit dem geringsten ping das heißt Nicht unbedingt die schnellste aber euer ssa funktioniert gut Multipart tcp hat nämlich den nachteil Andere protokolle gehen nicht darüber das heißt Alles muss ich irgendwie in tcp encapsulieren und das ist grundsätzlich eine schlechte idee da gibt es So eine standardseite auf die man da immer verlinkt da ist das sehr genau erklärt da könnte ich jetzt auch ganze 30 minuten drüber reden Darum dass eine sehr schlechte idee ist alles Über tcp zu machen ich mache es trotzdem Ich habe da so einen masterplan Der sich irgendwann ergeben hat der sieht folgendermaßen aus pipe das ist mein server im internet Da läuft ein socks proxy drauf nämlich einen shadow sox server und Bei mir auf meiner apu Also meinem router läuft dann ein shadow sox local das heißt Eure tcp session wird unterbrochen um sie über multipart zu senden Denn der client Muss erst über den redsox das an den shadow sox local und dann an den und dann kommt das erst ins internet Für die alles andere variante verwende ich einen openvpn das einfach auf tcp Gestellt ist und damit funktioniert das auch über multipart tcp denn alles was tcp kann kann auch multipart tcp Das habe ich dann gebaut auf einer apu mit einem debbien und viel gefrickert Und dann haben wir das auf einer zugfahrt nach amsterdam mal ausprobiert das sah dann so aus Leider waren da noch nicht alle teile da Für diese apu aber es ist am morgen alles fertig geworden da stecken drinnen jetzt per lahn zwei lte ab links Und da steckt noch ein kleiner wlan stick drinnen der ist im debb wlan eingelockt Und dann haben wir habe ich das ding in frankfurt flughafen aufgesetzt und bin in amsterdam raus und die ssa session die wir darüber aufgebaut haben ist kein einziges mal gestorben Was ich sehr erstaunlich finde Jo Dann habe ich auch noch mal heute morgen noch eine demo vorbereitet Die geht garantiert nicht schief Man sieht folgendes ich habe das erste kabel das geht ganz normal in meine fritzbox rein das zweite kabel da steht da dahinter den backbook das ist mein Freifunk ablinkt nicht zu hause habe das heißt es findet anderes netz Und ich spiele mal das video ab Ich habe das so gemacht Weil ich zuhause nur einen internet anschluss habe um irgendwie zu simulieren dass es über mehrere internetanschlüsse geht Ja zusätzlich habe ich dann auch diese netports auf 10 m bit begrenzt einfach damit man das im speedtest gut sieht sonst sind mich die 200 m bit von meinem kabel anschluss voll in beiden Ja und dann macht das ja kein spaß Das heißt das ist jetzt der erste speedtest der gefahren wird Die 10 m bit werden fast komplett saturiert da geht relativ wenig overhead verloren Obwohl ich das die ganzen tcp session zum alt retiere So dann stecke ich mal den freifunk abliegen noch zusätzlich dazu Stache das ganze erneut und nach kurzer zeit sobald mich der erste anschluss saturiert ist Ich halte den zweiten zu und auch da bin ich dann relativ an der gänze was physikalisch gerade über das interface möglich ist Und das ist ja eigentlich genau das was ich möchte dass der end Benutzer dann das möglichst schnelle internet bei sich hat und gar nicht mehr so klar ist über welche anschlüsse das alles geht Was man halt dazu sagen muss Das ganze ist relativ viel frickelarbeit noch ich habe mir Zwei skriptisch geschrieben mich multipass dcp ab und multipass dcp down die jeder jeweils getriggert werden wenn ein interface an oder ausgeht um halt die default ruten zu setzen denn bei debian kann man nicht in eine gutting tabelle mehrere default ruten legen Man muss das von hand machen Dafür habe ich skripte geschrieben die habe ich auf github gestellt Und da ich immer an dem ding einen kleinen weifer dongle habe zusätzlich zu dem intern weifert dass das ausstrahlt habe ich da diverse weifer lock ins kripte geschrieben die sich so im vorbeifahren in den telekom hotspot in den bahnhotspot Was man so halten möchte Reinlegt eigentlich ist es auch noch geplant dass ich in meine box Den kleinen lte ablinken der lte karte rein mache dazu aber nachher mehr das hat mich nicht geklappt bis jetzt Denn es gibt einige probleme die ich noch zu lösen habe nämlich es gibt im augenblick nur ipv4 Ich hätte gerne dass das vollständig dualstack fähig ist und das liegt im augenblick ausschließlich daran dass Red Socks also die software die ich verwende um die kleins Die sich in meinem lahn hinter der box befinden Auf den sox-box zu werfen und das schützt nur ipv4 Ich habe dann mal den Entwickler angeschrieben ob wir da was machen können wie ich das am besten patche Und dann kam nur als antwort zurück was ist das denn für eine obskure test umgebung die du da baust ne ne ne ne ipv4 ist die zukunft Ja Ich hatte leider dass ich irgendwie organisiere so eine veranstaltung mit keine zeit mit den kwelkut genauer anzugucken um zu gucken was Ich patchen muss damit das vollständig auch ipv6 kompatibel ist Außerdem hat die aktuelle implementierung zumindest für den devian kernel ein komisches verhalten Manchmal wenn Der erste aufgebautes subflow wegbericht zum beispiel weil die lte weil ich gerade aus der lte zelle fahre und keine fang mehr habe Oder weil das kabel locker ist Dann bricht mir die ganze session weg das sollte eigentlich nicht nicht passieren Oder passiert auch nur manchmal und das ist relativ schwer zu debacken Und außerdem hat redsox die angewohnheit sich genau nach 24 stunden zu beenden aber da kann man einen grundjob starten dann Lass das wieder Woran ich gerade arbeite ist das ganze als quasi im bedded software für Veropenwert und lede Zu entwickeln das heißt Ein paket schreiben dafür dass es dann dort einen multipass tcp kernel gibt und ein paket schreiben wo man dann einfach nur noch sagen kann Multi-par Über einen jump host bitte inklusive irgendwie allem was man haben möchte da arbeite ich gerade dran das ist so In einem status wo es funktioniert Aber ich möchte das noch nicht veröffentlichen Einfach mal in zwei wochen noch mal fragen Dann klappt das hoffentlich besser ich habe ein ansibelskript angefangen mit dem ihr euren jump host aufsetzen kann könnt Einfach die ansibelrolle importieren dann installiert es euch den open 4pn und den shadow sox server Und das kernel module beziehungsweise den kernel dem multipass dcp kernel Außerdem hatte ich eigentlich bei alliexpress eine lte karte bestellt Hat sich als game rausgestellt und ich bin 120 euro los geworden Da warte ich jetzt noch auf die nachlieferung unter die erstattung Habt ihr großfragen Ja Das ist im Augenblick noch nicht vorgesehen Ist aber theoretisch möglich der shadow sox als auch open 4pn können ja Mehrere verbindungen offenhalten was auch geht ist zum beispiel über mehrere mittelboxen zu gehen wenn man mehrere mittelboxen hat kann man sich da durch durch manövrieren Da gibt es auch ein schönes beispiel zu wo das jemand gemacht hat um sich irgendwie aus der zensur rauszutunneln Jo ich habe die box dabei wenn jemand damit spielen möchte oder ausprobieren will dies dahinter ist zu surfen Jo