Cloudflare het xdpcap gepubliseer, 'n verkeersontleder gebaseer op die XDP-substelsel

Cloudflare Maatskappy aangebied oop projek xdpcap, waarbinne 'n netwerkpakketontleder soortgelyk aan tcpdump ontwikkel word, gebou op die basis van die substelsel XDP (Express Data Path). Die projekkode is geskryf in Gaan en versprei deur onder BSD-lisensie. Die projek ook voorberei biblioteek vir die binding van eBPF-verkeerhanteerders vanaf Go-toepassings.

Die xdpcap-nutsding is versoenbaar met tcpdump/libpcap-filteruitdrukkings en laat jou toe om aansienlik groter volumes verkeer op dieselfde hardeware te verwerk. Xdpcap kan ook gebruik word vir ontfouting in omgewings waar gewone tcpdump nie van toepassing is nie, soos filtering, DoS-beskerming en lasbalanseringstelsels wat die Linux-kern XDP-substelsel gebruik, wat pakkies verwerk voordat dit deur die Linux-kernnetwerkstapel (tcpdump) verwerk word sien nie pakkies wat deur die XDP-hanteerder laat val word nie).

Hoë werkverrigting word behaal deur die gebruik van eBPF- en XDP-substelsels. eBPF is 'n greepkode-tolk wat in die Linux-kern ingebou is, wat jou toelaat om hoëprestasie-hanteerders van inkomende/uitgaande pakkies te skep met besluite oor aanstuur of weggooi daarvan. Deur 'n JIT-samesteller te gebruik, word eBPF-greepkode op die oomblik in masjieninstruksies vertaal en uitgevoer met die prestasie van inheemse kode. Die XDP (eXpress Data Path) substelsel komplementeer eBPF met die vermoë om BPF-programme op die netwerkbestuurdervlak te laat loop, met ondersteuning vir direkte toegang tot die DMA-pakkiebuffer en werk op die stadium voordat die skbuff-buffer deur die netwerkstapel toegewys word.

Soos tcpdump, vertaal die xdpcap-hulpprogram eers hoëvlakverkeerfilterreëls in die klassieke BPF-voorstelling (cBPF) deur die standaard libpcap-biblioteek te gebruik, en omskep dit dan in die vorm van eBPF-roetines met behulp van 'n samesteller cbpfc, met behulp van LLVM/Clang-ontwikkelings. By die afvoer word verkeersinligting in die standaard pcap-formaat gestoor, wat jou toelaat om 'n verkeerstorting wat in xdpcap voorberei is, te gebruik vir daaropvolgende studie in tcpdump en ander bestaande verkeersontleders. Byvoorbeeld, om DNS-verkeerinligting vas te vang, in plaas daarvan om die "tcpdump ip en udp port 53" opdrag te gebruik, kan jy "xdpcap /path/to/hook capture.pcap 'ip en udp port 53'" laat loop en dan 'n capture gebruik .pcap-lêer, bv met die opdrag "tcpdump -r" of in Wireshark.

Bron: opennet.ru

Voeg 'n opmerking