フローテーブル

フローテーブル

 OpenFlowは、SDN(Software-Defined Networking)の標準的なプロトコルで、ネットワークデバイスの制御面を分離し、ネットワークの柔軟性、可視性、管理性を向上させることを目的としています。

 OpenFlowスイッチは、フローテーブルと呼ばれる、パケットを処理するための情報を格納するテーブルを持っています。フローテーブルには、転送パケットに関するルールが含まれています。これらのルールに従って、スイッチはパケットを処理し、正しいポートに転送することができます。

フローテーブルは、以下のような情報を持っています。

  1. フローのマッチング条件
     パケットの送信元IPアドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号、プロトコルなどの情報に基づいて、パケットをフローにマッチングさせます。
  2. アクション
     フローにマッチングする場合に実行されるアクション。アクションには、パケットの転送先ポート、QoS(Quality of Service)の設定、セキュリティの適用などが含まれます。

 OpenFlowスイッチは、パケットが到着した際に、最初にフローテーブル内のルールに従ってパケットを処理します。もしパケットがフローテーブル内のどのルールにもマッチングしない場合は、スイッチはコントローラにパケットを送信し、コントローラは新しいルールを生成してフローテーブルに追加することができます。これにより、フローテーブルを動的に更新することができ、ネットワークの柔軟性を向上させることができます。

 また、フローテーブルには、複数のフローが定義されている場合、どのフローを優先するかを定義することもできます。これをフローテーブルエントリーの優先度と呼びます。優先度は、フローにマッチするための条件が複数ある場合に使用され、複数のフローが同時にマッチングする場合にどのフローを優先して実行するかを指定するために使用されます。

 OpenFlowスイッチは、複数のフローテーブルをサポートすることができます。これにより、異なるフローの種類に対して異なるフローテーブルを使用することができます。たとえば、転送パケットのルーティングに使用されるフローテーブルと、セキュリティに関連するフローテーブルを分けることができます。

 最後に、OpenFlowスイッチには、フローテーブルのエントリー数に制限がある場合があります。エントリー数が制限されると、フローテーブルがいっぱいになると、新しいフローを追加することができなくなります。したがって、ネットワーク管理者は、必要なフローテーブルのサイズを見積もり、必要に応じてフローテーブルのサイズを調整する必要があります。

以上が、OpenFlowのフローテーブルについての簡単な説明です。