Compania Cloudflare
Utilitarul xdpcap este compatibil cu expresiile de filtrare tcpdump/libpcap și vă permite să procesați volume semnificativ mai mari de trafic pe același hardware. Xdpcap poate fi folosit și pentru depanare în medii în care tcpdump obișnuit nu este aplicabil, cum ar fi sistemele de filtrare, protecție DoS și echilibrare a încărcăturii care utilizează subsistemul XDP al nucleului Linux, care procesează pachetele înainte ca acestea să fie procesate de stiva de rețea a nucleului Linux (tcpdump). nu vede pachetele abandonate de handlerul XDP).
Performanța ridicată este obținută prin utilizarea subsistemelor eBPF și XDP. eBPF este un interpret de cod de octeți încorporat în nucleul Linux care vă permite să creați handlere de înaltă performanță a pachetelor de intrare/ieșire cu decizii privind redirecționarea sau eliminarea acestora. Folosind un compilator JIT, eBPF bytecode este tradus din mers în instrucțiuni de mașină și executat cu performanța codului nativ. Subsistemul XDP (eXpress Data Path) completează eBPF cu capacitatea de a rula programe BPF la nivel de driver de rețea, cu suport pentru acces direct la buffer-ul de pachete DMA și lucrează în stadiul înainte ca tamponul skbuff să fie alocat de către stiva de rețea.
La fel ca tcpdump, utilitarul xdpcap traduce mai întâi regulile de filtrare a traficului la nivel înalt în reprezentarea BPF clasică (cBPF) folosind biblioteca standard libpcap, apoi le convertește în forma de rutine eBPF folosind un compilator
Sursa: opennet.ru