データプレーン

データプレーン

 OpenFlowは、ネットワークスイッチやルータなどのネットワーク機器を中央集権的に制御するためのプロトコルです。OpenFlowは、ネットワーク機器上のデータプレーン(データ転送機能)とコントロールプレーン(ルーティングや転送テーブルの管理などの制御機能)を分離することによって、柔軟なネットワーク制御を可能にします。

OpenFlowのデータプレーンは、パケット転送機能を担う部分であり、主に以下の機能を持ちます。

  1. パケットのマッチング:OpenFlowスイッチは、受信したパケットのヘッダ情報を解析し、マッチング条件に合致するエントリを探します。マッチング条件は、送信元・宛先IPアドレス、送信元・宛先ポート番号、プロトコルタイプ、VLAN IDなどがあります。
  2. アクションの実行:マッチング条件に合致したエントリに対して、指定されたアクションを実行します。アクションは、パケットの転送先や優先度、QoS設定などがあります。
  3. パケットの転送:アクションに従って、パケットを転送します。OpenFlowスイッチは、転送先のポート番号やVLAN IDなどの情報を元に、パケットを適切なポートに転送します。

 OpenFlowのデータプレーンは、柔軟なネットワーク制御を可能にするため、ハードウェアやソフトウェアによって実装されます。例えば、OpenFlowスイッチは、ソフトウェアで実装される場合もあれば、専用のASICによって実装される場合もあります。

 データプレーンを中央制御することにより、ネットワークの柔軟な制御や、アプリケーションに合わせたQoS設定、セキュリティ対策などが可能になります。ただし、OpenFlowによるネットワーク制御は、複雑な設定やネットワーク構成が必要であるため、専門的な知識が必要な場合があります。

 OpenFlowにおいて、データプレーンは主にフローテーブルという形で実装されます。フローテーブルは、マッチング条件とアクションの組み合わせを保持しており、パケットを転送する際にこのフローテーブルに従って処理を行います。

 OpenFlowスイッチは、通常のネットワークスイッチと同様に、パケットを受信したポートから送信するポートへ転送する処理を行います。ただし、この処理に加えて、OpenFlowスイッチは以下の手順でパケットの処理を行います。

  1. パケットのマッチング:OpenFlowスイッチは、受信したパケットのヘッダ情報を解析し、マッチング条件に合致するエントリを探します。このとき、フローテーブルに登録されたマッチング条件とパケットのヘッダ情報を比較します。
  2. アクションの実行:マッチング条件に合致したエントリに対して、指定されたアクションを実行します。アクションは、パケットの転送先や優先度、QoS設定などがあります。これにより、パケットの転送先や処理方法を柔軟に制御することができます。
  3. フローの追加:新しい通信フローが検出された場合、フローテーブルに新しいエントリを追加します。このとき、フローのキーとなるマッチング条件やアクションを指定することにより、新しいフローに対する処理方法を指定することができます。
  4. フローの削除:通信フローが終了した場合、フローテーブルから不要なエントリを削除します。これにより、フローテーブルのサイズを抑え、ネットワークの効率化を図ることができます。

 以上の手順により、OpenFlowスイッチはネットワークの柔軟な制御を実現し、アプリケーションに合わせたQoS設定やセキュリティ対策などが可能になります。また、コントロールプレーンとデータプレーンを分離することにより、ネットワークの可用性や拡張性を向上させることもできます。