Cloudflare-bedrijf
Het hulpprogramma xdpcap is compatibel met filterexpressies tcpdump/libpcap en stelt u in staat aanzienlijk grotere hoeveelheden verkeer op dezelfde hardware te verwerken. Xdpcap kan ook worden gebruikt voor het debuggen in omgevingen waar reguliere tcpdump niet van toepassing is, zoals filtering, DoS-bescherming en load-balancing-systemen die het Linux-kernel XDP-subsysteem gebruiken, dat pakketten verwerkt voordat ze worden verwerkt door de Linux-kernelnetwerkstack (tcpdump ziet geen pakketten die door de XDP-handler zijn verwijderd).
Hoge prestaties worden bereikt door het gebruik van eBPF- en XDP-subsystemen. eBPF is een bytecode-interpreter ingebouwd in de Linux-kernel waarmee u krachtige handlers van inkomende/uitgaande pakketten kunt maken met beslissingen over het doorsturen of weggooien ervan. Met behulp van een JIT-compiler wordt eBPF-bytecode direct vertaald in machine-instructies en uitgevoerd met de prestaties van native code. Het XDP-subsysteem (eXpress Data Path) vult eBPF aan met de mogelijkheid om BPF-programma's uit te voeren op netwerkstuurprogrammaniveau, met ondersteuning voor directe toegang tot de DMA-pakketbuffer en te werken in de fase voordat de skbuff-buffer wordt toegewezen door de netwerkstack.
Net als tcpdump vertaalt het xdpcap-hulpprogramma eerst verkeersfilterregels op hoog niveau naar de klassieke BPF-representatie (cBPF) met behulp van de standaard libpcap-bibliotheek, en converteert deze vervolgens naar de vorm van eBPF-routines met behulp van een compiler.
Bron: opennet.ru