JCNR vRouterデータパス
概要 JCNRは、データプレーン開発キット(DPDK)と拡張バークレーパケットフィルタ(eBPF)eXpress Data Path(XDP)データパスベースのvRouterフォワーディングプレーンの両方をサポートしています。
JCNR vRouterフォワーディングプレーンは、データプレーン開発キット(DPDK)と拡張バークレーパケットフィルタ(eBPF)eXpress Data Path(XDP)データパスの両方をサポートし、高速パケット処理を実現します。
データプレーン開発キット(DPDK)
DPDKは、迅速なパケット処理のためのライブラリとドライバーのオープンソースのセットです。DPDK を使用すると、ネットワーク インターフェイス カード (NIC) がダイレクト メモリ アクセス (DMA) パケットをアプリケーションのアドレス空間に直接送信できるため、パケット処理が高速になります。このパケット ルーティング方法では、アプリケーションがパケットをポーリングし、NIC からの割り込みのオーバーヘッドを防ぐことができます。
DPDK のポーリング モード ドライバー (PMD) は、Linux カーネルの割り込みベースのドライバーではなく、VM のホストの物理インターフェイス (NIC) を使用します。NIC のレジスタはユーザー スペースで動作するため、DPDK の PMD からアクセスできます。その結果、ホストOSはNICのレジスタを管理する必要がありません。つまり、DPDK アプリケーションは、NIC のすべてのパケット ポーリング、パケット処理、およびパケット転送を管理します。DPDK アプリケーションは、I/O 割り込みが発生するのを待つ代わりに、常にパケットをポーリングし、これらのパケットを受信するとすぐに処理します。DPDKデータパスは、ポーリングモードのためにCPU使用率が高く、メンテナンスコストが高くなります。また、DPDK を実装すると、カーネルで NIC が使用できなくなるため、ソケットと転送プレーンのコードを再実装する必要があります。
eBPF XDP
これはジュ ニパーテクノロジープレビュー(テクニカルプレビュー) 機能です。
eBPF XDP Datapathのメリット
eBPF XDP Datapathには、次のようなメリットがあります。
- eBPF XDP カーネルプログラムとそのカスタムライブラリは、カーネルバージョン間での保守が容易で、カーネルの互換性も広くなっています。カーネルの依存関係は、eBPF ヘルパー関数の小さなセットに限定されます。
- このプログラムは、カーネルにロードされる前に、組み込みのLinux eBPF検証ツールによって分析されるため、より安全です。
- カーネル バイパスとソケット バッファー (skb) 割り当ての省略を使用して、より高いパフォーマンスを提供します。
eBPF XDPでサポートされているJCNR機能
次のJCNR機能は、IPv4トラフィックのeBPF XDPでのみサポートされます。
-
JCNRを送信ルーター、受信ルーター、またはトランジットルーターとして導入したL3トラフィック
-
VRF
-
MPLSoUDP
-
IGP—OSPF、IS-IS
-
BGPルートアドバタイズメント
JCNRを導入する場合、ヘルムチャートで agentModeType
属性を設定して、DPDKベースまたはeBPF XDPデータパスベースのvRouterを選択できます。