概要
- Wireguard FPGA VPN は、現代のインターネットセキュリティの中核技術
- 従来型VPN (OpenVPN/IPSec)の課題を克服し、 高性能・管理性 を提供
- Blackwireプロジェクト の教訓を活かし、 安価なFPGAとオープンソース で実装
- 段階的開発計画 に基づき、証明実験から本格展開までを視野
- HW/SW協調設計・検証・管理 の課題と解決策を明確化
Wireguard FPGA VPN:オープンソースによる新世代VPN構築
- Wireguard FPGA VPN は、地理的に分散した異種ネットワークを 暗号化トンネル で接続する技術
- 従来方式 (OpenVPN/IPSec)は限界が見え始めており、 Wireguard が次世代VPNの標準へ
- ソフトウェア実装は 性能面で限界、既存ハードウェア実装は 高価・クローズドソース が課題
- 本プロジェクトは SystemVerilog HDL による 安価なFPGA向けオープンソース実装 を目指す
- 100Gbps対応の Blackwireプロジェクト での経験を活かしつつ、 教育機関でも導入可能な低コスト を実現
Blackwireプロジェクトからの教訓
- Blackwire はAMD/Xilinx AlveoU50を用いた100Gbps Wireguardスイッチ
- 高価な専用ハードウェア と 商用Vivadoツールチェーン 依存が普及の壁
- SpinalHDL ベースのゲートウェアは業界標準ではなく、教育・普及に不向き
- オープンソース化は資金難によるもので、 法的な所有権問題 も未解決
- 本プロジェクト はこれらの課題を克服し、 真のオープンソース精神 で展開
開発対象ハードウェア・ソフトウェア
- 安価なArtix7 FPGAボード (4ポート1000Base-T搭載)を選定
- オープンソースツール (OpenXC7等)で開発可能
- 全ゲートウェアをVerilog/SystemVerilog で記述し、産業界でも通用する設計
- 外部PC不要、自己完結型システムを目指す
関連参考資料
- Wireguardソフトウェア実装(Netbird, Tailscale, Linux Kernel)
- Blackwire 100Gbps Wireguard
- Corundum(オープンソースFPGA NIC)
- ChaCha20-Poly1305暗号RTL
- Cookie Cutter SOC, RISC-V ISS, 10Gbps Ethernet Switch
- OpenXC7(Xilinx Series7向けオープンソースツール)
- Alex’s Ethernet Stack, Amina’s ADASEC-SDN
プロジェクト開発計画
- Phase1(現行段階) :PoC(概念実証)、将来展開への足掛かり
- Phase2以降 :チャンネル数増加、GUI管理アプリ対応等、コミュニティのフィードバックを反映
想定課題
- HW/SW分割・連携・負荷分散 の設計と最適化
- 外部PC非依存、 オンチップRISC-V CPU と組み合わせた組込みSWの開発
- HW/SW協調開発・統合・デバッグ
- 標準シミュレーションは非現実的、 VProc ISS 等の新技術を活用
- 開発者向けに リモートアクセス可能なテストラボ を設置
- 実機・高速動作検証
- SystemVerilogやFPGAプリミティブへの オープンソースツール対応度
- Blackwireでも苦労した タイミング閉鎖・デバイス利用率・配線混雑 への対策
- 資金調達
- Blackwire同様、 資金不足リスク を認識し、無理のない進行管理
進捗状況(WIP)
- Take1 :ボード初期化、Wireguardエコシステム調査、設計青写真策定
- ボード・SWプラットフォームの習熟、LED点滅・イーサネット動作確認
- SOCアーキテクチャ・データパス・HW/SW分割・検証戦略策定
- 主要暗号(ChaCha20, Poly1305, Curve25519, blake2)と既存実装の詳細比較
- Corundumや10GE Switch等のIPブロック調査・活用
- Take2 :基本的なWireguardリンクのハードウェア実装
- RTLブロック統合、手動プリセットチャンネルでのデータパス構築
- ChaCha20-Poly1305は 必ずハードウェア実装、Curve25519・blake2は当面ソフトウェア対応
- FPGAタイミング閉鎖・利用率・配線混雑の課題解決
- CI/CD環境でのcocoTB DV・テストケース作成
- Take3 :組込み管理ソフトウェア(Control Plane)の開発・統合
- ソフトRISC-Vプロセッサ上でのファームウェア開発
- HWブロックの設定・管理、低頻度管理パケットの処理
- KMM(Key Management Module)機能の実装
- Take4 :VPNトンネルのセッション管理
- セッション初期化・維持・安全なクローズ手順の確立
- 一時鍵や機密情報の安全消去
- Take5 :テスト・プロファイリング・OpenXC7への移植
- 実機動作検証・バグ修正・性能評価
- OpenXC7へのポーティングとタイミング閉鎖
- オープンソース開発者との連携によるツールバグの報告・解決
- 魅力的なGithubリポジトリの整備・ドキュメント更新
- Take6(時間が許せば) :フロー制御モジュール
- VPNトンネル内のデータ流量管理ソフトウェアの開発
設計方針とアーキテクチャ
- HW/SW分割方針
- WireguardノードはIPルータ+Wireguardプロトコルサポートとして設計
- 制御プレーン :ソフトCPU上のソフトウェアで管理(IPルーティング・セッション・鍵管理)
- データプレーン :RTLで実装し、ワイヤースピードでIPルーティング・暗号処理
- 制御トラフィック (ハンドシェイク等)と データトラフィック (ユーザ通信)の明確な分離
- ハードウェア構成
- ソフトCPU(Boot ROM・DDR3 SDRAMコントローラ搭載)
- データプレーンは全てFPGA上でRTL実装
- 制御プレーンとデータプレーンの明確な役割分担
本プロジェクトは、 低コスト・高性能・オープンソース のWireguard FPGA VPNを目指し、 実践的な開発計画・課題認識・設計方針 を明示している。既存の商用/クローズドな障壁を打破し、 教育・研究・実運用 まで幅広い普及を目指す。