トラフィックジェネレータとして広く使われているTRexは、DPDKやPythonへの依存があり、クラウドネイティブな環境で動かすには手間がかかります。現代のクラウドネイティブな技術スタックで作り直すとどうなるか、その試みとして開発したのがXDPerfです。
XDPerfは、eBPF/XDPのLive Frames Modeによるパケット送出と、WebAssemblyによるユーザー定義のパケット生成ロジックを組み合わせたトラフィックジェネレータです。単一バイナリとして動作するほか、DPDKと違ってNICを占有せず、Linuxのネットワークスタックと共存できるのも特徴です。
本セッションでは、XDPerfのアーキテクチャと実装を紹介します。XDPを用いたパケット送出、WASMプラグインで任意のトラフィックを生成できるようにした話などを具体的な実装ともにお話しします。
# 持ち帰れるもの
・eBPF/XDPを使った実用的なパケット送出の実装方法
・GoとWASMを組み合わせたプラグインシステムの設計パターン
・10年以上前に作られたツールの課題を現代の技術で解決する具体例
LINEヤフー株式会社
ソフトウェアエンジニア
LINEヤフー株式会社所属のソフトウェアエンジニア。主にWebバックエンド領域に関する全社横断的な技術支援を担当しています。
BBSakura Networks
Senior Software Engineer
21卒新卒で京都の大手ゲーム会社に就職し、ゲーム機開発やSDK開発などに携わる。
その後は学生時代に立ち上げに関わったネットワークに関するベンチャーに転職し、ソフトウェアエンジニアリングの力でモバイルの世界をよりよくするため日々社会実装を行っている。