ページの先頭です
OpenFlowに対応するEthernetスイッチの実現方式としては、大まかに3つに分類できると言えます。
1つ目は、ASICを用いたハードウェアスイッチ製品です。スイッチ容量は大きく、大規模ネットワークに対応できる性能を持てる半面、扱えるフローエントリ数やテーブル数に相当な制限がかかり、かつ価格も高価です。また、OpenFlow仕様の項目には必須なものとオプションとして省いていいものとがありますが、ハードウェアスイッチ製品では実装の難しい処理が省かれていることが多い点に注意が必要です。
2つ目は、ネットワークプロセッサ(NPU)を用いた製品です。ネットワーク処理のための特殊な機能を内蔵したプロセッサを利用し、その機能を活かすファームウェアを内蔵したものです。ASICを用いたスイッチと比較すると、フローエントリ数、テーブル数、実装項目共に制限は緩く、また速度もハードウェアスイッチには及ばないことがあるものの、大規模ネットワークにも適用可能と言えます。やはり価格は高価であり、中規模あるいは小規模ネットワークに適用するにはコストが見合いません。
3つ目は、ソフトウェアスイッチです。サーバの汎用OS(例えばLinux)で動作するプログラムによってOpenFlowの機能を実現します。仮想マシン上で動作させることもできることから、クラウドとの相性がいいという利用面の性質があります。機能的には実装次第でOpenFlowの全機能を提供可能な半面、性能についてはASICやNPUの足元にも及ばないというのがこれまでの現状であり大きな課題でした。
10GbEネットワークインタフェースで64バイトのパケットをワイヤーレートで処理すると、14.88Mフレーム/秒(fps)となり、1フレームあたりにかけることのできる時間は67ナノ秒という計算になります。プロセッサクロックが2GHzとすると、1クロックは0.5ナノ秒になります。大雑把にいえば、1クロック1命令と仮定した場合、134命令で1パケットの処理を完了させなければワイヤーレートでのパケット転送は実現できないということになります。2012年当時、既存のソフトウェアスイッチ実装ではせいぜい数百K〜1Mフレーム/秒であったことから、性能面でのボトルネックを解消すべく、新しいソフトウェアスイッチの実装が検討されました。そうして開発されたのがSDNソフトウェアスイッチLagopus(ラゴパス)です。
ページの終わりです