You are using an outdated browser. For a faster, safer browsing experience, upgrade for free today.

SDNを牽引するOpenFlowとは?業界へのインパクトは?

SND/OpenFlowの基礎技術や最新動向をQ&A形式で解説していく本稿ではOpenFlowの技術に迫る。OpenFlowの生い立ちや標準化の流れ、業界へのインパクトも合わせて理解しておこう

SDNの旗印「OpenFlow」ってなに?

 OpenFlowは、スタンフォード大学が中心となっている「OpenFlowスイッチングコンソーシアム」が提唱するネットワーク制御技術で、現在ではONF(Open Networking Foundation)という業界団体が標準化を進めている。ONFには、グーグルやフェイスブックなどのクラウド事業者やネットワークベンダーが参加しており、影響力も大きい。

 2009年にバージョン1.0の仕様が策定されており、OpenFlow対応を謳う多くの製品はこの1.0をベースにしている。その後、ONFでの標準化はかなりのスピードで行なわれ、最新バージョンは1.3。MPLSやIPv6、PBB(Provider Backbone Bridge)などの技術をサポートしている。今後はこの1.3を安定版として、製品での対応が進むと見られる。

SDNを牽引するOpenFlowとは?業界へのインパクトは?

OpenFlowの技術的な特徴は?

 OpenFlowの最大の特徴は、経路制御とパケット転送を分離した点である。従来のネットワークは、両者が一体で搭載されており、入力されてきたパケットのヘッダを見て、スイッチが転送先を自身で決定し、次のスイッチに転送を行なう。こうした転送方式では、各ネットワーク機器が自律的に通信を行なえるという特徴を持つ。経路制御を分散的に行なうというのは、耐障害性の高いネットワークを実現するTCP/IPネットワークの基本コンセプトでもあるが、ネットワーク全体を俯瞰した柔軟な経路制御ができない。また、ネットワーク機器ごとに設定を施さなければならないという手間も生じる。

従来のIPネットワークとOpenFlowのアーキテクチャの違い(NTTコミュニケーションズの資料より抜粋)

 一方で、OpenFlowでは専用コントローラーが経路制御を行ない、スイッチ側のパケット転送を一元的に制御するという中央集権型のアーキテクチャとなっている。経路制御を行なうOpenFlowのコントローラーは、負荷が集中させないようフロー単位で経路を最適化したり、障害時にはいち早く通信が回復するよう、経路を動的に変更する。そのため、既存のMAC/IPアドレスなどに加えて、物理ポートやレイヤ4のプロトコルなど、さまざまな制御情報を元にした「フローテーブル」を作成し、これをスイッチに伝搬する。

 フローテーブルには制御情報のほかに、フローに対するアクションや統計情報も含まれており、この際にコントローラーがOpenFlow対応のスイッチを制御するために利用するのがOpenFlowのプロトコルだ。OpenFlowはこのフローテーブルに従って、入力したパケットを転送するという動きになる。

OpenFlowのフロー制御ってなに?

 従来のネットワーク機器では、レイヤー構造に転送制御を行なっていた。スイッチであればL2のMACアドレス、ルーターであればIPアドレス、ファイアウォールであればTCP/UDPのポート番号などを元に各機器が転送制御を行なっていた。これに対してOpenFlowで用いられているフロー制御では、こうした各レイヤーのアドレスや識別子でトラフィックを特定し、指定されたアクションを実施する。アクションはユニキャスト、マルチキャスト、帯域制御、廃棄、負荷分散、障害回復、仮想ポートの転送制御などさまざまだ。

OpenFlowで利用されるフローテーブル(NECの資料より抜粋)

 OpenFlowではコントローラーとスイッチはセキュアチャネルを構築し、スイッチのポートや機能などの情報を交換。その後、スイッチ側で新規フローを認識すると、パケットをコントローラーに転送し、新たにフローテーブルが更新され、転送制御が実装されることになる。

(次ページ、オーバーレイとホップバイホップの違いは?)