フロー

フロー

 OpenFlowは、ネットワークスイッチやルーターの制御プレーンを切り離して、外部のコントローラーによって制御できるようにするオープンスタンダードのプロトコルです。OpenFlowでは、ネットワーク機器を論理的なスイッチとポートの集合体として扱い、それらをフローと呼ばれる論理的なパスの集合体でつなぎ合わせることにより、ネットワークを制御します。

 フローとは、パケットの送信元・宛先、プロトコル、ポート番号などの情報を基に、ネットワーク機器でどのようにパケットを処理するかを決定するルールのことです。フローには、優先度、アクション、タイムアウトなどの設定ができます。例えば、HTTPトラフィックを処理するためのフローでは、優先度が高く、Webサーバーへの接続を許可するアクションが設定され、タイムアウトは長く設定されることが一般的です。

 OpenFlowによって、外部のコントローラーがネットワーク機器の制御を行うことが可能になります。コントローラーは、フローの作成や削除、優先度やアクションの変更、フローの統計情報の取得などを行うことができます。このように、OpenFlowによってネットワークを柔軟かつ効率的に制御することができます。

OpenFlowによってネットワークを制御するためには、以下のような手順が必要です。

  1. OpenFlowスイッチとコントローラーの接続
     最初に、OpenFlowスイッチとコントローラーを接続する必要があります。これには、OpenFlowスイッチとコントローラーの間でOpenFlowプロトコルを使用することが必要です。
  2. フローの定義
     次に、コントローラーはフローを定義します。フローは、パケットの転送ルールを表します。フローには、マッチング条件とアクションが含まれます。マッチング条件は、パケットがフローに一致するために必要な条件を指定します。アクションは、マッチング条件が一致した場合に実行される動作を指定します。
  3. フローの送信
     コントローラーは、定義したフローをOpenFlowスイッチに送信します。スイッチは、パケットを受信するたびに、フローに一致するかどうかを判断します。フローに一致する場合、アクションに従ってパケットを処理します。
  4. フローの更新
     ネットワークの状況が変化すると、フローの更新が必要になることがあります。たとえば、新しいサービスを導入する場合や、ネットワーク上で問題が発生した場合などです。コントローラーは、フローの更新を行い、更新されたフローをOpenFlowスイッチに送信します。

 OpenFlowによって、ネットワークの柔軟性や管理性が向上するため、近年ではSDN (Software-Defined Networking) 技術の一部として注目されています。