ネットワークスイッチをプログラマブルでgRPC対応にする「Stratum」をONFが発表。ホワイトボックススイッチのリファレンス実装に、Googleがオープンソース提供
Open Networking Foundation(ONF)は、ネットワークスイッチをソフトウェアで定義するオープンソースソフトウェアの開発プロジェクト「Stratum」プロジェクトを発表しました。
Stratumはおもに「P4」「gRPC Network Management Interface」「gRPC Network Operations Interface」の3つのオープンソースソフトウェアから構成されるプロジェクトです。現在公開されているバージョンは、Googleが本番ネットワークで用いているネットワーク基盤の一部をオープンソース化したものだと説明されています。
Stratumはホワイトボックススイッチのリファレンス実装を目論む
Stratumがターゲットとするのは「ホワイトボックススイッチ」と呼ばれる、ブロードコムなどに代表される市販のネットワーク処理プロセッサを搭載しつつ、OSや制御ソフトウェアをユーザーが自由に選択できるハードウェアです。
一般にネットワーク機器ベンダから販売されるスイッチは、例えばシスコならIOS、ジュニパーならJUNOSのように、そのスイッチのハードウェアを制御するOSが最初から搭載されています。
これは、ユーザーにとってはスイッチを購入後すぐに使えるという便利さの半面、そのOSに搭載されているプロトコルや機能しか基本的には利用できないため、例えば独自のプロトコル優先度の設定や自社の監視システムに合わせた監視プロトコルの利用といった柔軟性がすべて実現できるわけではありません。
そこで特にクラウドベンダを中心に、自社のサービスや運用に合わせた構成や機能をスイッチで柔軟に実現できるように、制御ソフトウェアを自前で用意できる「ホワイトボックススイッチ」の需要が数年前から高まってきました。
- ホワイトボックススイッチとは何か? オープン化がすすむネットワーク機器のハードとソフトの動向(前編)。ホワイトボックススイッチユーザ会 第一回勉強会
- ホワイトボックススイッチとは何か? オープン化がすすむネットワーク機器のハードとソフトの動向(後編)。ホワイトボックススイッチユーザ会 第一回勉強会
そしてこのホワイトボックススイッチのソフトウェア実装には、デルやHP、マイクロソフトなどが開発したものやオープンソースのものなど、さまざまなものが登場しました。
- HP、LinuxベースのネットワークスイッチOS「OpenSwitch」をオープンソースで公開。インテル、ブロードコム、VMware、アリスタなどと協力
- デル、Linuxを採用したホワイトボックススイッチ用OS「OS10」発表。ASIC抽象化API対応、Linuxアプリでユーザーがスイッチを拡張可能
- マイクロソフト、ホワイトボックススイッチ用のLinux対応スイッチソフトウェア「SONiC」をオープンソースで公開
- LinuxベースのネットワークスイッチOS「OpenSwitch」が、Linux Foundationのプロジェクトに
今回ONFが発表した「Stratum」プロジェクトは、このホワイトボックススイッチの制御ソフトの中のパケットを処理する「データプレーン」と呼ばれる部分において、リファレンス実装になることを目論んだものです。
StratumにおけるP4、gNMI、gNOIの役割とは
Stratumはおもに「P4」「gRPC Network Management Interface(gNMI)」「gRPC Network Operations Interface(gNOI)」の3つのオープンソースソフトウェアから構成されます。
P4は、そのスイッチがパケットをどのように処理するのかをコードで記述できるプログラミング言語とそのランタイムです。スタンフォード大学、プリンストン大学、Googleの3者が主導するオープンソースのプロジェクトで、Stratumの発表とほぼ同じタイミングでONFへ加盟しました。
gNMIは、スイッチのコンフィグレーションを行うためのプロトコル。gNOIはリブートやpingなど運用時に必要なコマンドを実行するためのプロトコルです。
つまりホワイトボックススイッチに対して、P4によるプログラマブルなパケット制御、gRPCをベースにしたプロトコルによるコンフィグレーションと運用の機能を提供するオープンソースの実装がStratumだと言えます。
そしてこのStratumに対して、スイッチのOSの部分もしくはコントロールレイヤからどう呼び出すかはホワイトボックススイッチのユーザーが自由に選べるのです。
下記はその例で、赤い箱で示されたStratumの上位レイヤにプロプライエタリなコントローラを開発してもいいですし(左)、ONOSとTrellisと呼ばれるオープンソースのコントロールプレーンを利用してもいいわけです(右)。
Googleの実績ある実装がオープンソース化
Stratumはホワイトボックススイッチのデータプレーンにおけるリファレンス実装になることを目論んでおり、そのために2つの大きな要素を備えています。
その1つは、Stratumが、Googleの本番ネットワークで使われているネットワーク基盤で使われているソフトウェアをオープンソース化したことで、すでにユースケースとしても実装としても十分に練られた実績のあるものだ、ということです。
そしてもう1つは、GoogleをはじめTencent、NTT、VMware、ブロードコム、メラノックスなどある程度幅広く賛同者を集めてスタートできたことでしょう。
ソフトウェアによるネットワークの定義(SDN)やホワイトボックススイッチは、これまでも注目され普及が進んできてはいました。Stratumはそれをさらに一段推し進める存在になれるでしょうか。
あわせて読みたい
Java 10が本日付で正式リリース。ローカル変数の型推論、ガベージコレクタが入れ替え可能、不揮発性メモリ対応など。Java 9は早くもサポート期間終了
≪前の記事
Stack Overflowが2018年の調査結果を発表。一番使われている言語はJavaScript、一番好きな言語はRustに