Cloudflare har offentliggjort xdpcap, en trafikanalysator baseret på XDP-systemet

Cloudflare præsenterede åbent projekt xdpcap, hvor et netværkspakkefor analyseringsværktøj, der ligner tcpdump, udvikles baseret på subsystemet XDP (eXpress Data Path). Projektkoden er skrevet i Go-sprog og distribueres under BSD-licensen. Projektet har også udviklet et bibliotek til binding af eBPF-trafikbehandlere fra applikationer skrevet i Go.

xdpcap-værktøjet er kompatibelt med tcpdump/libpcap filtreringsudtryk og gør det muligt at behandle væsentligt større mængder trafik på det samme udstyr. Xdpcap kan også bruges til fejlfinding under forhold, hvor almindelig tcpdump ikke kan anvendes, for eksempel når der er anvendt filtreringssystemer, dødsangrebssikring og belastningsbalancering, der bruger Linux-kernens XDP-subsystem, som behandler pakker før de når Linux-kernens netværksstak (tcpdump ser ikke pakker, der er afvist af XDP-behandleren).

Høj ydeevne opnås ved brug af eBPF- og XDP-subsystemerne. eBPF er en indbygget bytecode-udfører i Linux-kernen, som gør det muligt at skabe højtperformante behandlere for indgående/udgående pakker med beslutningsmuligheder om omdirigering eller afvisning. Ved hjælp af JIT-kompilatoren oversættes eBPF-bytecode dynamisk til maskininstruktioner og udføres med ydeevne svarende til native kode. XDP-subsystemet (eXpress Data Path) supplerer eBPF med muligheden for at køre BPF-programmer på netværksdriverniveau med direkte adgang til DMA-pakkepuffer og fungerer før allokering af skbuff-bufferet af netværksstakken.

Som tcpdump-translaterer xdpcap oprindeligt højniveau trafikfiltreringsregler til en klassisk BPF-repræsentation (cBPF) ved hjælp af den medfølgende libpcap-bibliotek, hvorefter de omdannes til former af eBPF-subprogrammer med kompilatoren cbpfc, der anvender LLVM/Clang-teknologier. Uddata om trafik gemmes i det standardiserede pcap-format, hvilket gør det muligt at bruge det forberedte xdpcap dump af trafik til efterfølgende analyse i tcpdump og andre eksisterende trafikanalysatorer. For eksempel, for at fange oplysninger om DNS-trafik i stedet for kommandoen "tcpdump ip and udp port 53", kan man køre "xdpcap /path/to/hook capture.pcap 'ip and udp port 53'", hvorefter man kan bruge filen capture.pcap, f.eks. med kommandoen "tcpdump -r" eller i Wireshark.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster