Société Cloudflare
L'utilitaire xdpcap est compatible avec les expressions de filtrage tcpdump/libpcap et vous permet de traiter des volumes de trafic nettement plus importants sur le même matériel. Xdpcap peut également être utilisé pour le débogage dans des environnements où tcpdump standard n'est pas applicable, tels que les systèmes de filtrage, de protection DoS et d'équilibrage de charge qui utilisent le sous-système XDP du noyau Linux, qui traite les paquets avant qu'ils ne soient traités par la pile réseau du noyau Linux (tcpdump ne voit pas les paquets abandonnés par le gestionnaire XDP).
Des performances élevées sont obtenues grâce à l'utilisation des sous-systèmes eBPF et XDP. eBPF est un interpréteur de bytecode intégré au noyau Linux qui vous permet de créer des gestionnaires hautes performances de paquets entrants/sortants avec des décisions concernant leur transfert ou leur rejet. À l'aide d'un compilateur JIT, le bytecode eBPF est traduit à la volée en instructions machine et exécuté avec les performances du code natif. Le sous-système XDP (eXpress Data Path) complète eBPF avec la possibilité d'exécuter des programmes BPF au niveau du pilote réseau, avec prise en charge de l'accès direct au tampon de paquets DMA et de travailler avant que le tampon skbuff ne soit alloué par la pile réseau.
Comme tcpdump, l'utilitaire xdpcap traduit d'abord les règles de filtrage du trafic de haut niveau en représentation BPF classique (cBPF) à l'aide de la bibliothèque libpcap standard, puis les convertit sous la forme de routines eBPF à l'aide d'un compilateur.
Source: opennet.ru