Cloudflare เช XDP เชธเชฌเชธเชฟเชธเซเชŸเชฎ เชชเชฐ เช†เชงเชพเชฐเชฟเชค เชŸเซเชฐเชพเชซเชฟเช• เชตเชฟเชถเซเชฒเซ‡เชทเช•, xdpcap เชชเซเชฐเช•เชพเชถเชฟเชค เช•เชฐเซเชฏเซเช‚ เช›เซ‡

เช•เซเชฒเชพเช‰เชกเชซเซเชฒเซ‡เชฐ เช•เช‚เชชเชจเซ€ เชชเซเชฐเชธเซเชคเซเชค เช“เชชเชจ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ xdpcap, เชœเซ‡เชจเซ€ เช…เช‚เชฆเชฐ tcpdump เชœเซ‡เชตเซเช‚ เชจเซ‡เชŸเชตเชฐเซเช• เชชเซ‡เช•เซ‡เชŸ เชตเชฟเชถเซเชฒเซ‡เชทเช• เชตเชฟเช•เชธเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡, เชœเซ‡ เชธเชฌเชธเชฟเชธเซเชŸเชฎเชจเชพ เช†เชงเชพเชฐเซ‡ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡. XDP (เชเช•เซเชธเชชเซเชฐเซ‡เชธ เชกเซ‡เชŸเชพ เชชเชพเชฅ). เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เช•เซ‹เชก Go เช…เชจเซ‡ เชฎเชพเช‚ เชฒเช–เชพเชฏเซ‡เชฒ เช›เซ‡ เชฆเซเชตเชพเชฐเชพ เชตเชฟเชคเชฐเชฟเชค BSD เชฒเชพเชฏเชธเชจเซเชธ เชนเซ‡เช เชณ. เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชชเชฃ เชคเซˆเชฏเชพเชฐ เช—เซ‹ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซเชธเชฎเชพเช‚เชฅเซ€ eBPF เชŸเซเชฐเชพเชซเชฟเช• เชนเซ‡เชจเซเชกเชฒเชฐเซเชธเชจเซ‡ เชฌเช‚เชงเชจเช•เชฐเซเชคเชพ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเซ€ เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€.

xdpcap เช‰เชชเชฏเซ‹เช—เชฟเชคเชพ tcpdump/libpcap เชซเชฟเชฒเซเชŸเชฐเชฟเช‚เช— เช…เชญเชฟเชตเซเชฏเช•เซเชคเชฟเช“ เชธเชพเชฅเซ‡ เชธเซเชธเช‚เช—เชค เช›เซ‡ เช…เชจเซ‡ เชคเชฎเชจเซ‡ เชธเชฎเชพเชจ เชนเชพเชฐเซเชกเชตเซ‡เชฐ เชชเชฐ เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เชฐเซ€เชคเซ‡ เชฎเซ‹เชŸเชพ เชชเซเชฐเชฎเชพเชฃเชฎเชพเช‚ เชŸเซเชฐเชพเชซเชฟเช•เชจเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชชเชฐเชตเชพเชจเช—เซ€ เช†เชชเซ‡ เช›เซ‡. Xdpcap เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชเชตเชพ เชตเชพเชคเชพเชตเชฐเชฃเชฎเชพเช‚ เชกเซ€เชฌเช—เซ€เช‚เช— เชฎเชพเชŸเซ‡ เชชเชฃ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡ เชœเซเชฏเชพเช‚ เชจเชฟเชฏเชฎเชฟเชค tcpdump เชฒเชพเช—เซ เชชเชกเชคเซเช‚ เชจเชฅเซ€, เชœเซ‡เชฎ เช•เซ‡ เชซเชฟเชฒเซเชŸเชฐเชฟเช‚เช—, DoS เชชเซเชฐเซ‹เชŸเซ‡เช•เซเชถเชจ เช…เชจเซ‡ เชฒเซ‹เชก เชฌเซ‡เชฒเซ‡เชจเซเชธเชฟเช‚เช— เชธเชฟเชธเซเชŸเชฎ เช•เซ‡ เชœเซ‡ Linux เช•เชฐเซเชจเชฒ XDP เชธเชฌเชธเชฟเชธเซเชŸเชฎเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡, เชœเซ‡ Linux เช•เชฐเซเชจเชฒ เชจเซ‡เชŸเชตเชฐเซเช•เชฟเช‚เช— เชธเซเชŸเซ‡เช• (tcpdump) เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเชคเชพ เชชเชนเซ‡เชฒเชพ เชชเซ‡เช•เซ‡เชŸเซ‹ เชชเชฐ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเซ‡ เช›เซ‡. XDP เชนเซ‡เชจเซเชกเชฒเชฐ เชฆเซเชตเชพเชฐเชพ เช›เซ‹เชกเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒเชพ เชชเซ‡เช•เซ‡เชŸเซ‹ เชฆเซ‡เช–เชพเชคเชพ เชจเชฅเซ€).

eBPF เช…เชจเซ‡ XDP เชธเชฌเชธเชฟเชธเซเชŸเชฎเชจเชพ เช‰เชชเชฏเซ‹เช— เชฆเซเชตเชพเชฐเชพ เช‰เชšเซเชš เชชเซเชฐเชฆเชฐเซเชถเชจ เชชเซเชฐเชพเชชเซเชค เชฅเชพเชฏ เช›เซ‡. eBPF เช Linux เช•เชฐเซเชจเชฒเชฎเชพเช‚ เชฌเชจเซ‡เชฒ เชฌเชพเชˆเชŸเช•เซ‹เชก เชฆเซเชญเชพเชทเชฟเชฏเชพ เช›เซ‡ เชœเซ‡ เชคเชฎเชจเซ‡ เช‡เชจเช•เชฎเชฟเช‚เช—/เช†เช‰เชŸเช—เซ‹เช‡เช‚เช— เชชเซ‡เช•เซ‡เชŸเซ‹เชจเชพ เช‰เชšเซเชš-เชชเซเชฐเชฆเชฐเซเชถเชจ เชนเซ‡เชจเซเชกเชฒเชฐเซเชธ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชชเชฐเชตเชพเชจเช—เซ€ เช†เชชเซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชฎเชจเซ‡ เชซเซ‹เชฐเชตเชฐเซเชก เช•เชฐเชตเชพ เช…เชฅเชตเชพ เช•เชพเชขเซ€ เชจเชพเช–เชตเชพเชจเชพ เชจเชฟเชฐเซเชฃเชฏเซ‹ เชธเชพเชฅเซ‡. JIT เช•เชฎเซเชชเชพเช‡เชฒเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡, eBPF เชฌเชพเช‡เชŸเช•เซ‹เชกเชจเซ‡ เชฎเชถเซ€เชจเชจเซ€ เชธเซ‚เชšเชจเชพเช“เชฎเชพเช‚ เชซเซเชฒเชพเชฏ เชชเชฐ เช…เชจเซเชตเชพเชฆเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชฎเซ‚เชณ เช•เซ‹เชกเชจเชพ เชชเซเชฐเชฆเชฐเซเชถเชจ เชธเชพเชฅเซ‡ เชเช•เซเชเชฟเช•เซเชฏเซเชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. XDP (เชเช•เซเชธเชชเซเชฐเซ‡เชธ เชกเซ‡เชŸเชพ เชชเชพเชฅ) เชธเชฌเชธเชฟเชธเซเชŸเชฎ เชจเซ‡เชŸเชตเชฐเซเช• เชกเซเชฐเชพเช‡เชตเชฐ เชธเซเชคเชฐเซ‡ BPF เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเซเชธ เชšเชฒเชพเชตเชตเชพเชจเซ€ เช•เซเชทเชฎเชคเชพ เชธเชพเชฅเซ‡, DMA เชชเซ‡เช•เซ‡เชŸ เชฌเชซเชฐเชจเซ€ เชธเซ€เชงเซ€ เชเช•เซเชธเซ‡เชธ เชฎเชพเชŸเซ‡ เชธเชฎเชฐเซเชฅเชจ เชธเชพเชฅเซ‡ eBPF เชจเซ‡ เชชเซ‚เชฐเช• เชฌเชจเชพเชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชจเซ‡เชŸเชตเชฐเซเช• เชธเซเชŸเซ‡เช• เชฆเซเชตเชพเชฐเชพ skbuff เชฌเชซเชฐ เชซเชพเชณเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เชคเซ‡ เชชเชนเซ‡เชฒเชพเช‚เชจเชพ เชคเชฌเช•เซเช•เซ‡ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡.

tcpdump เชจเซ€ เชœเซ‡เชฎ, xdpcap เชฏเซเชŸเชฟเชฒเชฟเชŸเซ€ เชชเซเชฐเชฅเชฎ เช‰เชšเซเชš-เชธเซเชคเชฐเชจเชพ เชŸเซเชฐเชพเชซเชฟเช• เชซเชฟเชฒเซเชŸเชฐเชฟเช‚เช— เชจเชฟเชฏเชฎเซ‹เชจเซ‡ เชธเซเชŸเชพเชจเซเชกเชฐเซเชก libpcap เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช•เซเชฒเชพเชธเชฟเช• BPF เชชเซเชฐเชคเชฟเชจเชฟเชงเชฟเชคเซเชต (cBPF) เชฎเชพเช‚ เช…เชจเซเชตเชพเชฆเชฟเชค เช•เชฐเซ‡ เช›เซ‡, เช…เชจเซ‡ เชชเช›เซ€ เช•เชฎเซเชชเชพเช‡เชฒเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชคเซ‡เชฎเชจเซ‡ eBPF เชฐเซ‚เชŸเชฟเชจเซเชธเชจเชพ เชธเซเชตเชฐเซ‚เชชเชฎเชพเช‚ เชฐเซ‚เชชเชพเช‚เชคเชฐเชฟเชค เช•เชฐเซ‡ เช›เซ‡. cbpfc, LLVM/Clang เชตเชฟเช•เชพเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡. เช†เช‰เชŸเชชเซเชŸ เชชเชฐ, เชŸเซเชฐเชพเชซเชฟเช• เชฎเชพเชนเชฟเชคเซ€ เชชเซเชฐเชฎเชพเชฃเชญเซ‚เชค pcap เชซเซ‹เชฐเซเชฎเซ‡เชŸเชฎเชพเช‚ เชธเชพเชšเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชœเซ‡ เชคเชฎเชจเซ‡ tcpdump เช…เชจเซ‡ เช…เชจเซเชฏ เชนเชพเชฒเชจเชพ เชŸเซเชฐเชพเชซเชฟเช• เชตเชฟเชถเซเชฒเซ‡เชทเช•เซ‹เชฎเชพเช‚ เช…เชจเซเช—เชพเชฎเซ€ เช…เชญเซเชฏเชพเชธ เชฎเชพเชŸเซ‡ xdpcap เชฎเชพเช‚ เชคเซˆเชฏเชพเชฐ เช•เชฐเชพเชฏเซ‡เชฒ เชŸเซเชฐเชพเชซเชฟเช• เชกเชฎเซเชชเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, DNS เชŸเซเชฐเชพเชซเชฟเช• เชฎเชพเชนเชฟเชคเซ€ เชฎเซ‡เชณเชตเชตเชพ เชฎเชพเชŸเซ‡, "tcpdump ip เช…เชจเซ‡ udp port 53" เช†เชฆเซ‡เชถเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ‡ เชฌเชฆเชฒเซ‡, เชคเชฎเซ‡ "xdpcap /path/to/hook capture.pcap 'ip เช…เชจเซ‡ udp เชชเซ‹เชฐเซเชŸ 53โ€ฒ" เชšเชฒเชพเชตเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชจเซ‡ เชชเช›เซ€ เช•เซ‡เชชเซเชšเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹. .pcap เชซเชพเช‡เชฒ, เชฆเชพ.เชค. "tcpdump -r" เช†เชฆเซ‡เชถ เชธเชพเชฅเซ‡ เช…เชฅเชตเชพ เชตเชพเชฏเชฐเชถเชพเชฐเซเช•เชฎเชพเช‚.

เชธเซ‹เชฐเซเชธ: opennet.ru

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹