SPONSORED

XDP(えくすでぃーぴー)

最終更新:2026/4/27

XDPは、Linuxカーネルにおける高速なパケット処理フレームワークであり、ネットワークスタックの早期段階でパケットを処理することを可能にする。

別名・同義語 eXpress Data Pathカーネル内パケット処理

ポイント

XDPは、eBPF技術を活用し、ユーザー空間プログラムをカーネル内で安全に実行することで、高いパフォーマンスと柔軟性を提供します。主にネットワークセキュリティやロードバランシングなどの用途で使用されます。

XDPとは

XDP (eXpress Data Path) は、Linuxカーネルにおける高速パケット処理フレームワークです。従来のネットワークスタックは、パケットを受信してから処理を開始するまでに多くのオーバーヘッドがありましたが、XDPはネットワークインターフェースドライバ(NIC)直後、カーネルの初期段階でパケットを処理することで、このオーバーヘッドを大幅に削減します。

XDPの仕組み

XDPは、eBPF (extended Berkeley Packet Filter) という技術を基盤としています。eBPFは、カーネル内で安全にユーザー空間プログラムを実行するための仮想マシンであり、XDPでは、eBPFプログラムをNICドライバにロードし、受信したパケットをこのプログラムで処理します。

eBPFプログラムは、パケットをフィルタリングしたり、変更したり、転送したりするなどの処理を実行できます。これにより、ファイアウォールロードバランサー、DDoS攻撃対などの能を、従来のネットワークスタックよりもはるかに高速に実現できます。

XDPの利点

  • 高いパフォーマンス: カーネルの初期段階でパケットを処理するため、オーバーヘッドが少なく、高速なパケット処理が可能です。
  • 柔軟性: eBPFプログラムを自由に記述できるため、様々なネットワーク処理機能を実装できます。
  • セキュリティ: eBPFプログラムは、カーネルによって検証されるため、安全に実行できます。
  • 拡張性: 既存のネットワークスタックに影響を与えることなく、XDPを追加できます。

XDPの用途

XDPの現状

XDPは、Linuxカーネル5.4以降で標準的にサポートされており、多くのNICドライバで利用可能です。また、XDPを活用した様々なツールやライブラリも開発されており、ネットワークエンジニアや開発者は、XDPを容易に利用できるようになっています。

SPONSORED