Andree Toonkが100 Gbpsのパケットテストを簡素化するWireblastをリリース
Toonk は、別の all-Go データプレーンプロジェクト用のテストリグとして、オープンソースの AF_XDP トラフィックジェネレーターを構築した。
By Ryan Merket · Published
Primary source: Toonk.io
Why it matters
Wireblast turns a specialist Linux kernel-bypass interface into a downloadable Go tool while giving Toonk a benchmark rig for a separate dataplane project.

Andree Toonk (@atoonk)は、AF_XDPによるネットワーク加速をスタティックなGoバイナリに封入したオープンソースのLinuxパケットジェネレータであるWireblastを公開した。8月初めに公開されたローンチ記事で、Toonkは100 GbpsのMellanoxリンク上で最大98.5 Gbpsを出力したと報告しており、このツールをiperf3のような簡易さと専用のネットワークテストシステムで使われるより重厚な機構の中間に位置づけている。これらの結果はToonk自身のベンチマークによるもので、独立した再現はされていない。
Wireblastは新しいスタートアップではなく、個人によるオープンソース公開だ。Toonkはプロジェクトを自身のinfrastructure engineering siteで公開している。その重要性はプロジェクト単体というよりも、それを作ったエンジニア本人と彼が次に何を作ろうとしているかにある。Toonkはこれまでインターネットインフラのルーティング、保護、アクセス提供を担うシステムに従事してきた。WireblastはLinux向けのGoベースのAF_XDPトラフィックジェネレータで、Toonkはこれを別プロジェクト—ルーティング、スイッチング、ファイアウォール機能を備えたGoベースのデータプレーン—に戻ったときのテストハーネスとして使うと述べている。(toonk.io)
Toonkはその後、OpenDNSのグローバルネットワークアーキテクチャに携わり、何千人ものネットワークエンジニアに利用されるルーティング監視サービスであるBGPMonを創設した。BGPMonは2015年にOpenDNSに参加した。Toonkはまた、University of AmsterdamでSystem and Network EngineeringのM.Sc.を取得している。(Black Hat biography)
Tailscale describes Border0、Toonkの前のスタートアップであるBorder0は、本番システム、データベース、Kubernetes、その他の機密インフラへの制御された監査可能なアクセスのためのシステムとして説明されている。Border0は2026年3月にTailscaleに参加し、ToonkはBorder0チームとともにTailscaleに合流した。Border0チームは特権アクセス管理に取り組んでいる。Wireblastは、OS、ネットワークインタフェースカード、パケット形式がパフォーマンスを決定するスタックの下位層へToonkを戻すものだ。
Turning AF_XDP into a usable tool
WireblastはToonkのGoライブラリであるgo-afxdpから派生した。AF_XDPはプログラムが共有メモリとXDPを通じてネットワークカードとイーサネットフレームをやり取りできるようにし、通常のカーネルネットワーキング経路の多くとパケットあたりのオーバーヘッドを回避する。
AF_XDPに関する以前の記事で、Toonkはこの設計がDPDKベースのジェネレータに対して運用上の利点を提供すると論じている。彼は、AF_XDPが選択されたトラフィックをリダイレクトしつつネットワークインタフェースをLinuxに利用させたままにできるため、テスト中も通常のホストネットワーキングを継続できると書いている。対照的にDPDKはインタフェース全体を制御下に置き、専用インタフェース、hugepages、追加のセットアップを必要とし得ると彼の比較は述べている。
Toonkの賭けは、多くのエンジニアが完全なテストアプライアンスの設定や範囲を必要とせず、生のパケット量を求めているという点だ。Wireblastは対話式のターミナルウィザードまたはコマンドラインフラグを通じて実行でき、固定サイズのUDPトラフィック、複数フロー、IMIXパケットサイズプロファイル、PCAPおよびPCAPNGの再生、ステートレスなTCP SYN生成をサポートする。(Wireblast documentation) リリースはLinux向けに提供され、リポジトリはGitHubで公開されている。
トレードオフは明示されている。Wireblastはパケット数とバイト数をカウントするが、レイテンシやジッタを測定せず、ハードウェアタイムスタンピングを提供せず、完全なTCPセッションを確立することもない。彼のローンチ記事では、その狭いスコープを二つのテスト—パケット処理パスがラインレートに到達できるかどうか、そして相手側がパケットを受信できるかどうか—の周りに位置づけている。
The 100 Gbps claim
10 Gbpsハードウェア上では、ToonkのWireblastローンチ記事は64バイトフレームで秒間14.88百万パケットを報告している。別に、パブリックなgo-afxdpパッケージのドキュメントをレビューしたものは、ユーザースペースのGoから単一のIntel ixgbeネットワークカードで64バイトフレームを送信した場合におおよそ秒間13.5百万パケットと引用している。
100Gテストでは、ToonkはMellanox ConnectXネットワークカードとmlx5ドライバを搭載した2台のマシンを使用した。彼は80バイトパケットで秒間122百万パケット、98 Gbpsを報告した。彼の表は最小のタグ付きフレームで95 Gbpsから1,518バイトフレームで98.5 Gbpsまでの結果を示している。(toonk.io)
見出しとなる数値はその文脈が必要だ。リポジトリは最小フレームで秒間138百万パケットと説明している一方で、ローンチ記事の詳細な表は68バイトのタグ付きフレームで秒間135百万パケットかつ95 Gbpsと報告している。どちらの数値もToonkのテストに由来する。ハードウェア、ドライバモード、キュー数、フレームサイズの計上方法、スループットがレイヤ1で測定されているかレイヤ2で測定されているかは結果を大きく変え得る。Wireblastのドキュメントにはこれらの計測差異を説明するセクションが含まれている。
Wireblastはまた、確立された代替手段よりも狭いカテゴリに位置している。Pktgen-DPDKはLuaやリモート制御を備えたマルチポート・マルチコアのジェネレータだ。MoonGenはパケットごとのプログラマブルな振る舞い、タイムスタンピング、レート制御を提供する。ToonkはWireblastを、これらのシステムの代替ではなく、一般的なパケット生成作業のためのより単純なツールとして提示している。(Toonk's launch post)
A founder's test rig for the next project
Wireblastの直接的な対象は、ルータ、ファイアウォール、ロードバランサ、アクセス制御リスト、ECMPパス、受信側スケーリング、接続テーブルをテストするエンジニアだ。長期的な目的はToonkに属する。彼は、ジェネレータが彼をその作業に戻すきっかけとなったプロジェクト—Linux上でのパケット転送のためのオールGoデータプレーン—に戻る際の測定ツールになると書いている。Toonkはまず再利用可能なAF_XDPライブラリを構築し、次にそれを負荷テストできるジェネレータを作った。現在彼はより大きな転送システムを反復改善するための計測ツールを手に入れたと述べている。彼はまた、Wireblastのターミナルインターフェイスの開発を加速させたとしてClaude Codeに感謝の意を表している。(toonk.io)
Wireblast repositoryはインフラストラクチャエンジニアに実装へのアクセスと、自分のハードウェアでテストするためのダウンロード可能なLinuxビルドを提供している。