• IT-Karriere:
  • Services:

Kernel: Fehler liefert fehlerhafte TCP/IP-Daten an Container aus

Die Auslagerung von Prozessen in verschiedene virtuelle Container von Docker, Kubernetes, Google Container Engine und Mesos führte dazu, dass TCP-Prüfsummen nicht richtig ausgewertet wurden. Twitter-Entwickler entdeckten den Bug, jetzt wird der Linux-Kernel gepatcht.

Artikel veröffentlicht am , Ferdinand Thommes
Kernel-Bug im Netzwerk-Stack geschlossen
Kernel-Bug im Netzwerk-Stack geschlossen (Bild: Flickr/CC-BY 2.0)

Ein Fehler im Kernel führt bei Containern dazu, dass TCP-Prüfsummen nicht ausgewertet werden, wenn sie virtuelle Netzwerkadapter für ihr Netzwerkrouting verwenden. Daraus resultiert, dass Anwendungen aus gänzlich unterschiedlichen Bereichen in bestimmten Situationen fehlerhafte Daten erhalten. Betroffen sind unter anderem Docker, Kubernetes, Google Container Engine und Mesos. Für Docker gilt das nur bei Verwendung von IPv6. Der Fehler existiert seit mindestens drei Jahren, jetzt wurde ein Patch in den Kernel aufgenommen.

Stellenmarkt
  1. Anstalt für Kommunale Datenverarbeitung in Bayern (AKDB), verschiedene Standorte
  2. MicroNova AG, München, Vierkirchen

Der Zusammenhang dieser Dienste mit einem Bug im Kernel wurde im November von Twitter-Entwicklern entdeckt. Sie waren gleichzeitig informiert worden, dass von ihnen betreute Applikationen Fehler meldeten, die eigentlich nicht möglich waren. Strings enthielten Zeichen, die dort nicht hingehörten, Pflichtfelder bleiben leer.

Der Zusammenhang dieser Fehler in verschiedenen Applikationen war aufgrund der verteilten Architektur von Twitters Infrastruktur zunächst unklar geblieben. Verschärft wurde das Problem dadurch, dass fehlerhafte Daten in verteilten Systemen lange nach dem ersten Auftreten weitere Fehler nach sich ziehen können, da sie in Caches, in Logs und auf Festplatten geschrieben werden.

Schwierige Fehlersuche

Erste Untersuchungen ergaben, dass in bestimmten Server-Racks gehäuft Fehler in TCP-Prüfsummen zu verzeichnen waren, bevor die Applikationen vermehrt sinnlose Fehler meldeten. Wurden diese Racks aus dem System genommen, arbeiteten die betroffenen Anwendungen einwandfrei. Da anfängliche Tests unter Linux keine eindeutige Lösung brachten, setzten die Entwickler ihre Testreihen unter Mesos fort, das bei Twitter Anwendungen und Dienste in Containern isoliert.

Prompt wurden sie fündig. Obwohl die TCP-Prüfsummen als ungültig erkannt wurden, tauchten fehlerhafte Daten in den Anwendungen auf. Nachdem im virtuellen Adapter das Checksum-Offloading abgeschaltet war, wurden die fehlerhaften Daten erwartungsgemäß fallengelassen.

Aus dem Workaround wird ein Kernel-Patch

Damit war eine vorübergehende Lösung gefunden. Schnell war aber klar, dass es keine Fehlkonfiguration in Mesos war, sondern es sich um einen Fehler im Netzwerkstack des Kernels handelte, der schließlich im Veth-Modul gefunden wurde. Der daraus resultierende Kernel-Patch wurde mittlerweile in den Kernel aufgenommen und wird derzeit bei verschiedenen Distributionen bis zu Kernel 3.14 rückportiert.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


Anzeige
Mobile-Angebote
  1. (u. a. moto g8 power 64GB 6,4 Zoll Max Vision HD+ für 159,99€)
  2. 214,90€ (Bestpreis!)
  3. (u. a. Apple iPhone 11 Pro Max 256GB 6,5 Zoll Super Retina XDR OLED für 929,98€)
  4. 149,90€ (Bestpreis!)

mahennemaha 18. Feb 2016

Dir fällt es vermutlich bei den Google Diensten besonders auf, da Google in Verbindung...


Folgen Sie uns
       


Xbox Series X und S - Fazit

Im Video zum Test der Xbox Series X und S zeigt Golem.de die Hardware und das Dashboard der Konsolen von Microsoft.

Xbox Series X und S - Fazit Video aufrufen
    •  /