Cloudflare hat xdpcap publisearre, in ferkearsanalysator basearre op it XDP-subsysteem

It bedriuw Cloudflare Company presintearre iepen projekt xdpcap, wêryn in netwurkpakketanalysator fergelykber is mei tcpdump wurdt ûntwikkele, boud op basis fan it subsysteem XDP (Express Data Path). De projektkoade is skreaun yn Go en ferspraat troch ûnder BSD lisinsje. It projekt ek taret bibleteek foar binende eBPF ferkear handlers út Go applikaasjes.

It xdpcap-hulpprogramma is kompatibel mei tcpdump/libpcap-filteringsútdrukkingen en lit jo signifikant gruttere folumes ferkear ferwurkje op deselde hardware. Xdpcap kin ek brûkt wurde foar debuggen yn omjouwings dêr't reguliere tcpdump net fan tapassing is, lykas filterjen, DoS-beskerming, en load balancing-systemen dy't it Linux-kernel XDP-subsysteem brûke, dat pakketten ferwurket foardat se wurde ferwurke troch de Linux-kernel-netwurkstapel (tcpdump) sjocht gjin pakketten falle troch de XDP-hanterer).

Hege prestaasjes wurde berikt troch it brûken fan eBPF- en XDP-subsystemen. eBPF is in bytecode-interpreter ynboud yn 'e Linux-kernel wêrmei jo hege-prestaasje-hannelers kinne meitsje fan ynkommende / útgeande pakketten mei besluten oer trochstjoere of wegerje se. Mei it brûken fan in JIT-kompilator wurdt eBPF-bytekoade op 'e flecht oerset yn masineynstruksjes en útfierd mei de prestaasjes fan native koade. It subsysteem XDP (eXpress Data Path) komplementearret eBPF mei de mooglikheid om BPF-programma's op it nivo fan netwurkbestjoerder út te fieren, mei stipe foar direkte tagong ta de DMA-pakketbuffer en wurkje op it poadium foardat de skbuff-buffer wurdt tawiisd troch de netwurkstapel.

Lykas tcpdump fertaalt it xdpcap-hulpprogramma earst ferkearsfilteringsregels op heech nivo yn 'e klassike BPF-representaasje (cBPF) mei de standert libpcap-bibleteek, en konvertearret se dan yn 'e foarm fan eBPF-routines mei in kompiler cbpfc, mei help fan LLVM / Clang ûntwikkelings. By de útfier wurdt ferkearsynformaasje bewarre yn it standert pcap-formaat, wêrtroch jo in ferkearsdump kinne brûke dy't taret is yn xdpcap foar folgjende stúdzje yn tcpdump en oare besteande ferkearsanalysers. Om bygelyks DNS-ferkearynformaasje te fangen, kinne jo ynstee fan it kommando "tcpdump ip en udp-poarte 53" "xdpcap /path/to/hook capture.pcap 'ip en udp-poarte 53'" útfiere en dan in capture brûke .pcap-bestân, bygelyks mei it kommando "tcpdump -r" of yn Wireshark.

Boarne: opennet.ru

Add a comment