このページの目次
Junos OSを実行するデバイスでのOpenFlow操作と転送アクションの理解
このトピックでは、ジュニパーネットワークスのデバイスがOpenFlowトラフィックを分離して制御する方法について説明します。また、OpenFlow 機能とサポートされている転送アクション (パケットがフローエントリの条件と一致した場合に OpenFlow が実行できるアクション) についても説明します。特定のOpenFlow v1.0メッセージとフィールド、一致条件、ワイルドカード、フローアクション、統計、機能のサポートの詳細については、 Junos OSを実行するデバイスのOpenFlow v1.0コンプライアンスマトリックスを参照してください。サポートされている OpenFlow v1.3.1 のメッセージとフィールド、ポート構造のフラグと番号付け、一致条件、フロー アクション、マルチパート メッセージ、フロー命令、グループ タイプの詳細なリストについては、 Junos OS を実行するデバイスの OpenFlow v1.3.1 コンプライアンス マトリックスを参照してください。
OpenFlowの運用とサポート
Junos OS を実行するデバイスで OpenFlow トラフィックを分離して制御するには、仮想スイッチを構成します。OpenFlow をサポートする Junos OS を実行する各デバイスに、1 つの OpenFlow 仮想スイッチと 1 つのアクティブな OpenFlow コントローラーを設定できます。階層レベルで OpenFlow プロトコル、仮想スイッチ、およびコントローラーの接続情報 [edit protocols openflow]
を構成します。
OpenFlow トラフィックは、OpenFlow 対応ポートのみに出入りできます。フロー変更メッセージが OpenFlow に対応していないイングレスポートに送信された場合、デバイスはOFPET_FLOW_MOD_FAILEDエラータイプとOFPFMFC_UNKNOWNコードのofp_error_msgをコントローラに送信します。OpenFlow が有効になっていないポートに対してフロー変更アクションが要求されると、デバイスはOFPET_BAD_ACTIONエラータイプとOFPBAC_BAD_OUT_PORTコードのofp_error_msgをコントローラに送信します。
表1 は、OpenFlow v1.0をサポートするJunos OSを実行するデバイスでサポートされる一般的な機能をまとめたものです。特定のプラットフォームでのサポートについては、 ジュニパーネットワークスデバイスでのOpenFlowサポートを参照してください。
機能 |
サポート |
---|---|
OpenFlow v1.0 |
サポート。 |
OpenFlow 仮想スイッチ |
1 つの OpenFlow 仮想スイッチ。 |
コント ローラー |
仮想スイッチごとに 1 つのアクティブな OpenFlow コントローラ。テスト済みのコントローラーには、Floodlight と OESS が含まれます。 |
コントローラ接続 |
TCP/IP 接続。パッシブ接続のみが受け入れられます。コントローラが OpenFlow スイッチにアクティブに接続できません。 SSL 接続はサポートされていません。 |
緊急モード |
OpenFlow スイッチ仕様 v1.0 で定義されているようにサポートされていません。コントローラ接続が失われて再確立できない場合、スイッチはコントロール プレーンとデータ プレーンのすべてのフロー状態を維持します。 |
レイヤー2またはレイヤー3ルートとしてのフロー分類とマッピング |
サポートされていません。 |
フロー優先度 |
OpenFlow スイッチ仕様 v1.3 に従ってサポートされており、ワイルドカードエントリよりも完全一致エントリが優先されることはありません。 |
フローテーブル |
シングルフローテーブル。 |
転送アクション |
メモ:
QFX5100およびEX4600スイッチは、通常のフローアクションに対してNORMALをサポートしていません。 |
ハイブリッド インターフェイス |
一部のデバイスでサポートされています。ハイブリッド インターフェイスをサポートする OpenFlow 対応デバイスを使用すると、物理インターフェイスで通常のトラフィックの論理インターフェイスと OpenFlow トラフィックの論理インターフェイスを同時にサポートできます。 |
インターフェイス |
イーサネットインターフェイスは、OpenFlow インターフェイスとしてのみ設定できます。 |
マルチVLANアクション |
一部のデバイスでサポートされています。マルチVLANアクションをサポートするOpenFlow対応デバイスには、異なるVLANおよび異なるVLANアクションを各エグレスポートに関連付ける機能があります。 |
ポート変更 |
サポートされていません。OpenFlow 対応デバイスは、すべての OpenFlow コントローラOFPT_PORT_MOD要求を無視します。 |
キュー、キュー メッセージ、またはエンキュー アクション |
サポートされていません。 |
表2 は、OpenFlow v1.3.1をサポートするJunos OSを実行するデバイスでサポートされる一般的な機能をまとめたものです。特定のプラットフォームでのサポートについては、 ジュニパーネットワークスデバイスでのOpenFlowサポートを参照してください。
機能 |
サポート |
---|---|
OpenFlow v1.3.1 |
サポート。 |
OpenFlow 仮想スイッチ |
1 つの OpenFlow 仮想スイッチ。 |
コント ローラー |
仮想スイッチごとに 1 つのアクティブな OpenFlow コントローラ。テスト済みのコントローラには、NECとIxiaが含まれます。 |
コントローラ接続 |
TCP/IP 接続。パッシブ接続のみが受け入れられます。コントローラが OpenFlow スイッチにアクティブに接続できません。 SSL 接続はサポートされていません。 |
レイヤー2またはレイヤー3ルートとしてのフロー分類とマッピング |
サポートされていません。 |
フロー優先度 |
OpenFlow スイッチ仕様 v1.3 に従ってサポートされており、ワイルドカードエントリよりも完全一致エントリが優先されることはありません。 |
フロー指示 |
フロー エントリごとに、1 つのフロー命令がサポートされます。フロー指示は以下のいずれかです。
|
フローテーブル |
シングルフローテーブル。 |
転送アクション |
メモ:
QFX5100およびEX4600スイッチは、通常のフローアクションに対してNORMALをサポートしていません。 |
グループアクション |
サポート。グループには 1 から 32 個のバケットを含めることができ、バケットには一連のアクション (設定、ポップ、または出力) を含めることができます。 グループ タイプ OFPGT_ALL と OFPGT_INDIRECTがサポートされています。 |
インターフェイス |
イーサネットインターフェイスは、OpenFlow インターフェイスとしてのみ設定できます。 |
IPv6関連の一致条件 |
一部のデバイスでサポートされています。Junos OS リリース 14.2R3 以降、IPv6 の送信元アドレスと宛先アドレス、サブネット マスクを照合条件として使用できます。
メモ:
OpenFlow v1.3.1のJunos OS実装は、IPv6アドレスの任意のビットマスクをサポートしていません。Junos OS実装は、IPv6の送信元アドレスと宛先アドレスの連続マスクのみをサポートします。 |
マルチVLANアクション |
一部のデバイスでサポートされています。マルチVLANアクションをサポートするOpenFlow対応デバイスには、異なるVLANおよび異なるVLANアクションを各エグレスポートに関連付ける機能があります。 |
マルチパート・メッセージ |
次の情報の要求と返送がサポートされています。
|
OpenFlow バージョン ネゴシエーション |
OpenFlow コントローラーと Junos OS を実行するデバイス間の OpenFlow バージョン ネゴシエーションがサポートされています。 |
ポート変更 |
サポートされていません。OpenFlow 対応デバイスは、すべての OpenFlow コントローラOFPT_PORT_MOD要求を無視します。 |
キュー、キュー メッセージ、またはエンキュー アクション |
サポートされていません。 |
OpenFlow 転送アクション
このセクションの情報は、特に明記されていない限り、OpenFlow v1.0 と OpenFlow v1.3.1 の両方に適用されます。
Junos OS を実行する OpenFlow 対応デバイスは、OpenFlow パケットを転送するためのいくつかのフロー アクションをサポートしています。通常のフロー アクションでは、次の転送アクションがサポートされています。
物理ポート:指定されたOpenFlow対応インターフェイスからユニキャストまたはマルチキャストパケットを転送します。
ALL—イングレスインターフェイスを除く、その仮想スイッチインスタンスに設定されているすべてのOpenFlowインターフェイスからパケットをフラッディングします。
コントローラ—処理のためにパケットをOpenFlowコントローラに送信します。
FLOOD—イングレスインターフェイスとスパニングツリープロトコル(STP)によって無効にされたインターフェイスを除く、その仮想スイッチインスタンス用に設定されたすべてのOpenFlowインターフェイスを含む最小スパニングツリーに沿ってパケットをフラッディングします。Junos OS を実行するデバイスは、OpenFlow の 802.1D STP 機能をサポートしていないため、フラッド転送アクションは ALL 転送アクションと同様に動作します。
NORMAL—従来のレイヤー 2 またはレイヤー 3 処理を使用してパケットを処理します。
QFX5100およびEX4600スイッチは、通常のフローアクションに対してNORMALをサポートしていません。
OpenFlow コントローラは、パケット送信メッセージ (OFPT_PACKET_OUT) を使用して、指定されたポートからパケットを送信するように OpenFlow 仮想スイッチに指示することもできます。Send Packet メッセージには、転送されるパケットと、パケットの転送が必要なインターフェイスを示す転送アクションが含まれます。パケット送信メッセージでサポートされている転送アクションには、ALL と FLOOD があります。
各 OpenFlow 仮想スイッチは、論理的に独立したフラッド ドメインです。したがって、OpenFlow の ALL アクションと FLOOD アクションは、イングレス OpenFlow インターフェイスを除き、その特定の仮想スイッチの下で設定された OpenFlow インターフェイスからのみパケットをフラッディングします。