# ONIE (Open Network Install Environment) ONIEは Open Network Install Environment の略で、ホワイトボックススイッチにSONiCに限らず様々なONIE対応ネットワークOSをインストールするための共通の実行環境である。ホワイトボックススイッチを用いたネットワークのオープン化やディスアグリゲーション(ハードウェアとソフトウェアの分離)に大きく貢献しているプロジェクトであり、OCP(Open Compute Project)傘下にある。各種情報はプロジェクトホームページ(github.io)にまとまっている。(Source: [[@2025__Gihyo__実践SONiC入門 - Chapter 5 SONiCの入手とインストール]] §5.3.1) Source Code Release Cycleページによれば概ね3ヶ月毎に新バージョンがリリースされていたが、スキップされる場合もあり、2024年からは半年に1回程度のリリースとなっている。(Source: ch.5 §5.3.1) ## 実行フロー ONIEの実行フローは、ブートローダー(ハードウェアベンダー提供)→ONIE(ハードウェアベンダー提供)→インストーラー(NOSベンダー提供)→ネットワークOS(NOSベンダー提供)という順で進む。「最初の起動」ではブートローダーがONIEを起動し、ONIEがインストーラーを用いてホワイトボックススイッチにネットワークOSをインストールする。続く「2回目以降の起動」では、ブートローダーが直接ネットワークOSを起動し、ONIEは介在しない。ONIEに対応したネットワークOSであればすべてこの流れでインストール・起動が可能である。SONiC以外のONIE対応ネットワークOSの例として[[Open Network Linux (ONL)]]が挙げられる。(Source: ch.5 §5.3.1, 図5.7) インストール手順は、シリアルコンソール接続→(既存OSがあれば)Uninstall OS→ONIEコマンドプロンプト起動(`onie-stop`でDHCP自動ディスカバリ停止可)→IPアドレス設定と`onie-nos-install <イメージURL>`によるインストール、という流れを踏む。アップグレード・ダウングレードもONIE Installerを再利用する同じ手順で行える。(Source: ch.5 §5.3.1, §5.3.2) ## ハードウェア構成における位置づけ *Software-Defined Networks: A Systems Approach* 第4章は、ONIEをベアメタルスイッチのハードウェア構成要素の1つとして位置づけ、「BIOSに相当するファームウェア」と表現する。ベアメタルスイッチはNPU(スイッチングASIC)・x86制御プロセッサ・プラガブルトランシーバとともにONIEを含むコモディティ部品の集合であり、全体仕様はOCPで公開されている。(Source: [[@2021__SystemsApproach__Software-Defined Networks - A Systems Approach - Chapter 4 Bare-Metal Switches]] ch.4 §4.1) ## 横断的知見 - 『実践SONiC入門』第5章はONIEを「ネットワークOSをインストールする実行環境」という運用手順の視点(ブートローダー→ONIE→インストーラー→NOS)で説明するのに対し、*Software-Defined Networks: A Systems Approach* 第4章はONIEを「ベアメタルスイッチのハードウェア構成要素の1つ(BIOS相当)」というハードウェア構成の視点で説明する。両者は同じONIEを、運用フローとハードウェアスタックという異なる切り口から補完的に描写している。(Source: [[@2025__Gihyo__実践SONiC入門 - Chapter 5 SONiCの入手とインストール]], [[@2021__SystemsApproach__Software-Defined Networks - A Systems Approach - Chapter 4 Bare-Metal Switches]]) ## 未解決の問い - ONIE以外のインストール機構(一部ベンダー独自方式)は具体的にどのような設計で、ONIEとどう使い分けられているか。 - OCP傘下でのONIEのガバナンス体制や、SONiC・ONL以外にONIE対応を表明しているネットワークOSにはどのようなものがあるか。 ## 関連 - 実体: [[Open Network Linux (ONL)]] / [[SONiC]] / [[Open Compute Project]] - 書籍: [[実践SONiC入門]] - ソース: [[@2025__Gihyo__実践SONiC入門 - Chapter 5 SONiCの入手とインストール]] / [[@2021__SystemsApproach__Software-Defined Networks - A Systems Approach - Chapter 4 Bare-Metal Switches]] ## 出典 - 海老澤健太郎, 『実践SONiC入門』, 技術評論社, 2025, 第 5 章. - Peterson, Cascone, O'Connor, Vachuska, and Davie, *Software-Defined Networks: A Systems Approach*, 2021, Chapter 4: Bare-Metal Switches.