# ホワイトボックススイッチ ## 定義 ホワイトボックススイッチとは、搭載されたSwitch ASICが同じでもODM各社からハードウェア構成が異なる多様なモデルが販売されている、ハードウェアとソフトウェア(ネットワークOS)が分離されたスイッチである。特定のSwitch ASICをサポートするスイッチハードウェアの集合を**プラットフォーム**、Switch ASIC以外を含む異なるハードウェア構成を持つモデルを**デバイス**と呼ぶ(SONiCリポジトリのWiki「Porting-Guide」の用語法)。(Source: [[@2025__Gihyo__実践SONiC入門 - Chapter 1 ホワイトボックススイッチとSONiCアーキテクチャ]] ch.1 §1.1) ## ハードウェア構成 基本的なホワイトボックススイッチの物理構成は、デスクトップPCやサーバーとほぼ同じコンポーネント(CPU・メモリー・ペリフェラル)からなり、最大の違いはNICの代わりにパケット処理に特化した**Switch ASIC**(NPU: Network Processing Unitとも呼ばれる)を搭載する点にある。多くの場合、CPU・メモリーを搭載した基板とSwitch ASIC・ペリフェラルを搭載した基板の2枚がPCIe経由で接続される(小型スイッチでは1枚の基板に統合される場合や、大型のシャーシ型スイッチではSwitch ASICが複数搭載され交換可能な基板になっている場合もある)。CPUは従来ARM/MIPS/Power系の低消費電力な組込み向けが主流だったが、Linuxサーバーと同じツールの利用・大規模ルーティング計算・独自機能開発といった要求から、Intel Xeonなどx86_64ベースの高性能CPUを搭載するモデルも増加している。(Source: [[@2025__Gihyo__実践SONiC入門 - Chapter 1 ホワイトボックススイッチとSONiCアーキテクチャ]] ch.1 §1.1.2) Switch ASICは、パーサー・パケット処理パイプライン(Ingress/Egress)・デパーサー・パケットバッファ&複製エンジン・キュー(Buffer & Queuing Engine)・SerDesという機能ブロックで構成される。機能ブロックやパイプライン構成(アーキテクチャ)はASICベンダー・モデルごとに異なる。従来は新プロトコル対応のためにASIC自体を作り直す必要があったが、2014年のCavium XPliantを皮切りに、Intel(旧Barefoot Networks)Tofinoなど、パーサーやマッチアクション処理を変更できるプログラマブルなSwitch ASICが登場し、現在ではBroadcom・NVIDIA(旧Mellanox)・Cisco・Juniperなどほぼ全てのASICベンダーがプログラマビリティに対応するようになっている。(Source: [[@2025__Gihyo__実践SONiC入門 - Chapter 1 ホワイトボックススイッチとSONiCアーキテクチャ]] ch.1 §1.1.2) ## ハードウェアとソフトウェアの分離 ホワイトボックススイッチという概念が成立する前提は、ハードウェア(スイッチ本体)とソフトウェア(ネットワークOS)が分離され、利用者がハードウェアを問わずネットワークOSを選択・入れ替えられることにある。この分離を技術的に可能にするのが、Switch ASICベンダーごとに異なるSDK/APIの違いを吸収する共通制御インターフェースであり、[[SAI (Switch Abstraction Interface)]] がその代表例である。SAIが登場する以前は、SDK(およびそれを利用するAPI)がASICベンダー・モデルごとに異なり、ライセンス費用も高額だったため、異なるスイッチに対応するネットワークOSの開発はネットワーク機器ベンダーや商用ネットワークOSベンダー以外には難しい状況だった。(Source: [[@2025__Gihyo__実践SONiC入門 - Chapter 1 ホワイトボックススイッチとSONiCアーキテクチャ]] ch.1 §1.2.1) ## 横断的知見 - (現時点では本概念の取り込み元が『実践SONiC入門』第1章のみであるため、複数ソースを突き合わせた横断的知見はまだない。他章・他ソースの取り込みが進み次第、ここに蓄積する。) ## 未解決の問い - ホワイトボックススイッチのCPU/メモリー構成の多様性(x86_64系〜ARM/MIPS系)は、SAIによるSwitch ASIC側の抽象化と異なり、ネットワークOS側でどのように吸収されるのか。本章はSwitch ASIC制御の標準化(SAI)には踏み込むが、CPU/メモリー側の移植性については触れていない。SONiCの入手・インストールを扱う章(第5章)で確認する必要がある。 - 「プラットフォーム」と「デバイス」という用語(SONiC Wiki Porting-Guideに由来)は、SONiC以外のネットワークOS(例: 他のオープンソースNOS)でも共通して使われる語彙なのか、SONiC固有の用語法なのかは本章からは判断できない。 - ホワイトボックススイッチという語自体の起源(ベンダーが垂直統合したクローズドな「ブラックボックス」アプライアンスとの対比としての命名)は本章では明示的に説明されていない。ネットワーキング分野での用語の出自を裏付ける一次資料の確認が必要。 ## 関連 - [[ネットワークオペレーティングシステム]] — ホワイトボックススイッチのハードウェアを制御するソフトウェア層 - [[SAI (Switch Abstraction Interface)]] — Switch ASICベンダー間の差異を吸収する共通制御API。ホワイトボックス化を技術的に可能にする鍵 - [[ブラックボックスとホワイトボックス]] — 「ブラックボックス/ホワイトボックス」という語自体の起源は制御理論・サイバネティクス(Norbert Wiener)にあり、本概念(ネットワーキングにおけるハードウェア開示の比喩としての用法)とは分野・定義が異なる。「内部構造が既知か未知か」という比喩の大枠のみ共通する - [[実践SONiC入門]] - [[@2025__Gihyo__実践SONiC入門 - Chapter 1 ホワイトボックススイッチとSONiCアーキテクチャ]] ## 出典 - 海老澤健太郎, 『実践SONiC入門』, 技術評論社, 2025, 第1章 §1.1, §1.2.1.