フロー
フロー
OpenFlowは、ネットワークスイッチやルーターの制御プレーンを切り離して、外部のコントローラーによって制御できるようにするオープンスタンダードのプロトコルです。OpenFlowでは、ネットワーク機器を論理的なスイッチとポートの集合体として扱い、それらをフローと呼ばれる論理的なパスの集合体でつなぎ合わせることにより、ネットワークを制御します。
フローとは、パケットの送信元・宛先、プロトコル、ポート番号などの情報を基に、ネットワーク機器でどのようにパケットを処理するかを決定するルールのことです。フローには、優先度、アクション、タイムアウトなどの設定ができます。例えば、HTTPトラフィックを処理するためのフローでは、優先度が高く、Webサーバーへの接続を許可するアクションが設定され、タイムアウトは長く設定されることが一般的です。
OpenFlowによって、外部のコントローラーがネットワーク機器の制御を行うことが可能になります。コントローラーは、フローの作成や削除、優先度やアクションの変更、フローの統計情報の取得などを行うことができます。このように、OpenFlowによってネットワークを柔軟かつ効率的に制御することができます。
OpenFlowによってネットワークを制御するためには、以下のような手順が必要です。
- OpenFlowスイッチとコントローラーの接続
最初に、OpenFlowスイッチとコントローラーを接続する必要があります。これには、OpenFlowスイッチとコントローラーの間でOpenFlowプロトコルを使用することが必要です。 - フローの定義
次に、コントローラーはフローを定義します。フローは、パケットの転送ルールを表します。フローには、マッチング条件とアクションが含まれます。マッチング条件は、パケットがフローに一致するために必要な条件を指定します。アクションは、マッチング条件が一致した場合に実行される動作を指定します。 - フローの送信
コントローラーは、定義したフローをOpenFlowスイッチに送信します。スイッチは、パケットを受信するたびに、フローに一致するかどうかを判断します。フローに一致する場合、アクションに従ってパケットを処理します。 - フローの更新
ネットワークの状況が変化すると、フローの更新が必要になることがあります。たとえば、新しいサービスを導入する場合や、ネットワーク上で問題が発生した場合などです。コントローラーは、フローの更新を行い、更新されたフローをOpenFlowスイッチに送信します。
OpenFlowによって、ネットワークの柔軟性や管理性が向上するため、近年ではSDN (Software-Defined Networking) 技術の一部として注目されています。