Cloudflare kompanija
Priemonė xdpcap yra suderinama su tcpdump/libpcap filtravimo išraiškomis ir leidžia apdoroti žymiai didesnį srautą ta pačia aparatūra. Xdpcap taip pat gali būti naudojamas derinimui aplinkose, kuriose įprastas tcpdump netaikomas, pvz., filtravimo, DoS apsaugos ir apkrovos balansavimo sistemose, kuriose naudojamas Linux branduolio XDP posistemis, kuris apdoroja paketus prieš juos apdorojant Linux branduolio tinklo krūvoje (tcpdump). nemato XDP tvarkyklės išmestų paketų).
Didelis našumas pasiekiamas naudojant eBPF ir XDP posistemes. „eBPF“ yra „Linux“ branduolyje įmontuotas baitinio kodo interpretatorius, leidžiantis sukurti didelio našumo gaunamų / siunčiamų paketų tvarkykles, priimant sprendimus dėl jų persiuntimo ar atmetimo. Naudojant JIT kompiliatorių, eBPF baitinis kodas iš karto verčiamas į mašinos instrukcijas ir vykdomas naudojant vietinį kodą. XDP (eXpress Data Path) posistemis papildo eBPF su galimybe paleisti BPF programas tinklo tvarkyklės lygiu, palaikydamas tiesioginę prieigą prie DMA paketų buferio ir darbo etapu, kol skbuff buferis yra paskirstomas tinklo dėklo.
Kaip ir tcpdump, xdpcap įrankis pirmiausia paverčia aukšto lygio srauto filtravimo taisykles į klasikinį BPF atvaizdavimą (cBPF), naudodamas standartinę libpcap biblioteką, o tada konvertuoja jas į eBPF rutinos, naudodamas kompiliatorių.
Šaltinis: opennet.ru