Ikea nutzt es und Cisco kauft den Erfinder eBPF, mit und ohne Cilium

Von Filipe Pereira Martins und CTO und CISO Anna Kobylinska 8 min Lesedauer

Anbieter zum Thema

Die Bereitstellung cloudifizierter Arbeitslasten für und im Rechenzentrum setzt fortschrittliche Netzwerk-Intelligenz voraus. Die quelloffene Kernel-Engine „eBPF“ schafft das nötige Grundgerüst. Das quelloffene „Cilium“, ein Projekt der Cloud Native Computing Foundation, liefert die Stellschrauben. In der Zwischenzeit kauft Cisco 'mal eben den Erfinder von Cilium, das Unternehmen Isovalent.

Eine lohnenswerte Verbindung: die quelloffene Kernel-Engine „eBPF“ und das in Datacenter-Netzen massiv skalierbare „Cilium“, ein CNCF-Projekt aus dem Hause Isovalent, das bald zu Cisco gehört. (Bild:  frei lizenziert: kalhh /  Pixabay)
Eine lohnenswerte Verbindung: die quelloffene Kernel-Engine „eBPF“ und das in Datacenter-Netzen massiv skalierbare „Cilium“, ein CNCF-Projekt aus dem Hause Isovalent, das bald zu Cisco gehört.
(Bild: frei lizenziert: kalhh / Pixabay)

Gobind Johar, Produktmanager der „Google Kubernetes Engine“, beobachtet: „Mit der zunehmenden Akzeptanz von Kubernetes durch Unternehmen erweitert sich das Spektrum der Anwendungsfälle um neue Anforderungen in den Bereichen Multicloud, Sicherheit, Sichtbarkeit und Skalierbarkeit.“ Darüber hinaus verlangten Technologien wie Service Mesh und Serverless nach „mehr Anpassungsfähigkeit von der zugrundeliegenden Kubernetes-Schicht“.

Diese neuen Anforderungen hätten aus seiner Sicht alle etwas gemeinsam: „Sie erfordern eine programmierbarere Datenverarbeitungsebene, die in der Lage ist, Kubernetes-bewusste Paketmanipulationen durchzuführen, ohne dabei an Leistung zu verlieren“ sagt er.

Ein Generikum: „eBPF“ ist nicht spezifisch auf Netzwerke ausgerichtet oder an einen bestimmten Bereich gebunden. Dies stellt einen massiven Vorteil gegenüber jeder netzwerkspezifischen Programmierlösung wie „iptables“, „Open vSwitch“ oder „nftables“ dar.(Bild:  Cilium.io)
Ein Generikum: „eBPF“ ist nicht spezifisch auf Netzwerke ausgerichtet oder an einen bestimmten Bereich gebunden. Dies stellt einen massiven Vorteil gegenüber jeder netzwerkspezifischen Programmierlösung wie „iptables“, „Open vSwitch“ oder „nftables“ dar.
(Bild: Cilium.io)

Hier kommt eben eBPF (Extended Berkeley Packet Filter) ins Spiel und mit ihm ein neues Linux-Netzwerkparadigma: die Integration programmierbarer Schnittstellen zum Netzwerk-Stack direkt im Linux-Kernel.

eBPF ist eine erweiterte Version des Berkeley Packet Filters (BPF), eines internen Byte-Code-Interpreters für den Linux-Kernel. Die Technologie ermöglicht es isolierten Programmen, in dem privilegierten Kontext des Betriebssystemkernels zu laufen. Entwickler können eBPF-Code schreiben und ausführen, um das Betriebssystem zur Laufzeit um zusätzliche Funktionen zu erweitern – gerne im Bereich der Netzwerk-, Beobachtungs- und Sicherheitsfunktionen.

Hyperscaler machen aus eBPF in ihren Rechenzentren schon länger ausgiebig Gebrauch, um Dienste zur Containerorchestrierung wie die „Google Kubernetes Engine“, „Google Anthos“ und „Amazon EKS Anywhere“ zu unterstützen. Die Hyperscaler sind bei Weitem aber nicht die Einzigen.

*Das Autorenduo

Das Autorenduo besteht aus Anna Kobylinska und Filipe Pereia Martins. Die beiden arbeiten für McKinley Denali, Inc., USA.

Ihr Fazit lautet: Dank einer Kernel-Technologie namens eBPF kann sich in Container-Umgebungen Sichtbarkeit einstellen; mit ihr kehren Sicherheit und skalierbare Netzwerk-Performance ein – aber erst im Zusammenspiel mit Cilium.

Mit der Akquisition des Isovalent-Portfolios nimmt sich demnächst Cisco vermutlich das Sagen. (Für mehr Kontext zu der Übernahme siehe auch den Bericht »Mist, AI!«: Was HPE jetzt mit Juniper Networks anfangen will“.

Ein Frühjahresputz in den Rechenzentren von Ikea

Das kostenbewusste und „modularitätsfreundliche“ Möbelhaus Ikea betreibt sein digitales Geschäft hauptsächlich in eigenen Rechenzentren. Rund 3.000 Fachkräfte der IT-Organisation des 170.000 Mitarbeiter starken Konzerns nutzen die Infrastrukturen.

Um bei der Umstellung auf die Kreislaufwirtschaft an Schwung zu gewinnen, haben die Skandinavier in den eigenen Datencenter eine Private-Cloud-Initiative gestartet. Die modernisierte IT-Landschaft sollte die Entwicklererfahrung verbessern und mit einem Cloud-ähnlichen Verbrauchsmodell aufwarten.

Verschiedene Entwicklergemeinschaften innerhalb der IT-Organisation von Ikea sollten in einer gemeinsamen Multi-Tenancy-Umgebung die IT-Dienste und -Infrastrukturen der Unternehmensgruppe „selbstbewusst“ in Anspruch nehmen können, ohne es groß zu diskutieren und ohne sich gegenseitig in die Quere zu kommen. Das Unternehmen hat sich skalierbare und sichere Konnektivität in einer Zero-Trust-Umgebung auf die Fahnen geschrieben.

Ein Kinderspiel: Der  „Network Policy Editor“ von Isovalent, dem Anbieter hinter dem quelloffenen Projekt „Cilium“ ermöglicht visuelle Bearbeitung von Netzwerkrichtlinien. (Bild:  Kobylinska/Martins)
Ein Kinderspiel: Der „Network Policy Editor“ von Isovalent, dem Anbieter hinter dem quelloffenen Projekt „Cilium“ ermöglicht visuelle Bearbeitung von Netzwerkrichtlinien.
(Bild: Kobylinska/Martins)

Die private Cloud von Ikea basiert auf Kubernetes. Bei der Implementierung fortschrittlicher Netzwerkfunktionen wie Multi-Homing und Lastenausgleich, der Beobachtbarkeit und Netzwerksicherheit in einer Multi-Cluster-Umgebung auf IPv6, stieß die IT-Organisation – sicherlich nicht ganz unerwartet – auf ziemliche Widrigkeiten.

Um die Herausforderungen der Integration seiner Multicloud zu adressieren, hat man sich zu guter Letzt entschlossen, den Netzwerk-Stack in Zusammenarbeit mit Isovalent zu bauen, dem Erfinder von Cilium aus Cupertino, der weltweiten Zentrale des „Ease-of-Use“, dessen Hauptquartier in Zürich über das globale Geschäft wacht. „Endlich wird das Netzwerken einfach und übersichtlich!“, haben sich die IT-ler des Möbeldesigners offenbar gedacht.

Der Stack läuft wie geschmiert.

Karsten Nielsen, Cloudifizierungsspezialist von Ikea aus Kopenhagen

Bei Cilium handelt es sich um eine innovative, massiv skalierbare Technologie zur „Cloudifizierung“ von Datencenter-Netzwerken. Diese Netzwerk-, Beobachtungs- und Sicherheitslösung ist als ein beliebtes quelloffenes CNI-Plugin für Kubernetes verfügbar und wird im Rahmen der CNCF entwickelt.

Cilium stellt ein einfaches, flaches Layer-3-Netzwerk bereit mit der Möglichkeit, mehrere Cluster in einem nativen Routing- oder Überlagerungsmodus zu umspannen. Es ist L7-Protokoll-sensibel und kann Netzwerkrichtlinien auf L3-L7 durchsetzen. Es meistert sowohl die Lastverteilung zwischen Anwendungs-Workloads und als auch die Cybersicherheit – auf eine transparente Art und Weise. Es nutzt ein identitätsbasiertes Sicherheitsmodell, welches von der Netzwerkadressierung entkoppelt ist.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu RZ- und Server-Technik

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung

„Cilium“ im Überblick: „eBPF“ macht durchsetzbare Beobachtbarkeit möglich.(Bild:  Projekt Cilium via Github)
„Cilium“ im Überblick: „eBPF“ macht durchsetzbare Beobachtbarkeit möglich.
(Bild: Projekt Cilium via Github)

Cilium ermöglicht verteiltes Lastenausgleich für den Datenverkehr zwischen Pods und zu externen Diensten und kann „kube-proxy“ vollständig ersetzen. Es macht sich effiziente Hash-Tabellen in eBPF zu Nutze, was eine nahezu unbegrenzte Skalierbarkeit gewährleistet. Cilium unterstützt auch erweiterte Funktionen wie integriertes Ingress- und Egress-Gateway, Bandbreiten-Management und Service-Mesh und verbindet sich mit tiefer Netzwerk- und Sicherheitssichtbarkeit und -überwachung.

Cilium beherrscht die dynamische Einfügung von eBPF-Bytecode in den Linux-Kernel an verschiedenen Integrationspunkten wie Netzwerk-E/A, Anwendungs-Sockets und Tracepoints für Sicherheits-, Netzwerk- und Sichtlogik. Der Ansatz ist äußerst effizient und flexibel.

Ikea nutzt Cilium mit „Hubble“, einem integrierten Werkzeug aus dem Cilium-Projekt, für die Beobachtbarkeit des Netzwerkverkehrs, um den Betrieb der privaten Cloud in den eigenen Rechenzentren unter Kontrolle zu bekommen. Die Daten fließen unter anderem in „Grafana“ ein, ein Werkzeug für fortgeschrittene Datenanalyse und eine interaktive Visualisierung der Abläufe in den Rechenzentren – ein Linux-Kernel nach dem anderen – um die Beobachtbarkeit und damit eine höhere Performance und Sicherheit zu ermöglichen.

Cisco kauft Isovalent

Heute befindet sich Isovalent in der Endspurtphase der Übernahme durch Cisco. Das Unternehmen wird offenbar in die Security Business Group (SBG) von Cisco eingegliedert.

So äußert Tom Gillis, SVP and General Manager, Security Business Group (SBG) von Cisco: „Cilium Mesh von Isovalent ergänzt die softwaredefinierten Netzwerklösungen von Cisco und würde Kunden ein nahtloses und sicheres Netzwerk vom Büro bis zum Rechenzentrum, bis zur öffentlichen Cloud, mit einem durchgehenden Mesh bieten.” Die Bedrohungsintelligenzplattform „Talos“ von Cisco, kombiniert mit der Netzwerk-Intelligenz von Isovalent, würde "zusammen einen führenden Schutz für jede Arbeitslast in jeder Cloud“ ermöglichen.

„Cilium Mesh von Isovalent ergänzt die softwaredefinierten Netzwerklösungen von Cisco und würde Kunden ein nahtloses und sicheres Netzwerk vom Büro bis zum Rechenzentrum, bis zur öffentlichen Cloud, mit einem durchgehenden Mesh bieten“, sagt Tom Gillis, SVP and General Manager, Security Business Group (SBG) von Cisco.(Bild:  Cisco)
„Cilium Mesh von Isovalent ergänzt die softwaredefinierten Netzwerklösungen von Cisco und würde Kunden ein nahtloses und sicheres Netzwerk vom Büro bis zum Rechenzentrum, bis zur öffentlichen Cloud, mit einem durchgehenden Mesh bieten“, sagt Tom Gillis, SVP and General Manager, Security Business Group (SBG) von Cisco.
(Bild: Cisco)

Gillis verspricht, den Open-Source-Status von Cilium und anderen „FOSS“-Projekten mit der Beteiligung von Isovalent nicht zu ändern. Cisco beabsichtigt demnach, einen „unabhängigen Beratungsausschuss zu schaffen, um die Beiträge von Cisco zu diesen wichtigen Bemühungen in einer Weise zu steuern, die mit den Bedürfnissen der Open-Source-Gemeinschaft“ übereinstimmen. Die Akquisition soll zwischen März und Mai 2024 abgeschlossen werden.

eBPF mit XDP: native Performance der Maschinensprache

Cilium setzt seinerseits auf den quelloffenen Technologien eBPF und „XDP“ (eXpress Data Path) auf. Im Falle von XDP (eXpress Data Path) ist von einem Framework die Rede. Seine Aufgabe besteht darin, Hochgeschwindigkeits-Paketverarbeitung innerhalb von BPF-Anwendungen durchzuführen, um eine schnellere Reaktion auf Netzwerkvorgänge zu ermöglichen.

Das besondere Alleinstellungsmerkmal der Programmierbarkeit von „eBPF“ ist dessen Einbettung in den Linux-Kernel.(Bild:  Cilium.io)
Das besondere Alleinstellungsmerkmal der Programmierbarkeit von „eBPF“ ist dessen Einbettung in den Linux-Kernel.
(Bild: Cilium.io)

Programmierbarkeit des Netzwerks existierte in Linux schon länger in Form von User-Space-Netzwerken. Das besondere Merkmal der Programmierbarkeit von eBPF ist dessen Einbettung in den Linux-Kernel. Anwendungen nutzen Systemaufrufe, um über das Netzwerk zu interagieren, und der Linux-Kernel bearbeitet dann diese Systemaufrufe.

Damit ein User-Space-Netzwerkframework (siehe: Abbildung) für die Anwendung transparent bleibt, muss es dennoch die Socket-Schicht des Linux-Kernels durchlaufen. eBPF vermeidet dies, indem es vollständig im Kernel verbleibt.

eBPF ist als eine abstrakte virtuelle Maschine (VM) implementiert, die innerhalb des Linux-Kernels läuft. Dies ermöglicht es Entwicklern, Low-Level-Überwachungs-, Tracing- oder Netzwerkprogramme in einem Sandkasten im Kernel mit nativer Leistung auszuführen.

Die eBPF-Vorteile

Diese Fähigkeit ermöglicht die Ausführung leistungsstarker Netzwerkfunktionen wie Lastenausgleich, Routing und Firewalling direkt im Kernelbereich. Dies minimiert den Overhead herkömmlicher Netzwerk-Stacks, die lediglich im User-Space laufen.

eBPF schafft Sichtbarkeit, ein entscheidendes Kriterium für die Leistungsüberwachung und das Debugging von Anwendungen in komplexen Systemen. Es kann die Ausführung von Kernel- und Benutzercode mitverfolgen, Metriken erfassen und Ereignisse protokollieren.

Durch eBPF lassen sich Richtlinien dynamisch anwenden, um den Netzwerkzugriff, die Prozessausführung und den Dateizugriff zu steuern, was die Sicherheitslage des Systems verbessert. Es ermöglicht feingranulare Sicherheitskontrollen und eine hohe Anpassungsfähigkeit in einer dynamischen IT-Landschaft einer „cloudifizierten“ Bereitstellung.

 Was so alles im Kernel stattfindet .... (Bild:  Projekt Cilium via Github)
Was so alles im Kernel stattfindet ....
(Bild: Projekt Cilium via Github)

Ein LLVM-Backend kompiliert C-Programmiercode erst einmal in BPF-Byte-Code. Ein im Kernel integrierter Verifizierer wacht über die Sicherheit. Ein JIT-Compiler konvertiert den BPF-Bytecode in spezifische Anweisungen in der nativen Maschinensprache der betreffenden CPU-Architektur. Dadurch erreicht eBPF native Ablaufgeschwindigkeit.

eBPF-Programme lassen sich an verschiedenen Anknüpfungspunkten (den so genannten Hooks) im Kernel ausführen. In Frage kommen unter anderem eingehende Pakete, ausgehende Pakete, Systemaufrufe, kprobes, uprobes, Tracepoints und vieles andere.

Mit jeder neuen Linux-Version gewinnt BPF weitere Fähigkeiten hinzu. Cilium nutzt BPF, um Kernfilterung des Datenpfads, Manipulation, Überwachung und Umleitung durchzuführen.

In Kombination mit XDP

Mit XDP lassen sich bestimmte Typen von eBPF-Programmen direkt im Netzwerktreiber ausführen, noch bevor die betreffenden Pakete den vollständigen Netzwerk-Stack durchlaufen, um Pakete an dem frühestmöglichen Punkt im Netzwerkpfad zu analysieren und über ihr Schicksal zu entscheiden (verwerfen, umleiten, unverändert weiterleiten etc.).

Diese frühe Intervention verdankt XDP seiner Fähigkeit zum direkten Zugriff auf den DMA-Puffer (Direct Memory Access) der Netzwerkkarte. Dies bedeutet, dass XDP-Programme an dem frühestmöglichen Punkt im Software-Stack eines Linux-Systems eingreifen können, noch bevor die Pakete den üblichen Netzwerk-Stack durchlaufen.

Der DMA-Puffer, in den die Netzwerkpakete zunächst geladen werden, ist der Speicherbereich, auf den der Netzwerktreiber unmittelbar zugreift, um Datenpakete zu empfangen oder zu senden. Indem XDP an diesem Punkt eingreift, ermöglicht es eine extrem schnelle Verarbeitung von Paketen, da der Overhead durch den restlichen Netzwerk-Stack vermieden wird.

Schnelligkeit ist Trumpf

Der Ansatz ermöglicht eine extrem schnelle Reaktion auf Netzwerk-Ereignisse. Er erlaubt Entwicklern, hochspezialisierte Logik direkt auf der Hardware-Ebene zu implementieren, was zu deutlichen Verbesserungen in der Geschwindigkeit der Paketverarbeitung führen kann.

In Verbindung mit eBPF stellt XDP ein mächtiges Werkzeug dar und bewährt sich in einer Vielzahl von Anwendungsszenarien von Unternehmensrechenzentren über Infrastrukturen von Internetdienstanbietern bis hin zu jenen anderer Telekommunikationsunternehmen. Dazu zählen Aufgaben wie das Filtern von Paketen, Netzwerksicherheit, zum Beispeil beim Blockieren von DDoS-Angriffen, Load Balancing, Monitoring und Paketumleitung – stets mit minimaler Latenz und Hardware-nativer Leistung.

eBPF kommt häufig in Kubernetes-Umgebungen zum Tragen, wo es tiefe Einblicke in das Laufzeitverhalten von Anwendungen und dem System ermöglicht. Es bietet eine zuverlässige Methode zur Überwachung von Diensten im Cluster. Die Erweiterbarkeit von eBPF über stark verteilte Kubernetes-Umgebungen zählt zu den besonderen Highlights der Technologie.

eBPF ist jedoch nicht auf Kubernetes beschränkt. Es ermöglicht vielmehr die Erstellung von benutzerdefinierten Tracing-Tools, die sich auch außerhalb einer „cloudifizierten“ IT-Landschaft nutzen lassen.

(ID:49944293)