例:EX9200スイッチでのOpenFlowハイブリッドインターフェイスの設定
OpenFlowソフトウェアパッケージがインストールされているEX9200スイッチでは、複数の論理インターフェイスをサポートする物理インターフェイスをOpenFlowハイブリッドインターフェイスとして設定できます。ハイブリッドインターフェイスは、OpenFlow論理インターフェイスと非OpenFlow論理インターフェイスを同時にサポートします。ハイブリッドインターフェイスにより、OpenFlowおよび非OpenFlowトラフィックは、異なるVLAN内のトラフィックを維持しながら、同じ物理インターフェイスを通過することができます。
特に、十分な数の物理インターフェイスを使用することが重要な状況では、ハイブリッドインターフェイスを使用することで、物理インターフェイスをより効率的に使用することができます。
この例では、EX9200スイッチ上でOpenFlowハイブリッドインターフェイスを設定する方法を示しています。
要件
この例では、以下のハードウェアとソフトウェアのコンポーネントを使用しています。
Junos OSリリース13.3以降のリリースを実行しているEX9200スイッチ。
OpenFlow ソフトウェア パッケージがスイッチにインストールされ、ソフトウェア パッケージ リリースがスイッチ上で実行されている Junos OS リリースと一致します。
スイッチはOpenFlowコントローラへのTCP接続を持っており、スイッチのデータプレーンにアクセスする必要があります。
スイッチは fxp0 インターフェイスを介して管理ネットワークに接続され、コントローラの IP アドレスから到達可能です。
概要とトポロジー
この例では、EX9200スイッチを次のように設定します。
1 つのハイブリッド インターフェイス、xe-2/1/0
OpenFlowトラフィックのみを処理する1つの非ハイブリッドインターフェイス、xe-2/1/1
非OpenFlowトラフィックのみを処理する1つの非ハイブリッドインターフェイス、xe-2/1/2
ハイブリッドインターフェイスでは、論理インターフェイスxe-2/1/0.0がOpenFlowに参加し、論理インターフェイスxe-2/1/0.1およびxe-2/1/0.2がOpenFlowに参加しません。
ハイブリッド インターフェイスを使用する場合、VLAN タギングを使用して OpenFlow トラフィックと OpenFlow 以外のトラフィックを区別します。そのため、すべてのインターフェイスで VLAN タグ付けを有効にし、インターフェイスに入るトラフィックは VLAN タグ付けする必要があります。ネイティブVLANを設定しない場合、ハイブリッドインターフェイスに入るタグなしトラフィックは破棄されます。この例では、 を使用して flexible-vlan-tagging
ハイブリッドインターフェイスを設定します。これは、VLANタグ付けを有効にし、インターフェイス上のすべてのトラフィックに対して802.1Q VLANシングルタグとデュアルタグフレームの両方をサポートします。また、 を使用して vlan-tagging
OpenFlowインターフェイスxe-2/1/1と非OpenFlowインターフェイスxe-2/1/2を設定すると、VLANタグが有効になり、インターフェイス上のすべてのトラフィックに対して802.1Q VLAN単一タグフレームのみがサポートされます。
柔軟なイーサネットサービスとしてハイブリッドインターフェイスカプセル化を設定します。このタイプのカプセル化を持つインターフェイスでは、すべてのVLAN IDが有効であることに注意してください。1~511 の VLAN ID は、通常のイーサネット VLAN 用に予約されていません。この例では、OpenFlow トラフィックには VLAN 100~200、非 OpenFlow トラフィックには VLAN 700 と 800 が使用されています。
xe-2/1/0.2 を除くすべての論理インターフェイスは、ファミリー ethernet-switching
およびインターフェイス モード trunk
を使用してレイヤー 2 トランク インターフェイスとして設定されます。論理インターフェイスxe-2/1/0.0およびxe-2/1/1.0はOpenFlowに参加し、OpenFlow VLAN ID 100~200でトラフィックを受信および転送します。論理インターフェイスxe-2/1/0.1およびxe-2/1/2.0はOpenFlowに参加せず、OpenFlow以外のVLAN ID 700でトラフィックを受信および転送しません。
論理インターフェイス xe-2/1/0.2 は、IP アドレス 198.51.100.10/24 を持つサブインターフェイスであり、レイヤー 3 ルーティングを実行します。このインターフェイスはOpenFlowに参加せず、VLAN ID 800でトラフィックをルーティングします。
表 1 は 、論理インターフェイス、トラフィック タイプ、関連する VLAN ID をまとめたものです。
論理インターフェイス |
トラフィック タイプ |
Vlan |
---|---|---|
xe-2/1/0.0 |
OpenFlow |
100~200 |
xe-2/1/0.1 |
非OpenFlow |
700 |
xe-2/1/0.2 |
非OpenFlow |
800 |
xe-2/1/1.0 |
OpenFlow |
200 |
xe-2/1/2.0 |
非OpenFlow |
700 |
OpenFlow 仮想スイッチおよび OpenFlow プロトコル ステートメントを 階層レベルで設定します [edit protocols openflow]
。仮想スイッチ100は、IPアドレス198.51.100.174のTCP接続を介してOpenFlowコントローラに接続します。仮想スイッチの設定には、OpenFlowに参加しているすべての論理インターフェイスを含める必要があります。これにはxe-2/1/0.0およびxe-2/1/1.0が含まれます。
EX9200スイッチには、仮想スイッチに個別のルーティングインスタンスが必要です。このルーティングインスタンスは、OpenFlowトラフィックを非OpenFlowトラフィックから分離します。ハイブリッドインターフェイスを使用する場合、OpenFlowトラフィックに仮想スイッチルーティングインスタンスを設定し、非OpenFlowトラフィックに対して別の仮想スイッチルーティングインスタンスを設定します。この例では、OpenFlow トラフィックのルーティング インスタンス OF
と非 OpenFlow トラフィックのルーティング インスタンス NON-OF
を設定します。
ルーティング インスタンス OF
には、OpenFlow に参加するインターフェイス(xe-2/1/0.0 および xe-2/1/1.0)が含まれています。このルーティング インスタンス内で、OpenFlow VLAN 100~200 を含むように VLAN を設定します。ルーティング インスタンス NON-OF
には、OpenFlow に参加しないレイヤー 2 インターフェイス(xe-2/1/0.1 および xe-2/1/2.0)が含まれています。このルーティング インスタンス内で、非 OpenFlow VLAN 700 を含むように VLAN を設定します。
OpenFlow トラフィックを誘導するには、OpenFlow コントローラーは、適切なトラフィックを選択したフロー エントリーをインストールして、正しい OpenFlow インターフェイスに転送する必要があります。
構成
CLI クイックコンフィギュレーション
この例を迅速に設定するには、以下のコマンドをコピーしてテキスト ファイルに貼り付け、改行を削除し、ネットワーク設定に一致させる必要がある詳細情報を変更し、コマンドを 階層レベルの [edit]
CLI にコピー アンド ペーストして、設定モードから を入力 commit
します。
set interfaces xe-2/1/0 flexible-vlan-tagging set interfaces xe-2/1/0 encapsulation flexible-ethernet-services set interfaces xe-2/1/0 unit 0 family ethernet-switching interface-mode trunk set interfaces xe-2/1/0 unit 0 family ethernet-switching vlan members 100-200 set interfacesxe-2/1/0 unit 1 family ethernet-switching interface-mode trunk set interfaces xe-2/1/0 unit 1 family ethernet-switching vlan members 700 set interfaces xe-2/1/0 unit 2 vlan-id 800 set interfaces xe-2/1/0 unit 2 family inet address 198.51.100.10/24 set interfaces xe-2/1/1 vlan-tagging set interfaces xe-2/1/1 unit 0 family ethernet-switching interface-mode trunk set interfaces xe-2/1/1 unit 0 family ethernet-switching vlan members 200 set interfaces xe-2/1/2 vlan-tagging set interfaces xe-2/1/2 unit 0 family ethernet-switching interface-mode trunk set interfaces xe-2/1/2 unit 0 family ethernet-switching vlan members 700 set protocols openflow switch 100 controller address 198.51.100.174 set protocols openflow switch 100 controller protocol tcp port 6633 set protocols openflow switch 100 interfaces xe-2/1/0.0 set protocols openflow switch 100 interfaces xe-2/1/1.0 set routing-instances OF instance-type virtual-switch set routing-instances OF interface xe-2/1/0.0 set routing-instances OF interface xe-2/1/1.0 set routing-instances OF vlans OF-vlan vlan-id-list 100-200 set routing-instances NON-OF instance-type virtual-switch set routing-instances NON-OF interface xe-2/1/0.1 set routing-instances NON-OF interface xe-2/1/2.0 set routing-instances NON-OF vlans OF-vlan vlan-id-list 700
インターフェイスの設定
手順
インターフェイスを設定するには:
ハイブリッド物理インターフェイスで、VLANタグ付けを有効にし、カプセル化を設定します。
[edit interfaces xe-2/1/0] user@switch# set flexible-vlan-tagging user@switch# set encapsulation flexible-ethernet-services
OpenFlow 論理インターフェイス xe-2/1/0.0 を、VLAN 100~200 をサポートするレイヤー 2 トランクとして設定します。
[edit interfaces xe-2/1/0] user@switch# set unit 0 family ethernet-switching interface-mode trunk user@switch# set unit 0 family ethernet-switching vlan members 100-200
非 OpenFlow 論理インターフェイス xe-2/1/0.1 を、VLAN 700 をサポートするレイヤー 2 トランクとして設定します。
[edit interfaces xe-2/1/0] user@switch# set unit 1 family ethernet-switching interface-mode trunk user@switch# set unit 1 family ethernet-switching vlan members 700
非OpenFlow論理インターフェイスxe-2/1/0.2をレイヤー3サブインターフェイスとして設定します。
[edit interfaces xe-2/1/0] user@switch# set unit 2 vlan-id 800 user@switch# set unit 2 family inet address 198.51.100.10/24
xe-2/1/1では、VLANタグを有効にし、論理インターフェイスをVLAN 200をサポートするレイヤー2トランクとして設定します。
[edit interfaces xe-2/1/1] user@switch# set vlan-tagging user@switch# set unit 0 family ethernet-switching interface-mode trunk user@switch# set unit 0 family ethernet-switching vlan members 200
xe-2/1/2では、VLANタグを有効にし、論理インターフェイスをVLAN 700をサポートするレイヤー2トランクとして設定します。
[edit interfaces xe-2/1/2] user@switch# set vlan-tagging user@switch# set unit 0 family ethernet-switching interface-mode trunk user@switch# set unit 0 family ethernet-switching vlan members 700
OpenFlow の設定
手順
OpenFlowを設定するには:
OpenFlow コントローラの IP アドレスと接続プロトコルを設定します。
[edit protocols openflow switch 100] user@switch# set controller address 198.51.100.174 user@switch# set controller protocol tcp port 6633
仮想スイッチ 100 の OpenFlow に参加する論理インターフェイスを指定します。
[edit protocols openflow switch 100] user@switch# set interfaces xe-2/1/0.0 user@switch# set interfaces xe-2/1/1.0
仮想スイッチ ルーティング インスタンスの設定
手順
ルーティングインスタンスを設定するには:
OpenFlow トラフィックのルーティング インスタンスを設定します。
[edit] user@switch# set routing-instances OF instance-type virtual-switch user@switch# set routing-instances OF interface xe-2/1/0.0 user@switch# set routing-instances OF interface xe-2/1/1.0 user@switch# set routing-instances OF vlans OF-vlan vlan-id-list 100-200
レイヤー2インターフェイス上の非OpenFlowトラフィックのルーティングインスタンスを設定します。
[edit] user@switch# set routing-instances NON-OF instance-type virtual-switch user@switch# set routing-instances NON-OF interface xe-2/1/0.1 user@switch# set routing-instances NON-OF interface xe-2/1/2.0 user@switch# set routing-instances NON-OF vlans NOF-vlan vlan-id-list 700
設定をコミットします。
[edit] user@switch# commit
結果
動作モードから、 、 show configuration protocols openflow
、 コマンドを入力して設定をshow configuration interfaces
show configuration routing-instances
確認します。出力に指定された設定が表示されない場合は、この例の設定手順を繰り返して設定を修正します。
user@switch> show configuration interfaces xe-2/1/0 { flexible-vlan-tagging; encapsulation flexible-ethernet-services; unit 0 { family ethernet-switching { interface-mode trunk; vlan { members 100-200; } } } unit 1 { family ethernet-switching { interface-mode trunk; vlan { members 700; } } } unit 2 { vlan-id 800; family inet { address 198.51.100.10/24; } } } xe-2/1/1 { vlan-tagging; unit 0 { family ethernet-switching { interface-mode trunk; vlan { members 200; } } } } xe-2/1/2 { vlan-tagging; unit 0 { family ethernet-switching { interface-mode trunk; vlan { members 700; } } } }
user@switch> show configuration protocols openflow switch 100 { interfaces { xe-2/1/0.0; xe-2/1/1.0; } controller { protocol tcp { port 6633; } address 198.51.100.174; } }
user@switch> show configuration routing-instances OF { instance-type virtual-switch; interface xe-2/1/0.0; interface xe-2/1/1.0; vlans { OF-vlan { vlan-id-list 100-200; } } } NON-OF { instance-type virtual-switch; interface xe-2/1/0.1; interface xe-2/1/2.0; vlans { NOF-vlan { vlan-id 700; } } }
検証
設定が正しく機能していることを確認します。
OpenFlow コントローラ接続の検証
目的
OpenFlow コントローラ接続が稼働していることを確認します。
アクション
動作モード コマンドを show openflow controller
発行して、コントローラの接続状態が up
であることを確認します。仮想スイッチの設定には単一のコントローラしかないため、仮想スイッチは設定にコミットした後にコントローラへの接続を自動的に開始します。
user@switch> show openflow controller Openflowd controller information: Controller socket: 11 Controller IP address: 198.51.100.174 Controller protocol: tcp Controller port: 6633 Controller connection state: up Number of connection attempt: 5 Controller role: equal
意味
この出力は、コントローラーに関するその他の情報に加えて、OpenFlow コントローラーの接続状態が up
、 であることを示しています。
OpenFlow インターフェイスの検証
目的
OpenFlow インターフェイスが稼働していることを確認します。
アクション
動作モード コマンドを show openflow interfaces
発行し、各 OpenFlow インターフェイスの状態が であることを Up
確認します。
user@switch> show openflow interfaces Switch name: 100 Interface Name: xe-2/1/0.0 Interface port number: 41500 Interface Hardware Address: 00:00:5E:00:53:cf Interface speed: 10Gb Full-duplex Interface Auto-Negotiation: Disabled Interface media type: Fiber Interface state: Up Switch name: 100 Interface Name: xe-2/1/1.0 Interface port number: 41501 Interface Hardware Address: 00:00:5E:00:53:d0 Interface speed: 10Gb Full-duplex Interface Auto-Negotiation: Disabled Interface media type: Fiber Interface state: Up
意味
この出力は、各OpenFlowインターフェイスの状態が、インターフェイスに関するその他の情報に加えて、 であることを Up
示しています。