例:MX シリーズルーターでの OpenFlow の有効化
OpenFlow は、パスに沿った各デバイスでフローを作成、削除、および変更することで、ネットワーク内のトラフィック パスを制御できるオープン スタンダードです。この例では、Junos OSを実行しているMX240ルーターでOpenFlowサポートを設定する方法を示しています。
必要条件
この例では、以下のハードウェアとソフトウェアのコンポーネントを使用しています。
Junos OSリリース13.3以降のリリースを実行しているMX240ルーター
インストールされているデバイスのJunos OSリリースと一致するソフトウェアパッケージリリースを含むOpenFlowソフトウェアパッケージ
ルーターとOpenFlowコントローラ間のTCP接続
ルーターの管理インターフェイスと、OpenFlow コントローラの IP アドレスから到達可能な管理ネットワーク間の接続
概要
この例では、MX240ルーターでOpenFlowのサポートを設定します。ルーターには、OpenFlow のみに参加する 3 つのインターフェイス、ge-1/0/0.0、ge-1/1/0.0、xe-0/0/0.0 があります。まず、物理リンク層カプセル化、タイプ ethernet-bridge
、プロトコルファミリー bridge
を使用して、インターフェイスをレイヤー2インターフェイスとして設定します。
MXシリーズルーターでは、OpenFlowトラフィックを通常のネットワークトラフィックから分離するために、別の仮想スイッチルーティングインスタンスが必要です。この例では、[edit routing-instances]
階層レベルでインスタンスタイプvirtual-switch
を使用して、仮想スイッチルーティングインスタンスrt-bd-1を設定します。ルーティングインスタンス内のブリッジドメインof-bridge
、OpenFlowに参加しているすべての論理インターフェイスが含まれます。
OpenFlow 仮想スイッチと OpenFlow プロトコル ステートメントは、 [edit protocols openflow]
階層レベルで設定します。この例では、仮想スイッチ OFswitch1 は、IP アドレス 172.16.1.1 の TCP 接続を介してコントローラに接続します。仮想スイッチ構成には、OpenFlow に参加しているすべての論理インターフェイスが含まれている必要があり、OpenFlow トラフィックはこれらのインターフェイスからのみ出入りします。
OpenFlow 設定内で、 default-action
ステートメントは、一致するフロー エントリがないパケットに対してスイッチが取るべきアクションを示します。 default-action
ステートメントを省略した場合、デフォルトのアクションは packet-in
となり、一致するフロー エントリーがないパケットは、処理のためにコントローラに送信されなければならないことを示します。この例では、一致するフロー エントリーがないパケットのデフォルト アクションを packet-in
として明示的に設定します。
この例では、OpenFlow トレース オプションも設定します。この場合、 flag all
ステートメントは、すべての OpenFlow トレース イベントをキャプチャしてログに記録する必要があることを示しています。この例ではログファイルに特定のファイル名を設定していないため、OpenFlow トレースメッセージはデフォルトの OpenFlow ログファイル /var/log/ofd に記録されます。
構成
CLIクイック構成
この例を迅速に設定するには、以下のコマンドをコピーして、テキスト ファイルに貼り付け、改行を削除し、ネットワーク設定に一致させる必要がある詳細情報を変更し、コマンドを [edit]
階層レベルで CLI にコピー アンド ペーストして、設定モードから commit
を入力します。
set interfaces ge-1/0/0 encapsulation ethernet-bridge unit 0 family bridge set interfaces ge-1/1/0 encapsulation ethernet-bridge unit 0 family bridge set interfaces xe-0/0/0 encapsulation ethernet-bridge unit 0 family bridge set routing-instances rt-bd-1 instance-type virtual-switch set routing-instances rt-bd-1 bridge-domains of-bridge vlan-id none set routing-instances rt-bd-1 bridge-domains of-bridge interface ge-1/0/0.0 set routing-instances rt-bd-1 bridge-domains of-bridge interface ge-1/1/0.0 set routing-instances rt-bd-1 bridge-domains of-bridge interface xe-0/0/0.0 set protocols openflow switch OFswitch1 controller address 172.16.1.1 set protocols openflow switch OFswitch1 controller protocol tcp set protocols openflow switch OFswitch1 interfaces ge-1/0/0.0 set protocols openflow switch OFswitch1 interfaces ge-1/1/0.0 set protocols openflow switch OFswitch1 interfaces xe-0/0/0.0 set protocols openflow switch OFswitch1 default-action packet-in set protocols openflow traceoptions flag all
プロシージャ
手順
OpenFlow のサポートを設定するには、次の手順に従います。
OpenFlow インターフェイスをレイヤー 2 インターフェイスとして設定します。
[edit interfaces] user@host# set ge-1/0/0 encapsulation ethernet-bridge unit 0 family bridge user@host# set ge-1/1/0 encapsulation ethernet-bridge unit 0 family bridge user@host# set xe-0/0/0 encapsulation ethernet-bridge unit 0 family bridge
仮想スイッチのルーティング インスタンスを構成します。
[edit routing-instances] user@host# set rt-bd-1 instance-type virtual-switch user@host# set rt-bd-1 bridge-domains of-bridge vlan-id none user@host# set rt-bd-1 bridge-domains of-bridge interface ge-1/0/0.0 user@host# set rt-bd-1 bridge-domains of-bridge interface ge-1/1/0.0 user@host# set rt-bd-1 bridge-domains of-bridge interface xe-0/0/0.0
OpenFlow コントローラの IP アドレスと接続プロトコルを設定します。
[edit protocols openflow switch OFswitch1] user@host# set controller address 172.16.1.1 user@host# set controller protocol tcp
この仮想スイッチインスタンスの下でOpenFlowに参加している論理インターフェイスを設定します。
[edit protocols openflow switch OFswitch1] user@host# set interfaces ge-1/0/0.0 user@host# set interfaces ge-1/1/0.0 user@host# set interfaces xe-0/0/0.0
一致するフロー エントリがないパケットのデフォルト アクションを設定します。
[edit protocols openflow switch OFswitch1] user@host# set default-action packet-in
OpenFlow トレースオプションを設定します。
[edit protocols openflow] user@host# set traceoptions flag all
設定をコミットします。
[edit] user@host# commit
業績
設定モードから、 show interfaces
、 show protocols openflow
、および show routing-instances
コマンドを入力して設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の手順を繰り返して設定を修正します。
user@host# show interfaces ge-1/0/0 { encapsulation ethernet-bridge; unit 0 { family bridge; } } ge-1/1/0 { encapsulation ethernet-bridge; unit 0 { family bridge; } } xe-0/0/0 { encapsulation ethernet-bridge; unit 0 { family bridge; } }
user@host# show protocols openflow switch OFswitch1 { default-action packet-in; interfaces { ge-1/0/0.0; ge-1/1/0.0; xe-0/0/0.0; } controller { address 172.16.1.1; protocol tcp; } } traceoptions { flag all; }
user@host# show routing-instances rt-bd-1 { instance-type virtual-switch; bridge-domains { of-bridge { vlan-id none; interface ge-1/0/0.0; interface ge-1/1/0.0; interface xe-0/0/0.0; } } }
検証
設定が正常に機能していることを確認します。
OpenFlow コントローラの接続が稼働していることの確認
目的
OpenFlow コントローラの接続が起動していることを確認します。
アクション
show openflow controller
動作モード コマンドを発行し、コントローラの接続状態が up
であることを確認します。仮想スイッチ構成にはコントローラーが 1 つしかないため、構成をコミットすると、仮想スイッチによってコントローラーへの接続が自動的に開始されます。
user@host> show openflow controller Openflowd controller information: Controller socket: 11 Controller IP address: 172.16.1.1 Controller protocol: tcp Controller port: 6633 Controller connection state: up Number of connection attempt: 1 Controller role: equal
意味
出力には、コントローラに関するその他の情報に加えて、OpenFlow コントローラの接続状態が up
であることがわかります。
OpenFlow インターフェイスが稼働していることの確認
目的
OpenFlow インターフェイスが起動していることを確認します。
アクション
show openflow interfaces
動作モード コマンドを発行し、各 OpenFlow インターフェイスの状態が Up
であることを確認します。
user@host> show openflow interfaces Switch name: OFswitch1 Interface Name: ge-1/0/0.0 Interface port number: 41507 Interface Hardware Address: 00:00:5e:00:53:b1 Interface speed: 1Gb Full-duplex Interface Auto-Negotiation: Disabled Interface media type: Fiber Interface state: Up Switch name: OFswitch1 Interface Name: ge-1/1/0.0 Interface port number: 44538 Interface Hardware Address: 00:00:5e:00:53:b2 Interface speed: 1Gb Full-duplex Interface Auto-Negotiation: Disabled Interface media type: Fiber Interface state: Up Switch name: OFswitch1 Interface Name: xe-0/0/0.0 Interface port number: 45549 Interface Hardware Address: 00:00:5e:00:53:b3 Interface speed: 10Gb Full-duplex Interface Auto-Negotiation: Disabled Interface media type: Fiber Interface state: Up
意味
出力には、各OpenFlowインターフェイスの状態と、インターフェイスに関するその他の情報が Up
ことが示されています。