Cloudflare-k xdpcap argitaratu du, XDP azpisisteman oinarritutako trafiko analizatzailea

Cloudflare konpainia aurkeztu proiektu irekia xdpcap, zeinaren barruan tcpdump-en antzeko sare-pakete analizatzaile bat garatzen ari da, azpisisteman oinarrituta eraikia XDP (eXpress Datu Bidea). Proiektuaren kodea Go-n idatzita dago eta arabera banatuta BSD lizentziapean. Proiektua ere bai prestatuta Go aplikazioetatik eBPF trafiko-kudeatzaileak lotzeko liburutegia.

xdpcap utilitatea bateragarria da tcpdump/libpcap iragazketa-adierazpenekin eta hardware berean trafiko-bolumen nabarmen handiagoak prozesatzeko aukera ematen du. Xdpcap tcpdump arrunta aplikagarria ez den inguruneetan ere erabil daiteke arazketarako, hala nola Linux kernel XDP azpisistema erabiltzen duten iragazketa, DoS babesa eta karga orekatzeko sistemetan, zeinak paketeak prozesatzen ditu Linux kernel sareko pilak prozesatu aurretik (tcpdump). ez ditu ikusten XDP kudeatzaileak botatako paketeak).

Errendimendu handia eBPF eta XDP azpisistemak erabiliz lortzen da. eBPF Linux nukleoan integratutako bytecode interpretatzailea da, sarrerako/irteerako paketeen errendimendu handiko kudeatzaileak sortzeko aukera ematen duena, horiek birbidaltzeko edo baztertzeko erabakiekin. JIT konpiladore bat erabiliz, eBPF bytecode makinaren argibideetara itzultzen da hegan eta jatorrizko kodearen errendimenduarekin exekutatzen da. XDP (eXpress Data Path) azpisistemak eBPF osatzen du BPF programak sareko kontrolatzaile mailan exekutatzeko gaitasunarekin, DMA paketeen bufferera zuzenean sartzeko eta sareko pilak skbuff buffera esleitu aurretik lan egiteko aukerarekin.

Tcpdump bezala, xdpcap utilitateak lehenik goi-mailako trafikoa iragazteko arauak BPF irudikapen klasikora (cBPF) itzultzen ditu libpcap liburutegi estandarra erabiliz, eta gero eBPF errutina moduan bihurtzen ditu konpiladore bat erabiliz. cbpfc, LLVM/Clang garapenak erabiliz. Irteeran, trafikoaren informazioa pcap formatu estandarrean gordetzen da, eta horrek xdpcap-en prestatutako trafiko-iraulketa bat erabiltzeko aukera ematen du, tcpdump-en eta lehendik dauden beste trafiko-analizzatzaile batzuetan aztertzeko. Adibidez, DNS trafikoaren informazioa harrapatzeko, "tcpdump ip and udp port 53" komandoa erabili beharrean, "xdpcap /path/to/hook capture.pcap 'ip and udp port 53β€²" exekutatu dezakezu eta gero harrapaketa bat erabil dezakezu. .pcap fitxategia, adibidez, "tcpdump -r" komandoarekin edo Wireshark-en.

Iturria: opennet.ru

Gehitu iruzkin berria