Kua whakaputaina e Cloudflare te xdpcap, he kaitirotiro waka i runga i te punaha XDP

Kamupene Cloudflare представила kaupapa tuwhera xdpcap, kei roto i te wa e whakawhanakehia ana he kaitirotiro paatete whatunga e rite ana ki te tcpdump, ka hangaia i runga i te punaha iti. XDP (Ara Raraunga eXpress). Ko te waehere kaupapa kua tuhia ki te Haere me tohaina e i raro i te raihana BSD. Te kaupapa hoki kua rite whare pukapuka mo te here i nga kaikawe waka eBPF mai i nga tono a Go.

Ko te whaipainga xdpcap he hototahi ki nga korero tātari tcpdump/libpcap ka taea e koe te tukatuka i nga pukapuka tino nui ake o nga waka i runga i taua taputapu. Ka taea hoki te whakamahi Xdpcap mo te patuiro i roto i nga taiao kaore e tika ana te tcpdump auau, penei i te tātari, te tiaki DoS, me nga punaha whakataurite kawenga e whakamahi ana i te punaha XDP kernel Linux, e tukatuka ana i nga paakete i mua i te tukatuka e te puranga whatunga kernel Linux (tcpdump kare e kite i nga paatete i tukuna e te kaihautu XDP).

Ka tutuki nga mahi teitei ma te whakamahi i nga punaha iti eBPF me XDP. Ko te eBPF he kaiwhakamaori bytecode i hangaia ki roto i te kakano Linux e taea ai e koe te hanga i nga kaikawe mahi teitei o nga paatete taumai/puatu me nga whakatau mo te tuku whakamua, te whakakore ranei. Ma te whakamahi i te JIT compiler, ka whakamaoritia te eBPF bytecode i runga i te rere ki nga tohutohu miihini ka mahia me te mahi o te waehere taketake. Ko te XDP (eXpress Raraunga Raraunga) e whakakii ana i te eBPF me te kaha ki te whakahaere i nga kaupapa BPF i te taumata taraiwa whatunga, me te tautoko mo te uru tika ki te paatete paatete DMA me te mahi i te waahi i mua i te tohatoha o te skbuff buffer e te puranga whatunga.

Pērā i te tcpdump, ko te whaipainga xdpcap te tuatahi ka whakamaori i nga ture tātari waka taumata-tiketike ki roto i te whakaaturanga BPF matarohia (cBPF) ma te whakamahi i te whare pukapuka libpcap paerewa, katahi ka huri ki te ahua o nga mahinga eBPF ma te whakamahi i te kaitoi. cbpfc, te whakamahi i nga whanaketanga LLVM/Clang. I te putanga, ka tiakina nga korero hokohoko i roto i te whakatakotoranga pcap paerewa, e taea ai e koe te whakamahi i te putunga waka kua oti te whakarite ki te xdpcap mo te ako i muri mai i te tcpdump me etahi atu kaitirotiro waka o naianei. Hei tauira, ki te hopu i nga korero hokohoko DNS, kaua ki te whakamahi i te "tcpdump ip me te udp port 53", ka taea e koe te whakahaere "xdpcap /path/to/hook capture.pcap 'ip me te udp port 53′" ka whakamahi i te hopu. .pcap kōnae, hei tauira me te whakahau "tcpdump -r" i Wireshark ranei.

Source: opennet.ru

Tāpiri i te kōrero