Kompania Cloudflare projekt i hapur , në kuadër të cilit zhvillohet një analizues paketash rrjetesh i ngjashëm me tcpdump, i ndërtuar mbi nëndegën (eXpress Data Path). Kodi i projektit është shkruar në gjuhën Go dhe në bazë të licencës BSD. Projekti gjithashtu ofron një bibliotekë për lidhjen e trajtuesve eBPF nga aplikacionet në gjuhën Go.
Utiliteti xdpcap është në përputhje me shprehjet e filtrimit tcpdump/libpcap dhe lejon përpunimin e sasi më të mëdha të trafikut në të njëjtin ekipament. Xdpcap gjithashtu mund të përdoret për debugging në kushte ku tcpdump tradicional nuk është i aplikueshëm, për shembull, kur përdoren sisteme filtrimi, mbrojtjeje nga sulmet DoS dhe balancimi i ngarkesës, që përdorin nëndegën e bërthamës Linux XDP, e cila përpunon paketat në fazën para se të përpunohen nga steka rrjetor i bërthamës Linux (tcpdump nuk i sheh paketat e hedhura nga trajtuesi XDP).
Performanca e lartë arrihet falë përdorimit të nëndegës eBPF dhe XDP. eBPF është një interpretues bytecode i përfshirë në bërthamën Linux, që lejon krijimin e trajtuesve me performancë të lartë për paketat hyrëse/delëse duke bërë vendime për ridrejtimin ose hedhjen e tyre. Me ndihmën e JIT-kompilatorit, bytecode eBPF konvertohet në instruksione makine dhe ekzekutohet me performancën e kodit natyror. Nëndega XDP (eXpress Data Path) plotëson eBPF me mundësinë për të ekzekutuar programet BPF në nivelin e tërheqësit të rrjetit, me mbështetje për qasje të drejtpërdrejtë në buferat DMA të paketave dhe duke punuar në fazën para alokimit të buferit skbuff nga steka rrjetore.
Ashtu si tcpdump, utiliteti xdpcap nĂ« fillim konverton rregullat e filtrimit tĂ« trafikut nĂ« njĂ« prezantim klasik BPF (cBPF) duke pĂ«rdorur bibliotekĂ«n standarde libpcap, dhe mĂ« pas i konverton ato nĂ« formĂ«n e nĂ«nprogramave eBPF, duke pĂ«rdorur kompiluesin , i cili pĂ«rdor zhvillimet LLVM/Clang. NĂ« fund, informacionet mbi trafikun ruhen nĂ« formatin standard pcap, qĂ« lejon pĂ«rdorimin e dump-it tĂ« krijuar nĂ« xdpcap pĂ«r studim tĂ« mĂ«tejmĂ« nĂ« tcpdump dhe analizues tĂ« tjerĂ« tĂ« trafikut qĂ« ekzistojnĂ«. PĂ«r shembull, pĂ«r tĂ« kapur informacionet mbi trafikun DNS, nĂ« vend tĂ« komandĂ«s «tcpdump ip and udp port 53», mund tĂ« Startosh «xdpcap /path/to/hook capture.pcap âip and udp port 53â», e mĂ« pas tĂ« pĂ«rdorĂ«sh skedarin capture.pcap, pĂ«r shembull, me komandĂ«n «tcpdump -r» ose nĂ« Wireshark.
Burimi: opennet.ru
