Cloudflare ื”ืื˜ ืืจื•ื™ืก xdpcap, ืึท ืคืึทืจืงืขืจ ืึทื ืึทืœื™ื–ืขืจ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ XDP ืกืึทื‘ืกื™ืกื˜ืึทื

ืงืœืึธื•ื“ืคืœืึทืจืข ืคึฟื™ืจืžืข ื“ืขืจืœืื ื’ื˜ ืขืคืขื ืขืŸ ืคึผืจื•ื™ืขืงื˜ xdpcap, ืื™ืŸ ื•ื•ืึธืก ืึท ื ืขืฅ ืคึผืึทืงืึทื˜ ืึทื ืึทืœื™ื–ืขืจ ืขื ืœืขืš ืฆื• tcpdump ืื™ื– ื“ืขื•ื•ืขืœืึธืคึผืขื“, ื’ืขื‘ื•ื™ื˜ ืื•ื™ืฃ ื“ื™ ื™ืงืขืจ ืคื•ืŸ ื“ื™ ืกืึทื‘ืกื™ืกื˜ืขื XDP (ืขืงืกืคึผืจืขืกืก ื“ืึทื˜ืึท ืคึผืึทื˜). ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืงืึธื“ ืื™ื– ื’ืขืฉืจื™ื‘ืŸ ืื™ืŸ ื’ื™ื™ืŸ ืื•ืŸ ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ื“ื•ืจืš ืื•ื ื˜ืขืจ BSD ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ. ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืื•ื™ืš ืฆื•ื’ืขื’ืจื™ื™ื˜ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืคึฟืึทืจ ื‘ื™ื™ื ื“ื™ื ื’ eBPF ืคืึทืจืงืขืจ ื”ืึทื ื“ืœืขืจืก ืคึฟื•ืŸ Go ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–.

ื“ื™ xdpcap ื ื•ืฆืŸ ืื™ื– ืงืึทืžืคึผืึทื˜ืึทื‘ืึทืœ ืžื™ื˜ tcpdump/libpcap ืคึฟื™ืœื˜ืจื™ืจื•ื ื’ ืื•ื™ืกื“ืจื•ืงืŸ ืื•ืŸ ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืคึผืจืึธืฆืขืก ื‘ืื˜ื™ื™ื˜ื™ืง ื’ืจืขืกืขืจืข ื•ื•ืึทืœื™ื•ืžื– ืคื•ืŸ ืคืึทืจืงืขืจ ืื•ื™ืฃ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ื™ื™ึทื–ื ื•ื•ืึทืจื’. Xdpcap ืงืขื ืขืŸ ืื•ื™ืš ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืคึฟืึทืจ ื“ื™ื‘ืึทื’ื™ื ื’ ืื™ืŸ ื™ื ื•ื•ื™ื™ืจืึทื ืžืึทื ืฅ ื•ื•ื• ืจืขื’ื•ืœืขืจ tcpdump ืื™ื– ื ื™ื˜ ืึธื ื•ื•ืขื ื“ืœืขืš, ืึทื–ืึท ื•ื•ื™ ืคื™ืœื˜ืขืจื™ื ื’, ื“ืึธืก ืฉื•ืฅ ืื•ืŸ ืžืึทืกืข ื‘ืึทืœืึทื ืกื™ื ื’ ืกื™ืกื˜ืขืžืขืŸ ื•ื•ืึธืก ื ื•ืฆืŸ ื“ื™ ืœื™ื ื•ืงืก ืงืขืจืŸ XDP ืกืึทื‘ืกื™ืกื˜ืึทื, ื•ื•ืึธืก ืคึผืจืึทืกืขืกืึทื– ืคึผืึทืงื™ืฅ ืื™ื™ื“ืขืจ ื–ื™ื™ ื–ืขื ืขืŸ ืคึผืจืึทืกืขืกื˜ ื“ื•ืจืš ื“ื™ ืœื™ื ื•ืงืก ืงืขืจืŸ ื ืขื˜ื•ื•ืึธืจืงื™ื ื’ ืกื˜ืึทืง (tcpdump). ืงืขืŸ ื ื™ืฉื˜ ื–ืขืŸ ืคึผืึทืงื™ืฅ ื“ืจืึทืคึผื˜ ื“ื•ืจืš ื“ื™ XDP ื”ืึทื ื“ืœืขืจ).

ื”ื•ื™ืš ืคืึธืจืฉื˜ืขืœื•ื ื’ ืื™ื– ืึทื˜ืฉื™ื•ื•ื“ ื“ื•ืจืš ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ eBPF ืื•ืŸ XDP ืกืึทื‘ืกื™ืกื˜ืึทืžื–. eBPF ืื™ื– ืึท ื‘ื™ื˜ืขืงืึธื“ืข ื™ื‘ืขืจื–ืขืฆืขืจ ื’ืขื‘ื•ื™ื˜ ืื™ืŸ ื“ื™ ืœื™ื ื•ืงืก ืงืขืจืŸ ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืฉืึทืคึฟืŸ ื”ื•ื™ืš-ืคืึธืจืฉื˜ืขืœื•ื ื’ ื”ืึทื ื“ืœืขืจืก ืคื•ืŸ ื™ื ืงืึทืžื™ื ื’ / ืึทื•ื˜ื’ืึธื•ื™ื ื’ ืคึผืึทืงื™ืฅ ืžื™ื˜ ื“ื™ืกื™ื–ืฉืึทื ื– ื•ื•ืขื’ืŸ ืคืึธืจื•ื•ืขืจื“ื™ื ื’ ืึธื“ืขืจ ืึทื•ื•ืขืงื•ื•ืึทืจืคืŸ ื–ื™ื™. ื ื™ืฆืŸ ืึท JIT ืงืึทืžืคึผื™ื™ืœืขืจ, eBPF ื‘ื™ื˜ืขืงืึธื“ืข ืื™ื– ืื™ื‘ืขืจื’ืขื–ืขืฆื˜ ืื™ืŸ ืžืึทืฉื™ืŸ ืื™ื ืกื˜ืจื•ืงืฆื™ืขืก ืื•ืŸ ืขืงืกืึทืงื™ื•ื˜ืึทื“ ืžื™ื˜ ื“ื™ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคื•ืŸ ื’ืขื‘ื•ื™ืจืŸ ืงืึธื“. ื“ื™ XDP (eXpress Data Path) ืกืึทื‘ืกื™ืกื˜ืึทื ืงืึทืžืคึผืœืึทืžืึทื ืฅ eBPF ืžื™ื˜ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืœื•ื™ืคืŸ BPF ืžื’ื™ืœื” ืื•ื™ืฃ ื“ื™ ื ืขืฅ ืฉืึธืคืขืจ ืžื“ืจื’ื”, ืžื™ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ืจืขืงื˜ ืึทืงืกืขืก ืฆื• ื“ื™ DMA ืคึผืึทืงืึทื˜ ื‘ืึทืคืขืจ ืื•ืŸ ืึทืจื‘ืขื˜ ืื™ืŸ ื“ืขืจ ื‘ื™ื ืข ืื™ื™ื“ืขืจ ื“ื™ ืกืงื‘ื•ืฃ ื‘ืึทืคืขืจ ืื™ื– ืึทืœืึทืงื™ื™ื˜ื™ื“ ื“ื•ืจืš ื“ื™ ื ืขืฅ ืึธื ืœื™ื™ื’ืŸ.

ื•ื•ื™ tcpdump, ื“ื™ xdpcap ื ื•ืฆืŸ ืขืจืฉื˜ืขืจ ืื™ื‘ืขืจื–ืขืฆืŸ ืจืขื’ื•ืœื™ืจืŸ ืคื•ืŸ ื”ื•ื™ืš-ืžื“ืจื’ื” ืคืึทืจืงืขืจ ืคึฟื™ืœื˜ืจื™ืจื•ื ื’ ืื™ืŸ ื“ืขืจ ืงืœืึทืกื™ืฉ BPF ืคืึทืจื˜ืจืขื˜ื•ื ื’ (cBPF) ื ื™ืฆืŸ ื“ื™ ื ืึธืจืžืึทืœ ืœื™ื‘ืคึผืงืึทืคึผ ื‘ื™ื‘ืœื™ืึธื˜ืขืง, ืื•ืŸ ื“ืึทืŸ ืงืึทื ื•ื•ืขืจืฅ ื–ื™ื™ ืื™ืŸ ื“ื™ ืคืึธืจืขื ืคื•ืŸ eBPF ืจื•ื˜ื™ื ื– ื ื™ืฆืŸ ืึท ืงืึทืžืคึผื™ื™ืœืขืจ cbpfc, ื ื™ืฆืŸ LLVM / Clang ื“ื™ื•ื•ืขืœืึทืคึผืžืึทื ืฅ. ืื™ืŸ ื“ืขืจ ืจืขื–ื•ืœื˜ืึทื˜, ืคืึทืจืงืขืจ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืื™ื– ื’ืขืจืื˜ืขื•ื•ืขื˜ ืื™ืŸ ื“ื™ ื ืึธืจืžืึทืœ ืคึผืงืึทืคึผ ืคึฟืึธืจืžืึทื˜, ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื ื•ืฆืŸ ืึท ืคืึทืจืงืขืจ ื“ืึทืžืคึผ ืฆื•ื’ืขื’ืจื™ื™ื˜ ืื™ืŸ xdpcap ืคึฟืึทืจ ืกืึทื‘ืกืึทืงื•ื•ืึทื ื˜ ืœืขืจื ืขืŸ ืื™ืŸ tcpdump ืื•ืŸ ืื ื“ืขืจืข ื™ื’ื–ื™ืกื˜ื™ื ื’ ืคืึทืจืงืขืจ ืึทื ืึทืœื™ื–ืขืจื–. ืฆื•ื ื‘ื™ื™ืฉืคึผื™ืœ, ืฆื• ื›ืึทืคึผืŸ DNS ืคืึทืจืงืขืจ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข, ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ ื ื™ืฆืŸ ื“ื™ "ื˜ืงืคึผื“ืึทืžืคึผ ื™ืคึผ ืื•ืŸ ื•ื“ืคึผ ืคึผืึธืจื˜ 53" ื‘ืึทืคึฟืขืœ, ืื™ืจ ืงืขื ืขืŸ ืœื•ื™ืคืŸ "ืงืกื“ืคึผืงืึทืคึผ /ืคึผืึทื˜ / ืฆื•/ื”ืึธืง ืงืึทืคึผื˜ื•ืจืข.ืคึผืงืึทืคึผ 'ื™ืคึผ ืื•ืŸ ื•ื“ืคึผ ืคึผืึธืจื˜ 53โ€ฒ" ืื•ืŸ ื“ืขืžืึธืœื˜ ื ื•ืฆืŸ ืึท ื›ืึทืคึผืŸ .pcap ื˜ืขืงืข, ืœืžืฉืœ ืžื™ื˜ ื“ื™ ื‘ืึทืคึฟืขืœ "tcpdump -r" ืึธื“ืขืจ ืื™ืŸ Wireshark.

ืžืงื•ืจ: opennet.ru

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’