Ang Cloudflare nagpatik sa xdpcap, usa ka traffic analyzer nga gibase sa XDP subsystem

Cloudflare Company gipresentar bukas nga proyekto xdpcap, diin ang usa ka network packet analyzer nga susama sa tcpdump gipalambo, gitukod pinasukad sa subsystem XDP (Path sa Data sa eXpress). Ang code sa proyekto gisulat sa Go ug giapod-apod sa ubos sa lisensya sa BSD. Ang proyekto usab giandam librarya alang sa pagbugkos sa mga tigdumala sa trapiko sa eBPF gikan sa mga aplikasyon sa Go.

Ang xdpcap utility nahiuyon sa mga ekspresyon sa pagsala sa tcpdump/libpcap ug gitugotan ka nga maproseso ang labi ka daghang volume sa trapiko sa parehas nga hardware. Ang Xdpcap mahimo usab nga gamiton alang sa pag-debug sa mga palibot diin ang regular nga tcpdump dili magamit, sama sa pagsala, proteksyon sa DoS, ug mga sistema sa pagbalanse sa load nga naggamit sa Linux kernel XDP subsystem, nga nagproseso sa mga pakete sa wala pa kini iproseso sa Linux kernel networking stack (tcpdump). wala makakita sa mga pakete nga gihulog sa XDP handler).

Ang taas nga performance makab-ot pinaagi sa paggamit sa eBPF ug XDP subsystems. Ang eBPF usa ka bytecode interpreter nga gitukod sa Linux kernel nga nagtugot kanimo sa paghimo og mga high-performance nga mga handler sa mga umaabot nga / outgoing nga mga pakete nga adunay mga desisyon bahin sa pagpasa o pagsalikway niini. Gamit ang usa ka JIT compiler, ang eBPF bytecode gihubad dayon ngadto sa mga instruksyon sa makina ug gipatuman uban ang paghimo sa lumad nga code. Ang subsystem sa XDP (eXpress Data Path) nagsuporta sa eBPF nga adunay abilidad sa pagpadagan sa mga programa sa BPF sa lebel sa driver sa network, nga adunay suporta alang sa direktang pag-access sa DMA packet buffer ug pagtrabaho sa entablado sa wala pa ang skbuff buffer gigahin sa network stack.

Sama sa tcpdump, ang xdpcap utility una nga naghubad sa taas nga lebel sa mga lagda sa pagsala sa trapiko ngadto sa klasiko nga representasyon sa BPF (cBPF) gamit ang standard nga librarya sa libpcap, ug dayon gi-convert kini ngadto sa porma sa mga rutina sa eBPF gamit ang usa ka compiler cbpfc, gamit ang LLVM/Clang developments. Sa output, ang impormasyon sa trapiko gitipigan sa standard pcap format, nga nagtugot kanimo sa paggamit sa traffic dump nga giandam sa xdpcap para sa sunod nga pagtuon sa tcpdump ug uban pang kasamtangan nga traffic analyzer. Pananglitan, aron makuha ang impormasyon sa trapiko sa DNS, imbes nga gamiton ang "tcpdump ip ug udp port 53" nga sugo, mahimo nimong ipadagan ang "xdpcap /path/to/hook capture.pcap 'ip ug udp port 53β€²" ug dayon mogamit ug capture .pcap file, pananglitan uban ang command "tcpdump -r" o sa Wireshark.

Source: opennet.ru

Idugang sa usa ka comment