クラウドフレア社
xdpcap ユーティリティは、tcpdump/libpcap フィルタリング式と互換性があり、同じハードウェアで非常に大量のトラフィックを処理できます。 Xdpcap は、Linux カーネル ネットワーキング スタック (tcpdump) によって処理される前にパケットを処理する Linux カーネル XDP サブシステムを使用するフィルタリング、DoS 保護、負荷分散システムなど、通常の tcpdump が適用できない環境でのデバッグにも使用できます。 XDP ハンドラーによってドロップされたパケットは認識されません)。
eBPF および XDP サブシステムの使用により、高いパフォーマンスが実現されます。 eBPF は Linux カーネルに組み込まれたバイトコード インタープリタで、これを使用すると、受信/送信パケットの転送または破棄を決定する高性能ハンドラーを作成できます。 JIT コンパイラーを使用すると、eBPF バイトコードはオンザフライで機械語命令に変換され、ネイティブ コードのパフォーマンスで実行されます。 XDP (eXpress Data Path) サブシステムは、ネットワーク ドライバー レベルで BPF プログラムを実行する機能で eBPF を補完し、DMA パケット バッファーへの直接アクセスと、ネットワーク スタックによって skbuff バッファーが割り当てられる前の段階での作業をサポートします。
tcpdump と同様に、xdpcap ユーティリティは、まず標準の libpcap ライブラリを使用して高レベルのトラフィック フィルタリング ルールをクラシック BPF 表現 (cBPF) に変換し、次にコンパイラを使用してそれらを eBPF ルーチンの形式に変換します。
出所: オープンネット.ru