Cloudflare imechapisha xdpcap, kichanganuzi cha trafiki kulingana na mfumo mdogo wa XDP

Kampuni ya Cloudflare imewasilishwa fungua mradi xdpcap, ambamo kichanganuzi cha pakiti cha mtandao sawa na tcpdump kinatengenezwa, kilichojengwa kwa misingi ya mfumo mdogo. XDP (Njia ya data ya eXpress). Msimbo wa mradi umeandikwa katika Go na kusambazwa na chini ya leseni ya BSD. Mradi huo pia tayari maktaba ya kufunga vidhibiti vya trafiki vya eBPF kutoka kwa programu za Go.

Huduma ya xdpcap inaoana na misemo ya kuchuja ya tcpdump/libpcap na hukuruhusu kuchakata idadi kubwa zaidi ya trafiki kwenye maunzi sawa. Xdpcap pia inaweza kutumika kwa utatuzi katika mazingira ambapo tcpdump ya kawaida haitumiki, kama vile kuchuja, ulinzi wa DoS, na mifumo ya kusawazisha mizigo inayotumia mfumo mdogo wa Linux kernel XDP, ambao huchakata pakiti kabla ya kuchakatwa na mkusanyiko wa mtandao wa kernel wa Linux (tcpdump). haioni pakiti zikidondoshwa na kidhibiti cha XDP).

Utendaji wa juu unapatikana kupitia matumizi ya mifumo ndogo ya eBPF na XDP. eBPF ni mkalimani wa bytecode iliyojengwa ndani ya kinu cha Linux inayokuruhusu kuunda vidhibiti vya utendaji wa juu vya pakiti zinazoingia/zinazotoka na maamuzi kuhusu kuzisambaza au kuzitupa. Kwa kutumia kikusanyaji cha JIT, eBPF bytecode hutafsiriwa kwa haraka hadi kwenye maagizo ya mashine na kutekelezwa kwa utendakazi wa msimbo asilia. Mfumo mdogo wa XDP (eXpress Data Path) hukamilisha eBPF kwa uwezo wa kuendesha programu za BPF katika kiwango cha viendesha mtandao, kwa usaidizi wa ufikiaji wa moja kwa moja kwenye bafa ya pakiti ya DMA na kufanya kazi kwenye hatua kabla ya skbuff bafa kutengwa na mrundikano wa mtandao.

Kama tcpdump, matumizi ya xdpcap kwanza hutafsiri sheria za kiwango cha juu za uchujaji wa trafiki kuwa uwakilishi wa kawaida wa BPF (cBPF) kwa kutumia maktaba ya kawaida ya libpcap, na kisha kuzibadilisha kuwa mfumo wa taratibu za eBPF kwa kutumia mkusanyaji. cbpfc, kwa kutumia maendeleo ya LLVM/Clang. Kwenye pato, maelezo ya trafiki huhifadhiwa katika umbizo la kawaida la pcap, ambalo hukuruhusu kutumia utupaji wa trafiki uliotayarishwa katika xdpcap kwa utafiti unaofuata katika tcpdump na vichanganuzi vingine vya trafiki vilivyopo. Kwa mfano, ili kunasa maelezo ya trafiki ya DNS, badala ya kutumia amri ya "tcpdump ip na udp port 53", unaweza kuendesha "xdpcap /path/to/hook capture.pcap 'ip na udp port 53β€²" kisha utumie kunasa. .pcap faili, k.m. na amri "tcpdump -r" au katika Wireshark.

Chanzo: opennet.ru

Kuongeza maoni