Кампанія Cloudflare
Утыліта xdpcap сумяшчальная з выразамі фільтравання tcpdump/libpcap і дазваляе апрацоўваць на тым жа абсталяванні істотна вялікія аб'ёмы трафіку. Xdpcap таксама можа ўжывацца для адладкі ва ўмовах, у якіх звычайны tcpdump непрымяняльны, напрыклад, калі ўжываюцца сістэмы фільтрацыі, абароны ад DoS-нападаў і балансаванні нагрузкі, выкарыстоўвалыя падсістэму ядра Linux XDP, якая апрацоўвае пакеты на стадыі да іх апрацоўкі сеткавым стэкам ядра Linux (tcd не бачыць пакеты, адкінутыя апрацоўшчыкам XDP).
Высокая прадукцыйнасць дасягаецца дзякуючы прымяненню падсістэм eBPF і XDP. eBPF уяўляе сабой убудаваны ў ядро Linux інтэрпрэтатар байткода, які дазваляе ствараць высокапрадукцыйныя апрацоўшчыкі ўваходных/выходных пакетаў з прыняццем рашэнняў пра іх перанакіраванне ці адкідванні. Пры дапамозе JIT-кампілятара байткод eBPF на лёце транслюецца ў машынныя інструкцыі і выконваецца з прадукцыйнасцю натыўнага кода. Падсістэма XDP (eXpress Data Path) дапаўняе eBPF магчымасцю запускаць BPF-праграмы на ўзроўні сеткавага драйвера, з падтрымкай прамога доступу да DMA-буферу пакетаў і працай на стадыі да вылучэння буфера skbuff сеткавым стэкам.
Як і tcpdump утыліта xdpcap спачатку транслюе высокаўзроўневыя правілы фільтрацыі трафіку ў класічнае паданне BPF (cBPF) пры дапамозе штатнай бібліятэкі libpcap, пасля чаго пераўтворыць іх у форму падпраграм eBPF, выкарыстаючы кампілятар
Крыніца: opennet.ru