
柔軟で拡張性の高いネットワーク構築を可能にする「OpenFlow」
仮想化によってインフラの柔軟性や拡張性が向上しつつある。
一方、従来のネットワークの仕組みは、それらの柔軟性や拡張性に対応しきれなくなってきている。
前回の「OpenFlowを勉強する前におさえておきたい『ネットワーク仮想化』の基礎知識では、その問題を解決するためにネットワーク仮想化に注目が集まっていることを説明した。
これに対して、ネットワーク仮想化と並んで注目されている技術に「OpenFlow」がある。今回は、このOpenFlowの仕組みやメリットについて紹介する。
OpenFlowの仕組み
OpenFlowは、もともとは「OpenFlow Switching Consortium」によって提唱されたネットワーク制御技術であり、現在は2011年3月に新たに設立された「Open Networking Foundation(ONF)」によって標準化が進められている。ホワイトペーパーや詳細な仕様はONF公式サイト内のページで公開されている。
従来のスイッチでは、1台の端末が経路制御やパケット転送などの機能をそれぞれ独立して持っているのが一般的である。一方でOpenFlowの場合は、スイッチ端末はパケット転送のみを担当し、経路制御は独立したコントローラによって行われる。このスイッチ端末を「OpenFlowスイッチ」、コントローラを「OpenFlowコントローラ」と呼ぶ。
パケットの転送ルールはコントローラによって作成され、「フローテーブル」としてスイッチに配信される。スイッチはフローテーブルに記載されたルールにしたがってパケットを処理する。フローテーブルに記載されていないパケットについては、その都度コントローラに処理方法を問い合わせる。
フローテーブルのルールは複数のヘッダフィールドの組み合わせで定義する。ヘッダフィールドには受信ポート番号、送信元/送信先MACアドレス、VLANタグ、送信元/送信先IPアドレス、送信元/送信先L4アドレス、送信元/送信先TCP/UDP/SCTPポート番号などが指定できる。なお、OpenFlow 1.1では15種類のフィールドが定義されていたが、OpenFlow 1.2からはIPv6サポートが追加されたほか、将来的にプロトコルを追加できるような構造への再編成が行われており、柔軟性が大幅に向上している。