Cloudflare-Unternehmen
Das Dienstprogramm xdpcap ist mit den Filterausdrücken tcpdump/libpcap kompatibel und ermöglicht Ihnen die Verarbeitung deutlich größerer Datenverkehrsmengen auf derselben Hardware. Xdpcap kann auch zum Debuggen in Umgebungen verwendet werden, in denen reguläres tcpdump nicht anwendbar ist, z. B. Filter-, DoS-Schutz- und Lastausgleichssysteme, die das Linux-Kernel-XDP-Subsystem verwenden, das Pakete verarbeitet, bevor sie vom Linux-Kernel-Netzwerkstapel (tcpdump) verarbeitet werden sieht keine vom XDP-Handler verworfenen Pakete).
Durch den Einsatz von eBPF- und XDP-Subsystemen wird eine hohe Leistung erreicht. eBPF ist ein in den Linux-Kernel integrierter Bytecode-Interpreter, der es Ihnen ermöglicht, leistungsstarke Handler für eingehende/ausgehende Pakete mit Entscheidungen über deren Weiterleitung oder Verwerfung zu erstellen. Mithilfe eines JIT-Compilers wird der eBPF-Bytecode im Handumdrehen in Maschinenanweisungen übersetzt und mit der Leistung von nativem Code ausgeführt. Das XDP-Subsystem (eXpress Data Path) ergänzt eBPF durch die Möglichkeit, BPF-Programme auf Netzwerktreiberebene auszuführen, mit Unterstützung für den direkten Zugriff auf den DMA-Paketpuffer und die Arbeit in der Phase vor der Zuweisung des Skbuff-Puffers durch den Netzwerkstapel.
Wie tcpdump übersetzt das Dienstprogramm xdpcap zunächst High-Level-Traffic-Filterungsregeln mithilfe der Standardbibliothek libpcap in die klassische BPF-Darstellung (cBPF) und konvertiert sie dann mithilfe eines Compilers in die Form von eBPF-Routinen
Source: opennet.ru