イベントレポート

IIJ Technical DAY 2018

もしかして、“ホワイトボックススイッチ”に夢見てない?

IIJも苦労したその現実と、期待される用途とは

 株式会社インターネットイニシアティブ(IIJ)が11月22日、年次技術イベント「IIJ Technical DAY 2018」を開催した。その中から、3つの講演の模様をレポートする。

 本記事では、ネットワークに関する実験的な取り組みについて発表した白崎博生氏(ネットワーク本部SDN開発部長)による講演「ホワイトボックススイッチの期待と現実」をレポートする。

 ホワイトボックススイッチとは、OSなどのソフトウェアを含まず、ハードウェアだけで提供されるネットワークスイッチである。その上に利用側が目的に合ったOSなどをインストールして利用する。白崎氏の講演では、実際に試して分かった現実や、苦労した点、その上で期待される用途などが語られた。なお、IIJでは現在のところ、ホワイトボックススイッチを商用サービス環境で使っているわけではない。

株式会社インターネットイニシアティブの白崎博生氏(ネットワーク本部SDN開発部長)

ホワイトボックススイッチは入手性が弱点!?

 冒頭でまず「ホワイトボックススイッチが出てきて、みなさん夢を持ったのではないでしょうか」と白崎氏。

 期待されることの1つに、コスト削減がある。しかし、IIJで試算したところでは「思ったよりコストが高い」と白崎氏は語る。本体は安いが、有料NOS(ネットワークOS)はそれほど安くはなく、通常のメーカー製スイッチより高くなることもあるという。また、NOSを自分たちで開発しようとすると、最初に作るのはいいが、メンテナンスを考えると負担が大きい。「台数が非常に多い事業者ならいいが、IIJの規模では高い」(白崎氏)。

ホワイトボックススイッチはメーカー製より高くつくことも

 意外にハードウェアの製品寿命(販売終了までの期間)が短く、入手性が悪い、というのも弱点だ。同じスイッチを追加購入できなかったり、さらには特定メーカーのASIC(ネットワークチップ)を搭載するスイッチを製造しなくなったり……ということもあるという。「製品ロードマップが全部白紙になることもある」というエピソードは、会場の苦笑いを誘った。

 そのほか、ベンダーが買収されてASICがなくなった話や、メーカー製スイッチとつないで特定条件でリンクアップしなかった話などのエピソードも語られた。

製品寿命や突然の変更で入手性が弱点

SDKの入手に始まる悪戦苦闘

 さて、ホワイトボックススイッチではLinuxベースのNOSが動く。ただし、Linuxだけではなく、ASICのコントローラーが必要となる。そこで、自分で一からソフトウェアを入れて動かすには、メーカーのSDKが必要になる。このSDKをめぐる苦労話も白崎氏は語った。

 SDKには、Linux用のASICデバイスドライバーや、ライブラリ、ツール、エミュレーター、ドキュメントなどが含まれ、NOSを自作する人はライブラリより上位レイヤーを用意すればよい。

SDKに含まれるもの

 ただし、なにしろASICのSDKを必要とするのは、普通はスイッチやNOSを開発して販売する企業だ。白崎氏がASICメーカーにコンタクトしたところ、製品化や販売を前提としたNDAやSLAなどの手続きが求められ、IIJの法務担当者を交えて苦労したという。

 しかもドキュメントが少なく、ドキュメントと実装が違うことも続き、その上、インターネットなどにも情報がない。その状態でコンパイルが通らないのでメーカーに問い合わせると、メーカーはそもそも製品化を想定しているので話がかみ合わないということもあったという。

SDKの入手などメーカーとのコンタクトでの苦労

 また、ASICメーカーごとにSDK APIが異なり、しかもAPIの数が多い。そのため、学習コストが高く、切り替えは大変だという。Microsoftらが定め、Open Compute Projectで採択・メンテナンスされている共通API「SAI(Switch Abstraction Interface)」もあるが、抽象化されているので各社の独自機能が入っていないと白崎氏は説明した。

ASICメーカーごとにSDK APIが異なり大変

“ネットワークが超強力なサーバー”で「Rack as a Service」

 ここまでの苦労を白崎氏は「開発は難しくないけど、簡単でもない」とまとめた。「汎用のNOSを作るのは大変だが、例えばVXLANとVLANの変換といった程度なら、CaviumのSDKではPythonでも書ける」。ただし、ARPへの対応もリンクアップのLED点灯も、ASICではなく自分のソフトウェアで制御する必要があるという。

 一方で、スイッチ製品でLinuxインターフェースを開放している大手メーカーもあり、ホワイトボックススイッチを使う意味が薄れてくる。

 この状況に対して白崎氏は、ホワイトボックススイッチを“ネットワークが超強力なサーバー”として使う構想に取り組んでいると語った。

 白崎氏は具体例として、プロトタイプを開発中の「Rack as a Service」を説明した。物理ラックに収容されたリソースを切り出して論理的なラックとして提供する。ホワイトボックススイッチで仮想ルーターを切り、仮想ロードバランサーやNATなども含め、ネットワークの機能をASICにオフロードする。「OpenStackで十分という意見もあるだろうが、仮想マシンで仮想ルーターを実装すると遅い。ASICで高速に処理したい」(白崎氏)。

ASICの高速処理を生かした「Rack as a Service」をプロトタイプ開発中

 このような一種のサーバー機器としてホワイトボックススイッチが本当に使えるかどうかについて、白崎氏は「正直なところ、私にも分からない」と述べた。まず開発効率の問題として、Cで開発しなくてはならないことや、ディスク容量が少ないことがある。また、「スマートNICで十分では?」という指摘については、「それぞれ得意なところをやればいい。米国の大規模なところではスマートNICに流れつつあるが、電力消費が大きく、同じ方法は日本では難しいのではないか」と語った。

 それ以上に現状で分からない点に、運用体制がある。「まだ壊れ方が分からないので、監視パラメータが分からない」と白崎氏。交換機材をどれだけ用意すればいいのかといった経験もない。「そのためにも、逃げ先を用意しておくことが大事。突然、ハードがない、ASICがない、ということになる」(白崎氏)。

 そんな現状で、なぜ、ホワイトボックススイッチを調査するのか? その理由として「ネットワークの速度はどんどん速くなって、200GbEや400GbEも見えてきている。だが、CPUはそれほど速くなっておらず、コアを並べてもあるところまでしか上がらない」と白崎氏は語り、「そのためにはアクセラレーションが必要になるので、その選択肢の1つとしてASICに注目した」とまとめた。

ホワイトボックススイッチはまだ未知数

(協力:株式会社インターネットイニシアティブ)