Junos OS を実行するデバイスでの OpenFlow のサポートについて
OpenFlow の概要
OpenFlowは、リモートコントローラを使用してトラフィックを制御し、既存のネットワークで実験プロトコルを実行できるオープンスタンダードです。OpenFlowコンポーネントは、コントローラ、OpenFlowまたはOpenFlow対応スイッチ、およびOpenFlowプロトコルで構成されています。OpenFlowプロトコルは、SSLまたはTCP/IP接続を介してOpenFlow対応スイッチのデータプレーンへのOpenFlowコントローラアクセスを許可するレイヤー2プロトコルです。
OpenFlow を使用すると、パスに沿った各デバイスのフローの作成、削除、変更によって、ネットワーク内のトラフィック パスを制御できます。フロー エントリーは、比較するパケットの照合条件と、一致するパケットに適用される一連のアクション(OpenFlow v1.0)または命令(OpenFlow v1.3.1)を指定します。
ジュニパーネットワークスJunosオペレーティングシステム(Junos OS)を実行している特定のデバイスをOpenFlow対応スイッチとして設定できます。Junos OSのプロセスであるopenflowd(ofd)は、これらのデバイスのOpenFlow機能を処理します。既存のネットワークに OpenFlow を実装する場合、通常のネットワーク トラフィックが影響を受けないように、実稼働フローから実験フローを分離する必要があります。Junos OSを実行するデバイスでは、論理的に独立したフラッドドメインとして機能する1つ以上の仮想スイッチを設定することで、OpenFlowトラフィックを分離します。仮想スイッチとコントローラは、OpenFlowプロトコルメッセージを交換することで通信します。このメッセージは、コントローラがスイッチ上のフローの追加、削除、変更に使用します。
OpenFlow 仮想スイッチ
Junos OS を実行するデバイスで OpenFlow トラフィックを分離して制御するには、仮想スイッチを設定します。各仮想スイッチ設定には、コントローラ接続情報、OpenFlowに参加する論理インターフェイスのセット、パケットが既存のフローエントリーに一致しない場合に実行されるデフォルトアクションが含まれています。OpenFlow プロトコルと OpenFlow 仮想スイッチを 階層レベルで設定します [edit protocols openflow]
。
プラットフォームに応じて、デフォルトの VLAN またはブリッジ ドメインが各仮想スイッチに割り当てられます。このVLANまたはブリッジドメインは、論理的に独立したフラッドドメインとして機能し、OpenFlowトラフィックを通常のトラフィックから分離します。特定のプラットフォームでは、 階層レベルで個別の仮想スイッチ ルーティング インスタンスを [edit routing-instances]
設定する必要があります。
OpenFlow をサポートする Junos OS を実行するデバイスでは、単一の OpenFlow 仮想スイッチを設定し、仮想スイッチごとに 1 つのコントローラ接続を設定できます。デフォルトでは、単一のコントローラで仮想スイッチを設定した場合、コントローラはアクティブ モードになります。コントローラがアクティブモードの場合、スイッチは自動的にコントローラへの接続を開始します。
OpenFlow インターフェイス
Junos OSを実行するデバイスでOpenFlow仮想スイッチを設定する場合、その仮想スイッチインスタンスのOpenFlowに参加する論理インターフェイスを指定する必要があります。OpenFlow トラフィックは、OpenFlow 対応インターフェイスの出入りしかできません。これらのインターフェイスでは、MAC アドレス学習は無効になっています。
OpenFlow に参加するインターフェイスは、レイヤー 2 インターフェイスとして設定する必要があります。インターフェイスをOpenFlow対応として設定するには、 階層レベルで論理インターフェイスをOpenFlow仮想スイッチ設定に [edit protocols openflow switch switch-name interfaces]
追加します。OpenFlow インターフェイスは、単一の仮想スイッチの下でのみ設定できます。OpenFlow トラフィックに個別の仮想スイッチ ルーティング インスタンスを必要とするプラットフォームでは、OpenFlow 仮想スイッチ ルーティング インスタンスの下で OpenFlow インターフェイスも設定する必要があります。
OpenFlowをサポートする特定のプラットフォームでは、OpenFlowインターフェイスで論理ユニット番号0を使用することで、単一の論理ユニットのみを設定できます。ただし、OpenFlowをサポートする特定のプラットフォームでは、単一の物理インターフェイスを、OpenFlowと非OpenFlowの論理インターフェイスの両方をサポートするハイブリッドインターフェイスとして設定できます。例えば、 インターフェイス ge-1/0/1 は、2 つの論理インターフェイス ge-1/0/1.0 と ge-1/0/1.1 を設定できます。ge-1/0/1.0 は OpenFlow に参加せず、ge-1/0/1.1 は OpenFlow 対応インターフェイスです。