Uzņēmums Cloudflare
Utilīta xdpcap ir saderīga ar tcpdump/libpcap filtrēšanas izteiksmēm un ļauj apstrādāt ievērojami lielāku trafika apjomu tajā pašā aparatūrā. Xdpcap var izmantot arī atkļūdošanai vidēs, kur parastais tcpdump nav piemērojams, piemēram, filtrēšanai, DoS aizsardzībai un slodzes līdzsvarošanas sistēmām, kas izmanto Linux kodola XDP apakšsistēmu, kas apstrādā paketes, pirms tās apstrādā Linux kodola tīkla steks (tcpdump neredz XDP apstrādātāja nomestās paketes).
Augsta veiktspēja tiek panākta, izmantojot eBPF un XDP apakšsistēmas. eBPF ir Linux kodolā iebūvēts baitkoda tulks, kas ļauj izveidot augstas veiktspējas ienākošo/izejošo pakešu apstrādātājus ar lēmumiem par to pārsūtīšanu vai atmešanu. Izmantojot JIT kompilatoru, eBPF baitkods tiek tulkots mašīnas instrukcijās un tiek izpildīts ar vietējā koda veiktspēju. XDP (eXpress Data Path) apakšsistēma papildina eBPF ar iespēju palaist BPF programmas tīkla draivera līmenī, ar atbalstu tiešai piekļuvei DMA pakešu buferim un darbam posmā, pirms skbuff buferis tiek piešķirts no tīkla steka.
Tāpat kā tcpdump, arī utilīta xdpcap vispirms pārvērš augsta līmeņa trafika filtrēšanas noteikumus klasiskajā BPF attēlojumā (cBPF), izmantojot standarta libpcap bibliotēku, un pēc tam pārvērš tos eBPF rutīnu formā, izmantojot kompilatoru.
Avots: opennet.ru