Ua hoʻopuka ʻo Cloudflare i ka xdpcap, kahi mea loiloi kaʻa e pili ana i ka subsystem XDP

ʻO Cloudflare Company hōʻike ʻia pāhana hāmama xdpcap, i loko kahi e hoʻomohala ʻia ai kahi mea hoʻopili pūnaewele e like me tcpdump, kūkulu ʻia ma ke kumu o ka subsystem. XDP (Ala ʻIkepili eXpress). Ua kākau ʻia ke code papahana ma Go a mahele ʻia e ma lalo o ka laikini BSD. ʻO ka papahana pū kekahi hoomakaukauia hale waihona puke no ka hoʻopaʻa ʻana i nā mea hoʻokele eBPF mai nā noi Go.

Ua kūpono ka pono o ka xdpcap me nā huaʻōlelo kānana tcpdump/libpcap a hiki iā ʻoe ke hana i ka nui o nā kaʻa ma ka lako like. Hiki ke hoʻohana ʻia ʻo Xdpcap no ka hoʻopau ʻana i nā kaiapuni kahi i pili ʻole ai ka tcpdump maʻamau, e like me ke kānana, ka pale DoS, a me nā ʻōnaehana hoʻoili ukana e hoʻohana ana i ka Linux kernel XDP subsystem, e hana ana i nā ʻeke ma mua o ka hana ʻia e ka Linux kernel networking stack (tcpdump). ʻaʻole ʻike i nā ʻeke i hoʻokuʻu ʻia e ka mea lawelawe XDP).

Loaʻa ka hana kiʻekiʻe ma o ka hoʻohana ʻana i nā subsystem eBPF a me XDP. ʻO ka eBPF kahi unuhi ʻōlelo bytecode i kūkulu ʻia i loko o ka Linux kernel e hiki ai iā ʻoe ke hana i nā mea lawelawe kiʻekiʻe o nā ʻeke komo a puka i waho me nā hoʻoholo e pili ana i ka hoʻouna ʻana a i ʻole ka hoʻolei ʻana iā lākou. Ke hoʻohana nei i kahi JIT compiler, eBPF bytecode unuhi ʻia ma ka lele i nā ʻōlelo aʻoaʻo mīkini a hoʻokō ʻia me ka hana o ke code maoli. Hoʻopiha ka subsystem XDP (eXpress Data Path) i ka eBPF me ka hiki ke holo i nā polokalamu BPF ma ka pae o ka mea hoʻokele pūnaewele, me ke kākoʻo no ke komo pololei ʻana i ka packet packet DMA a hana ma ke kahua ma mua o ka hoʻokaʻawale ʻana o ka skbuff buffer e ka waihona pūnaewele.

E like me tcpdump, unuhi mua ka pono xdpcap i nā lula kānana kaila kiʻekiʻe i loko o ka hōʻike BPF maʻamau (cBPF) me ka hoʻohana ʻana i ka waihona libpcap maʻamau, a laila hoʻololi iā lākou i ke ʻano o nā hana maʻamau eBPF me ka hoʻohana ʻana i kahi mea hoʻopili. cbpfc, me ka hoʻohana ʻana i nā hoʻomohala LLVM/Clang. Ma ka hoʻopuka, mālama ʻia ka ʻike kalepa ma ke ʻano pcap maʻamau, kahi e hiki ai iā ʻoe ke hoʻohana i kahi hoʻoili kaʻa i hoʻomākaukau ʻia ma xdpcap no ka hoʻopaʻa ʻana ma hope o tcpdump a me nā mea loiloi kaʻa e kū nei. No ka laʻana, no ka hopu ʻana i ka ʻike kalepa DNS, ma kahi o ka hoʻohana ʻana i ke kauoha "tcpdump ip a me udp port 53", hiki iā ʻoe ke holo "xdpcap /path/to/hook capture.pcap 'ip a me udp port 53′" a laila hoʻohana i kahi hopu. .pcap file, e laʻa me ke kauoha "tcpdump -r" a i ʻole ma Wireshark.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka