Ubuntu Weekly Recipe

第665回 ホワイトボックススイッチのインストール環境であるONIEを仮想マシンに構築する

この記事を読むのに必要な時間:およそ 9.5 分

「ホワイトボックススイッチ」はユーザーが自由に[要定義]OSを入れ替えられるスイッチです。そのOSを入れ替えるための仕組みがONIE(Open Network Install Environment)です。今回は仮想マシンの上にONIEをインストールし,公開されているスイッチ用OSをインストールしてみましょう。

ホワイトボックススイッチとONIE

本記事で言う「スイッチ」とは複数の有線LANポートを持った,ネットワークに接続する,ゲームがメイン目的ではないほうのスイッチを指します※1⁠。一般的なご家庭だと,ブロードバンドルーターから直接LANポートで機器を繋いだり,無線LAN経由で通信することが多いため,このようなスイッチを使うことはないかもしれません。それに対して会社のように多人数が有線LANを接続する際には,お世話になっていることも多いでしょう。

※1
「L2スイッチ」とか「スイッチングハブ」とか呼ばれたりするアレです。PCベースのスイッチならCLIゲームぐらいインストールできると思いますし,低価格なスイッチングハブでもがんばればゲームぐらいは作れるかもしれません。

普段会社で使うスイッチのうちPCに近いところで使うスイッチは,ポート数が少なく,価格がそこまで高くはない機材であることが大半です。それに対して,企業や組織の基幹ネットワークや果てはISPやモバイルネットワークで使われるスイッチは,それなりに多ポートでなおかつ高額な機材となります。

やれ10GbEだ,25GbEだ,100GbEだ,400GbEだと進化し続けるネットワークの世界において,そんな高額な機材をぽんぽん買い換えられる組織はそこまで多くありません。さらに,いわゆる「プロプライエタリスイッチ」と呼ばれるものは,ハードウェアとソフトウェアがセットになっているため,ソフトウェア側の移行コストを下げようと思うと,スイッチベンダーが新しい規格に対応してくれるのを待つしかなくなります。

そこで出てくる概念が「ホワイトボックススイッチ」です。最近の高性能スイッチは,⁠LANポートのたくさんある,高性能なスイッチングLSI付きのサーバーマシン」みたいな構成のものが多く,ベースシステムだけ考えれば普通のLinuxをそのままインストールして動かせたりします。そこでいっそのこと,PCのように各スイッチベンダーはできるだけ標準的な規格で作っておき,機種依存な部分もできるだけオープンにすることで,ソフトウェア側は誰でも作れるようにしてしまおうというのがホワイトボックススイッチの考え方です※2⁠。

※2
このあたりのネットワーク機器を標準化し,オペレーションコストを下げようとしている団体のひとつが今回紹介するONIEやONLにも関わっているOpen Compute Project(OCP⁠⁠」です。

ソフトウエア側はNetwork OS(NOS)と呼ばれる一種のLinuxディストリビューションとして開発します※3⁠。ホワイトボックススイッチにはNOSをインストール・アンインストールすることに特化したONIE(Open Network Install Environment)と呼ばれるOSがインストールされているため,スイッチの購入者は好みのONIE対応NOSをインストールして使うことができるというわけです※4⁠。

※3
実際のところGRUBやU-Bootから起動できるのであれば,NOSがLinuxディストリビューションである必要はありません。
※4
今回はL2スイッチにのみ言及していますが,NOSによってはL3機能も持っています。よってホワイトボックススイッチをルーター機能を持たせたL3スイッチとして運用することも可能です。

言い方を変えるとスイッチベンダーは,製造したスイッチの上にONIEのデザインスペックに準拠したイメージをインストールし,ハードウェアの仕様を提供しておくことで,さまざまなNOSベンダーがそのスイッチに対応したNOSを開発できるようになります。

これによりハードウェアとソフトウェアを独立して開発できるようになり,ベンダー側の開発コストはもちろん,スイッチユーザー側の移行リスクやコストも下げられるのです※5⁠。

※5
あくまで理想論です。実際はスイッチハードウェアごとに,機種依存なコードも出てきますし,テストも考えるとソフトウェアの開発コストはそこまで下がりません。さらにスイッチのユーザーから見るとトータルコストはむしろ増えるかもしれません。

ホワイトボックススイッチ用のNOSはいろいろなところが開発していますが,その中でもソースコードが公開されていて誰でも使えるNOSのひとつが「Open Network Linux(ONL⁠⁠」です。実はこのONLはDebianベースで作られており,普通にaptコマンドでパッケージの追加インストールが可能です※6⁠。そこで今回はQEMU環境にONIEをインストールし,さらにONLをインストールしてみることにしましょう。

※6
ONL以外の選択肢だと,Microsoftが開発しているSONiCとか,YoctoでビルドできるNetwork Grade Linuxなどが存在します。

実は過去に「Ubuntu CoreをONIE経由でインストールできないか」という話が出てきたことはあります(Ubuntu Weekly Topics 2015年11月27日号⁠。マーク・シャトルワースが議論に参加したこともあってか,当時それなりに話題にはなったものの,その後は特に大きな動きはないようです。実際のところ,ONIEの仕様は公開されているため,Ubuntu Coreを一般的なONIE経由でインストールするよう独自インストーラーを作ることはそこまで難しくはありません。

著者プロフィール

柴田充也(しばたみつや)

Ubuntu Japanese Team Member株式会社 創夢所属。数年前にLaunchpad上でStellariumの翻訳をしたことがきっかけで,Ubuntuの翻訳にも関わるようになりました。