Kapitel 6. Linux-Netzwerke und BPF

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Aus Netzwerksicht verwenden wir BPF-Programme für zwei Hauptanwendungsfälle: Paketerfassung und -filterung.

Das bedeutet, dass ein User-Space-Programm einen Filter an jeden Socket anhängen und Informationen über die Pakete, die durch den Socket fließen, extrahieren kann, um bestimmte Arten von Paketen zuzulassen/zu verbieten/umzuleiten, wie sie auf dieser Ebene gesehen werden.

Ziel dieses Kapitels ist es, zu erklären, wie BPF-Programme mit der Socket-Buffer-Struktur auf verschiedenen Stufen des Netzwerkdatenpfads im Linux-Kernel-Netzwerkstack interagieren können. Wir identifizieren zwei Arten von Programmen als gängige Anwendungsfälle:

  • Programmtypen im Zusammenhang mit Steckdosen

  • Programme, die für den BPF-basierten Klassifikator für die Verkehrskontrolle geschrieben wurden

Hinweis

Die Socket-Buffer-Struktur, auch SKB oder sk_buff genannt, wird im Kernel für jedes gesendete oder empfangene Paket erstellt und verwendet. Durch das Auslesen des SKB kannst du Pakete weiterleiten oder verwerfen und BPF-Maps ausfüllen, um Statistiken und Flussmetriken über den aktuellen Datenverkehr zu erstellen.

Einige BPF-Programme ermöglichen es dir außerdem, die SKB zu manipulieren und damit die Pakete umzuwandeln, um sie umzuleiten oder ihre grundlegende Struktur zu ändern. Auf einem reinen IPv6-System könntest du zum Beispiel ...

Get Linux Observabilität mit BPF now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.