Cloudflare'i ettevõte
Utiliit xdpcap ühildub tcpdump/libpcap filtreerimisavaldistega ja võimaldab töödelda samal riistvaral oluliselt suuremaid liiklusmahtusid. Xdpcapi saab kasutada ka silumiseks keskkondades, kus tavaline tcpdump ei ole rakendatav, näiteks filtreerimine, DoS kaitse ja koormuse tasakaalustamise süsteemid, mis kasutavad Linuxi kerneli XDP alamsüsteemi, mis töötleb pakette enne, kui neid töötleb Linuxi tuuma võrgupinn (tcpdump ei näe XDP-käsitleja poolt maha visatud pakette).
Kõrge jõudlus saavutatakse eBPF ja XDP alamsüsteemide kasutamisega. eBPF on Linuxi kernelisse sisseehitatud baitkooditõlk, mis võimaldab teil luua sissetulevate/väljaminevate pakettide suure jõudlusega töötlejaid nende edastamise või äraviskamise otsustega. JIT-kompilaatori abil tõlgitakse eBPF-i baitkood käigult masinakäskudeks ja käivitatakse natiivse koodi jõudlusega. XDP (eXpress Data Path) alamsüsteem täiendab eBPF-i võimalusega käivitada BPF-programme võrgudraiveri tasemel, toetades otsejuurdepääsu DMA-pakettpuhvrile ja töötades etapis, enne kui võrgupinn eraldab skbuff-puhvri.
Nagu tcpdump, tõlgib utiliit xdpcap esmalt kõrgetasemelised liikluse filtreerimise reeglid klassikaliseks BPF-i esituseks (cBPF), kasutades standardset libpcap teeki ja seejärel teisendab need kompilaatori abil eBPF-i rutiinidena.
Allikas: opennet.ru