# OpenFlow / 一般設定

OpenFlowは、通常1台の装置にまとめて実装されているパケットの転送機能と転送制御機能を、それぞれ「OpenFlowスイッチ」と「OpenFlowコントローラー」に分離し、両者の通信プロトコルを定めることで、ソフトウェア（プログラミング）によるネットワークの設計、変更、管理、制御を可能にするいわゆるSDN（Software-Defined Networking）技術です。
OpenFlowを使用するネットワークでは、弊社別売製品AT-SecureEnterpriseSDN Controller（以下AT-SESC）などのOpenFlowコントローラーによって、複数のOpenFlow対応ネットワーク装置を制御します。
本製品は、OpenFlow機能の設定を行うことで、「OpenFlowスイッチ」として動作させることができます。
Note

本機能を使用するにはライセンス（GS980MX用のライセンスは2024年9月販売終了）が必要です。
ライセンスのインストール方法については「運用・管理」/「システム」の「ライセンスキーのインストール」をご参照ください。

## はじめに

OpenFlowでは、OpenFlowコントローラーから設定されるフローエントリーにしたがってすべての通信制御が行われるため、OpenFlowスイッチにおけるパケット転送の動作は、OpenFlowコントローラーの仕様に依存します。
本解説編では、OpenFlowコントローラーとしてAT-SESCを使用したネットワークの運用・管理に本製品を対応させるためのセットアップ手順を説明します。

- OpenFlowスイッチとしての基本動作
  本製品がOpenFlowポート配下のデバイスからパケットを受信すると、そのパケットの送信元MACアドレスをキーにフローエントリーを検索し、該当するフローエントリーの内容にしたがってパケットの転送・破棄を行います。
  その送信元MACアドレスに該当するフローエントリーが登録されていない場合はAT-SESCに問い合わせを行い、AT-SESCは登録されたデバイスのMACアドレス情報にもとづいてOpenFlowスイッチにフローエントリーを設定します。
  AT-SESCに登録されていないMACアドレスの場合は、そのパケットを破棄するフローエントリーを設定して通信制御を行います。

Note

CentreCOM Secure HUBシリーズ用の「SES Readyライセンス」（GS980MX用のライセンスは2024年9月販売終了）を適用した後の設定方法、コマンドは、本章の「OpenFlowスイッチの設定」をご参照ください。

Note

本製品のサポート対象となるOpenFlowコントローラーは、AT-SecureEnterpriseSDN Controller（AT-SESC）のみとなります。

Note

AT-SESCの詳しい使い方については、AT-SESCのマニュアルをご覧ください。

### 対象機種

他の章とは異なり、本章は下記のOpenFlow対応機種共通の内容になっています。

- CentreCOM x950シリーズ
- CentreCOM x930シリーズ
- SwitchBlade x908 GEN2シリーズ
- CentreCOM x560シリーズ
- CentreCOM x550シリーズ
- CenterCOM x540Lシリーズ
- CentreCOM x530/x530Lシリーズ
- CentreCOM x510シリーズ
- CentreCOM x510Lシリーズ
- CentreCOM x330シリーズ
- CentreCOM x310シリーズ
- CentreCOM x250シリーズ
- CentreCOM x240シリーズ
- CentreCOM x230/x230Lシリーズ
- CentreCOM Secure HUB SH510シリーズ
- CentreCOM Secure HUB SH310シリーズ
- CentreCOM Secure HUB SH230シリーズ
- CentreCOM Secure HUB XS900MXシリーズ
- CentreCOM Secure HUB GS980MXシリーズ
- CentreCOM Secure HUB GS900MX/MPXシリーズ
- CentreCOM IE340/340Lシリーズ
- CentreCOM IE220シリーズ
- CentreCOM IE210Lシリーズ

Note

対象スイッチと合わせて、対応するライセンスが必要となります。

### OpenFlow機能とポートの種類

OpenFlow機能使用時、本製品のスイッチポートは次の3種類のいずれかになります。

ポートの種類 | VLANタグ設定 | 転送可能なトラフィック | 用途
データプレーン | コントロール プレーン | 従来通信
OpenFlowポート | タグなし | ○ | × | × | OpenFlowで通信制御するクライアント接続に使用 データプレーンのアップリンクとしても使用
ハイブリッドOpenFlowポート | タグ付き | ○ | ○ | ○ | データプレーン、従来通信共通のアップリンクとして使用 コントローラー接続にも使用可能
通常スイッチポート | タグなし または タグ付き | × | ○ | ○ | 従来通信に使用 コントローラー接続にも使用可能

### OpenFlowスイッチの種類

本製品のOpenFlow実装では、明示的に設定したポートだけがOpenFlowポートとなり、その他のポートは通常のスイッチポートとして動作するポートベースのハイブリッドモデルをサポートします。
OpenFlowスイッチの構成として、「純粋なOpenFlowスイッチ」に加え、「ハイブリッドOpenFlowスイッチ」「ヘアピンリンクを使用したOpenFlowスイッチ」があります。
それぞれの特徴は以下のとおりです。

- ハイブリッドOpenFlowスイッチ
  １つのポートをOpenFlowポートと通常スイッチポートのアップストリームポートとして動作させることが可能です。
- ヘアピンリンクを使用したOpenFlowスイッチ
  通常スイッチポート側とOpwnFlowポート側で同VLANを使用することが可能です。ただし、ヘアピンリンクのために２ポート必要になります。

#### 純粋なOpenFlowスイッチ

通常スイッチポートとOpenFlowポートは、それぞれが独立したポートとして動作します。

#### ハイブリッドOpenFlowスイッチ

OpenFlowによって制御されるOpenFlowポート上の通信と、通常スイッチポート上の従来通信が混在する構成です。

Note

本構成では通常スイッチポートとOpenFlowポートで同一のVLANを使用することはできません。

#### ヘアピンリンクを使用したOpenFlowスイッチ

OpenFlowポートと通常スイッチポート間で通信を行うために、OpenFlowポートと通常スイッチポート間に物理的なリンクを作ります（以降このリンクのことをヘアピンリンクと呼称します）。
なお、OpenFlowコントローラーからのフローエントリーによって、通常スイッチポート宛の通信がヘアピンリンクを経由するように（通常スイッチポート宛の通信がすべてヘアピンリンクのポートから送出されるように）、設定されている必要があります。
Note

本構成では通常スイッチポートとOpenFlowポートで同一のVLANを使用することができます。

Note

ヘアピンリンクの接続は、本製品とAT-SESCのすべての設定が完了してから行ってください。

Note

AT-SESC管理下では、ヘアピンリンクを構成するOpenFlowポートをアップストリームポートとして登録します。

##### 対象機種

以下の機種がヘアピンリンクに対応しています。

- AT-SBx908 GEN2
- AT-x950-28XSQ
- AT-x950-28XTQm
- AT-x950-52XSQ
- AT-x950-52XTQm
- AT-x930-28GTX
- AT-x930-52GTX
- AT-x930-28GPX
- AT-x930-52GPX
- AT-x930-28GSTX
- AT-x550-18XTQ
- AT-x550-18XSQ
- AT-x550-18XSPQm
- AT-x530-28GTXm
- AT-x530-28GPXm
- AT-x530-28GSX
- AT-x530-10GHXm
- AT-x530-18GHXm
- AT-x530DP-28GHXm
- AT-x530L-28GTX
- AT-x530L-28GPX
- AT-x530L-10GHXm
- AT-x530L-18GHXm
- AT-GS980MX/28
- AT-GS980MX/28PSm
- AT-GS980MX/10HSm
- AT-GS980MX/18HSm
- AT-x510-28GTX
- AT-x510-28GPX
- AT-x510-28GSX
- AT-x510DP-28GTX
- AT-x510L-28GTX
- AT-SH510-28GTX
- AT-SH510-28GPX
- AT-x330-10GTX
- AT-x330-20GTX
- AT-x330-28GTX
- AT-x330-52GTX
- AT-x310-26FT
- AT-x310-26FP
- AT-SH310-26FT
- AT-SH310-26FP
- AT-x230-10GP
- AT-x230-18GP
- AT-x230-28GP
- AT-x230-10GT
- AT-x230-18GT
- AT-x230-28GT
- AT-x230L-17GT
- AT-x230L-26GT
- AT-SH230-10GP
- AT-SH230-18GP
- AT-SH230-28GP
- AT-SH230-10GT
- AT-SH230-18GT
- AT-SH230-28GT
- AT-XS916MXT
- AT-XS916MXS
- AT-GS924MX
- AT-GS924MPX
- AT-IE220-6GHX
- AT-IE220-10GHX
- AT-IE210L-10GP
- AT-IE210L-18GP
- AT-IE340-12GT
- AT-IE340-12GP
- AT-IE340-20GP
- AT-IE340L-18GP

### OpenFlow機能と併用可能な既存機能

OpenFlow機能と併用可能な既存機能は、次表○の組み合わせです。
ポートの種類によって、併用可能な機能が異なりますのでご注意ください。
（既存機能は、本マニュアルの章分類にしたがって記載しています）
Note

実際にサポートされている既存機能は機種によって異なりますので、弊社ホームページの各製品の製品ページやマニュアルをご参照ください。

既存機能 | ポート | 備考
分類 | 項目名 | 通常スイッチポート | ハイブリッド OpenFlowポート | OpenFlowポート
運用・管理 | システム | ○ | ○ | × |
コマンドラインインターフェース（CLI） | ○ | ○ | × |
ファイル操作 | ○ | ○ | × |
コンフィグレーション | ○ | ○ | × |
ユーザー認証 | ○※ | ○※ | × | ※ ユーザー認証データベースのみサポート（RADIUSサーバー、TACACS+サーバーへの問い合わせはサポート対象外）
RADIUSクライアント | ○ | ○ | × |
メール送信 | ○ | ○ | × |
ログ | ○ | ○ | × |
LLDP | ○ | × | × |
SNMP | ○ | ○ | ○※ | ※ リンクステータス通知トラップのみサポート。トラップの送信は通常スイッチポートからのみサポート
NTP | ○ | ○ | × |
端末設定 | ○ | ○ | × |
Telnet | ○ | ○ | × |
Secure Shell | ○ | ○ | × |
インターフェース | 一般設定 | ○ | ○ | ○ |
スイッチポート | ○ | ○※a | ○※b | ※a ハイブリッドOpenFlowポートではMACアドレススラッシングプロテクション、ポートミラーリングは使用不可 ※b OpenFlowポートではフローコントロールのみサポート
リンクアグリゲーション（IEEE 802.3ad） | ○ | ○※ | ○※ | ※ スタティックチャンネルグループのみサポート
ポート認証 | ○※ | × | × | ※ MACベース認証のみサポート
Power over Ethernet | ○ | ○ | ○ |
L2スイッチング | バーチャルLAN | ○※ | ○※ | × | ※ ポートVLAN、タグVLAN、ネイティブVLANのみサポート
イーサネットリングプロテクション（EPSR） | ○ | × | × |
フォワーディングデータベース | ○ | ○ | × |
DHCP Snooping | ○※ | ○※ | × | ※ AMFゲストノードまたはAMFアプリケーションプロキシーを使用する場合のみサポート。DHCP Snooping単体での使用はサポート対象外
IP | 一般設定 | ○ | ○ | × |
IPインターフェース | ○※ | ○※ | × | ※ スタティックIP、DHCPクライアント、セカンダリーIP、ループバックインターフェースのみサポート
経路制御 | ○※ | ○※ | × | ※ インターフェース経路、スタティック経路のみサポート
ARP | ○※ | ○※ | × | ※ ARPキャッシュのみサポート
IPマルチキャスト | IGMP Snooping | ○ | ○ | × |
IPv6マルチキャスト | MLD Snooping | ○ | ○ | × |
トラフィック制御 | アクセスリスト | ○ | × | × |
ハードウェアパケットフィルター | ○ | × | × |
Quality of Service | ○ | × | × |
IP付加機能 | DHCPサーバー | ○ | × | × |
AMF | 項目全般（アプリケーションプロキシーを除く） | ○※a | ○※b | × | ※a 通常スイッチポートではメンバー、ゲストノードのみサポート ※b ハイブリッドOpenFlowポートではメンバーのみサポート
アプリケーションプロキシー | ○ | × | × |

○ ＝ 利用可能
× ＝ 利用不可

### OpenFlowとスタティックチャンネルグループの併用

OpenFlowはスタティックチャンネルグループ機能と併用することで、複数のOpenFlowポートを束ねて帯域幅を拡大するとともに、リンクの冗長性を高めることが可能です。
Note

AT-SESCでは、上位ネットワークにつながるOpenFlowポートを「アップストリームポート」として登録します。

Note

AT-SESCのアップストリームポートにスタティックチャンネルグループのポートを設定するときは、該当ポートのインターフェース名またはOpenFlowポート番号を登録してください（OpenFlowポート番号については、「OpenFlowポート番号の採番ルール」を参照）。

Note

ヘアピンリンクを使用した構成の場合、ヘアピンリンクでスタティックチャンネルグループの設定が可能です。

### OpenFlowポート番号の採番ルール

本製品からOpenFlowコントローラーへ通知されるOpenFlowポート番号は、show openflow statusコマンドから確認できますが、採番ルールは以下となります。

- 通常のOpenFlowポート

  OpenFlowポート番号　=　インターフェースインデックス番号　-　5000

  たとえば、port1.0.1の場合、インデックス番号は5001となるので、OpenFlowポート番号は1となります。
- スタティックチャンネルグループのOpenFlowポート

  OpenFlowポート番号　=　インターフェースインデックス番号　-　3500

  たとえば、sa1の場合、インデックス番号は4501となるので、OpenFlowポート番号は1001となります。

### OpenFlowクライアントポートとして利用できるポート数

PC等の端末を接続するOpenFlowクライアントポートの最大ポート数は、構成によって変化します。

最大クライアントポート数　=　筐体のポート数　-　通常スイッチポート側の使用数　-　アップリンクへつながるOpenFlowポート数

Note

ヘアピンリンクを使用した構成の場合では、上記の最大クライアントポート数から2ポート少なくなります。

以下に構成例を示します。

この構成では、「アップリンクへつながるOpenFlowポート数」は、ハイブリッドOpenFlowポートの1ポートとなります。
Note

筐体でリンクアグリゲーションを使用する場合は、そのメンバーポート数に応じて、利用可能なクライアントポート数は少なくなります。

### 設定の流れ

AT-SESC管理下で、本製品をOpenFlowスイッチとして動作させるためには、最低限下記の設定を行う必要があります。
具体的な手順については、「OpenFlowスイッチの設定」をご覧ください。

- 一部既存機能の無効化
- OpenFlowサービスの有効化
- OpenFlow内部制御用VLANの設定
- OpenFlowコントローラーと通信するための設定（コントロールプレーン）
- OpenFlowポートの設定（データプレーン）
- OpenFlowアップストリームポートの設定
- 設定完了後に再起動

## 準備

### OpenFlow機能ライセンスの適用

ライセンスの適用に関するコマンドは、通常のAlliedWare Plusシステムと同じです。
ライセンスのインストール方法については「運用・管理」/「システム」の「ライセンスキーのインストール」をご参照ください。
Note

OpenFlow機能のライセンスは、ファームウェアバージョン 5.4.7-0.x と 5.4.7-2.x のそれぞれでライセンス形態が変更されています。
変更前後のライセンスには互換性がないため、下記 (A) (B) (C) いずれかのバージョンで有効化した OpenFlow 機能ライセンスは、同一グループのバージョンでしか使用できません。

- (A) バージョン 5.4.6-x.x 以前
- (B) バージョン 5.4.7-0.x ～ 5.4.7-1.x
- (C) バージョン 5.4.7-2.x 以降

(A)から(B)、(B)から(C)のように、ライセンス有効化時と異なるグループのバージョンにファームウェアを更新する場合は、OpenFlow機能ライセンスの更新が必要になりますので、弊社窓口までご連絡ください。
なお、(B)のバージョンに更新する場合は、ヒアリングシートへのご記入が必要です。

`https://www.allied-telesis.co.jp/products/list/switch/at-fl/konyu.html
`

## OpenFlowスイッチの設定

いくつかの構成を例にして、OpenFlowスイッチとしての設定手順を説明します。
本項では、x510シリーズ機器を例に説明しています。ポート番号等は適宜読み替えてくださいますようお願いいたします。

- OpenFlowにおけるパケット転送処理について
  本製品のOpenFlowにおけるパケット転送処理は、従来のスイッチングやルーティング機能ではなく、ハードウェアアクセスリスト（ハードウェアパケットフィルター）によってハードウェア処理のパケット転送を実現しています。
  OpenFlowポートで受信したパケットは、送信元MACアドレスと宛先MACアドレスの組み合わせ1つにつき、ハードウェアアクセスリストのエントリーを1つ使用して転送を行います。たとえばOpenFlowポート配下のデバイス1台が双方向でユニキャスト通信を行う場合、ハードウェアアクセスリストのエントリーを2つ消費します。そのためOpenFlowポート配下のデバイスの通信の宛先が多いほどハードウェアアクセスリストのエントリーは消費されます。ハードウェアアクセスリストのエントリーは通信が行われると消費されますが、該当のエントリーを使用する通信が10秒間ない場合には解放されます。
  なお、パケットの種類によっては必ずソフトウェア処理でパケット転送が行われるものや、OpenFlowポート配下のデバイスにアサインするネットワークの設定によってソフトウェア処理となる場合があります。
  - ソフトウェア処理となるパケットの種類
    ARPリクエスト / ARPリプライ
    Note

    本製品にフローエントリーが登録されていない場合にAT-SESCに問い合わせを行う自発のパケット（PACKET_IN）もソフトウェア処理で転送を行います。

  - ネットワークの設定
    OpenFlowポート配下のデバイスからのブロードキャスト/マルチキャストパケットは、以下の条件によってハードウェア処理/ソフトウェア処理が決定されます。
    なお、アップストリームポートから受信したOpenFlowポート宛てのブロードキャスト/マルチキャストパケット（OpenFlowポートから送信されるブロードキャスト/マルチキャストパケット）は、いずれの場合でもつねにハードウェア処理で転送を行います。
    - AT-SESCでデバイスのネットワークをアサインする場合（ポリシー設定でVLAN ID 1～4094のネットワークを設定）
      - 設定した同一ネットワークの端末が1つのOpenFlowポートに接続している場合
        → ハードウェア処理（OpenFlowポート→アップストリームポート）
      - 設定した同一ネットワークの端末が複数のOpenFlowポートに接続している場合
        → ソフトウェア処理（OpenFlowポート⇔OpenFlowポート、OpenFlowポート→アップストリームポートの双方）
    - AT-SESCで端末のネットワークをアサインしない場合（ポリシー設定でVLAN ID 0のネットワークを設定、またはネットワークを設定しない）
      → 1つのOpenFlowポートに端末が接続、および複数のOpenFlowポートに同一のネットワークの端末が接続している場合を問わずハードウェア処理（OpenFlowポート⇔OpenFlowポート、OpenFlowポート→アップストリームポートの双方）

Note

ライセンス有効化時と異なるグループのバージョンにファームウェアを更新する場合、以下の手順を実施してください。
1. boot config-fileコマンドをno形式で実行し、コンフィグを初期状態（flash:/default.cfg）に変更
2. ファームウェアバージョンを変更（手順については、「運用・管理」/「システム」の「ファームウェアの更新手順」をご参照ください）
3. licenseコマンドにて、対応するファームウェアバージョンで使用可能なライセンスを有効にする
4. boot config-fileコマンドにてコンフィグを設定する
5. 再起動する

Note

下記の構成例には、以下に述べる共通の注意事項、制限事項があります。

- PC等の端末を接続するOpenFlowクライアントポートでは、VLANタグ付きパケットは未サポートです。
- OpenFlowポートではジャンボフレームは未サポートです。
- OpenFlowポートではMACアドレススラッシングプロテクションの併用は未サポートですが、MACアドレススラッシングプロテクションは初期状態で有効なため、OpenFlowポートではthrash-limitingコマンドのactionパラメーターにnoneを指定して、MACアドレススラッシング検出時の動作を無効化してください。
- スイッチ本体の負荷が高くなると、一時的にOpenFlowポートにおける通信速度が低下することがあります。
- ハードウェアで処理が可能なフロー数を超過して通信が行われると、超過分の通信はソフトウェア処理となり通信速度は著しく低下します。
  なお、x530/x530LシリーズとGS980MXシリーズでは、platform acls-to-vlanclassifiersコマンドで more-acls を指定することにより、ハードウェアで処理が可能なフローを工場出荷時状態より多く利用することができます。
- ハードウェアで処理が可能なフロー数の上限を超えてソフトウェア処理となった通信は、通信量に応じてハードウェア処理に切り替わります。
- 通信速度がワイヤーレートから数パーセント程度低下する場合があります。
- show openflow rulesコマンドで表示されるフローエントリーの「set_field:」の値には、実際のVLAN IDに4096を足したものが表示されます。
- show openflow rulesコマンドで表示される「table_id=254」のフローは、AT-SESCの「OpenFlowスイッチフロー一覧」には表示されません。AT-SESC 上で表示されるのは、AT-SESC が本製品に送信したフローのみです。「table_id=254」のフローは、本製品がデフォルトで登録しているフロー（AT-SESCと接続されていない状態でも登録されるフロー）のため、AT-SESC上では表示されません。
- OpenFlowポートに対するQ-BRIDGE-MIBのdot1qPortIngressFilteringのSNMP Setは、未サポートです。
- OpenFlow機能ライセンスを適用すると、OpenFlowで使用する内部インターフェース「of0」が作成され、show interfaceコマンドやshow ip interfaceコマンドで表示されるようになりますが、「of0」インターフェースに対しては無効化やIPアドレス等の設定を行わないでください。
- OpenFlowスイッチとAT-SESCは別セグメントの構成も可能です。

Note

ハイブリッドOpenFlowスイッチにおける注意事項、制限事項は以下のとおりです。

- 通常ドメイン（通常スイッチポート）とOpenFlowドメイン（OpenFlowポート）で同一のVLANを使用することはできません。

### 純粋なOpenFlowスイッチの設定例

本製品を純粋なOpenFlowスイッチとして使用する場合の設定手順です。
ここでは、ポート1.0.5～1.0.28をOpenFlowポート（OpenFlowデータプレーン）に設定し、そのうちポート1.0.5を上位ネットワークに接続するアップストリームポートとして使用します。
コントローラーとの通信（コントロールプレーン）はvlan1上の通常スイッチポートで行います。

本製品のOpenFlow設定

コントロールプレーン
割り当てポート | スイッチポート1.0.1～1.0.4（通常スイッチポート）
割り当てVLAN | vlan1
VLANインターフェースIPアドレス | 192.168.1.1/24
データプレーン
割り当てポート | スイッチポート1.0.5～1.0.28（OpenFlowポート）
OpenFlow内部制御用VLAN | VLAN 4090
アップストリームポート | スイッチポート1.0.5（OpenFlowポート）

Note

VLAN 4090はパケット転送には使用しません。OpenFlowポートも初期状態ではデフォルトVLAN（VID=1）がネイティブVLANに設定されているため、通常スイッチポートのvlan1で受信したパケットがOpenFlowポートにフラッディングされないようにするために本設定を行います。

OpenFlowコントローラー（AT-SESC）の設定

設定項目 | 内容
IPアドレス | 192.168.1.10
OpenFlow TCPポート番号 | 6653
本OpenFlowスイッチに対するアップストリームポート設定 | port1.0.5
デバイス認証設定 | OpenFlowポート配下のデバイス(PC) | 以下どちらかを設定 ・VLAN ID "100～104" いずれかのネットワークにアサイン ・VLAN ID "0" または VLAN IDを指定しないネットワークにアサイン

Note

AT-SESCから設定されるフローエントリーでは、デバイスにアサインするネットワークの設定によって、デバイスのパケットがOpenFlowのアップストリームポートから送信される際の動作が変わります。

- VLAN ID（1～4094）を指定したネットワークアサインの場合：OpenFlowのアップストリームポートから送信される際に該当VIDのVLANタグが付与されます。
- VLAN ID "0" または VLAN ID を指定しないネットワークの場合：OpenFlowのアップストリームポートから送信される際に VLANタグは付与されません。上記構成例では対向アップリンクスイッチ側の設定により、タグなしパケットはVLAN ID 105として扱われます。

Note

AT-SESCの基本的な使い方や、アップストリームポート設定、ネットワークのアサイン方法等、詳細はAT-SESCのマニュアルをご覧ください。

1. OpenFlow機能とVCS機能は併用できないため、VCS対応機種をOpenFlowスイッチとして設定する場合は、事前にスタック接続を解除し、VCS機能を無効化して設定を保存した上で、スイッチを再起動してください。

       awplus# configure terminal
       awplus(config)# no stack 1 enable
       Warning: this will disable the stacking hardware on member-1.
       Are you sure you want to continue? (y/n):  y ↓
       10:18:51 awplus VCS[824]: Deactivating Stacking Ports on stack member 1
       awplus(config)# end
       awplus#
       awplus# write memory
       Building configuration...
       [OK]
       awplus# reboot
       reboot system? (y/n): y ↓

2. OpenFlow機能の動作に必要なOpenFlowサービスを有効にします。これにはservice openflowコマンドを使います。

       awplus# configure terminal
       awplus(config)# service openflow

3. OpenFlowポートでパケット転送に使用するVLANを作成します。

       awplus(config)# vlan database
       awplus(config-vlan)# vlan 100-104

   Note

   OpenFlowポートで使用するVLANはフロー情報にもとづき自動的に作成されますが、後の手順で該当VLANのMLD Snoopingを無効化するにはあらかじめVLANを作成しておく必要があるため、ここで作成しています。

4. OpenFlowの内部制御用VLANに割り当てるVLANを作成し、割り当てます。ここで設定するVLANは、パケット転送には使用できません。

       awplus(config-vlan)# vlan 4090
       awplus(config-vlan)# exit
       awplus(config)# openflow native vlan 4090

   Note

   内部制御用VLANを設定する前に、当該のVLANを作成しておく必要があります。

5. コントローラーとの通信（コントロールプレーン）で使用するVLANにIPアドレスを設定します。

       awplus(config)# interface vlan1
       awplus(config-if)# ip address 192.168.1.1/24
       awplus(config-if)# exit

   Note

   x930シリーズ、x950シリーズでは、コントロールプレーンとしてマネージメントポート（eth0）を使用することもできます。その場合は eth0 にIPアドレスを設定してください。

6. OpenFlowコントローラー（AT-SESC）のIPアドレスとTCPポート番号を指定します。

       awplus(config)# openflow controller tcp 192.168.1.10 6653

7. ポート1.0.5～1.0.28を通常スイッチポートからOpenFlowポートに変更します。
   また、OpenFlowポートでの併用が未サポートのMACアドレススラッシングプロテクションを無効化します。

       awplus(config)# interface port1.0.5-1.0.28
       awplus(config-if)# openflow
       awplus(config-if)# thrash-limiting action none
       awplus(config-if)# exit

   Note

   openflowコマンドの実行後に該当ポートの設定を変更した場合は、設定を保存しスイッチを再起動してください。

   Note

   OpenFlowポートにはopenflow native vlanコマンドで設定したOpenFlowの内部制御用VLANが自動でアサインされます。

8. OpenFlowポートから制御パケットが送出されないよう、下記の設定を行います。
   - システム全体：RSTP、MLD Snoopingを無効化
   - OpenFlowポートでパケット転送に使用するVLAN：MLD Snoopingを無効化
   - OpenFlowの内部制御用VLAN：IGMP Snoopingのトポロジー変更時Query要求機能とMLD Snoopingを無効化

       awplus(config)# no spanning-tree rstp enable
       awplus(config)# no ipv6 mld snooping
       awplus(config)# interface vlan100-104
       awplus(config-if)# no ipv6 mld snooping
       awplus(config-if)# exit
       awplus(config)# interface vlan4090
       awplus(config-if)# no ip igmp snooping tcn query solicit
       awplus(config-if)# no ipv6 mld snooping
       awplus(config-if)# exit

   Note

   筐体でLDF機能を有効にしている場合は、全OpenFlowポート上で LDFを無効に設定してください。

9. （x530/x530L、GS980MXシリーズのみ）
   ハードウェアで処理が可能なフロー数を超過して通信が行われると、超過分の通信はソフトウェア処理となり通信速度は著しく低下します。
   x530/x530LシリーズとGS980MXシリーズにおいて、ハードウェア処理するフローを増やしたい場合は、platform acls-to-vlanclassifiersコマンドで more-acls を指定してください。

       awplus(config)# platform acls-to-vlanclassifiers more-acls

10. 設定を保存して再起動してください。

        awplus(config)# end
        awplus# write memory
        Building configuration...
        [OK]
        awplus# reboot
        reboot system? (y/n): y ↓

設定は以上です。

### ハイブリッドOpenFlowスイッチの設定例

ハイブリッドOpenFlowスイッチとして使用する場合の設定手順です。
ここでは、ポート1.0.5～1.0.28をOpenFlowポート（OpenFlowデータプレーン）に設定し、そのうちポート1.0.5を上位ネットワークに接続するアップストリームポートとして使用します。ポート1.0.1～1.0.4は通常スイッチポートのままとし、従来通信に使用します。
また本例では、アップストリームポートのポート1.0.5を、コントローラーとの通信（コントロールプレーン）および通常スイッチポートのアップリンクとしても使うため、同ポートをハイブリッドOpenFlowポートに設定します。

本製品のOpenFlow設定

コントロールプレーン
割り当てポート | スイッチポート1.0.5（ハイブリッドOpenFlowポート）
割り当てVLAN | vlan1
VLANインターフェースIPアドレス | 192.168.1.1/24
データプレーン
割り当てポート | スイッチポート1.0.6～1.0.28（OpenFlowポート） スイッチポート1.0.5（ハイブリッドOpenFlowポート）
OpenFlow内部制御用VLAN | VLAN 4090
アップストリームポート | スイッチポート1.0.5（ハイブリッドOpenFlowポート）
通常スイッチポート
割り当てポート | スイッチポート1.0.1～1.0.4（通常スイッチポート） スイッチポート1.0.5（ハイブリッドOpenFlowポート）
割り当てVLAN | vlan10

Note

VLAN 4090はパケット転送には使用しません。OpenFlowポートも初期状態ではデフォルトVLAN（VID=1）がネイティブVLANに設定されているため、通常スイッチポートのvlan1で受信したパケットがOpenFlowポートにフラッディングされないようにするために本設定を行います。

OpenFlowコントローラー（AT-SESC）の設定

設定項目 | 内容
IPアドレス | 192.168.1.10
OpenFlow TCPポート番号 | 6653
本OpenFlowスイッチに対するアップストリームポート設定 | port1.0.5
デバイス認証設定 | OpenFlowポート配下のデバイス(PC) | 以下どちらかを設定 ・VLAN ID "100～104" いずれかのネットワークにアサイン ・VLAN ID "0" または VLAN IDを指定しないネットワークにアサイン

Note

AT-SESCから設定されるフローエントリーでは、デバイスにアサインするネットワークの設定によって、デバイスのパケットがOpenFlowのアップストリームポートから送信される際の動作が変わります。

- VLAN ID（1～4094）を指定したネットワークアサインの場合：OpenFlowのアップストリームポートから送信される際に該当VIDのVLANタグが付与されます。
- VLAN ID "0" または VLAN ID を指定しないネットワークの場合：OpenFlowのアップストリームポートから送信される際に VLANタグは付与されません。上記構成例では対向アップリンクスイッチ側の設定により、タグなしパケットはVLAN ID 105として扱われます。

Note

AT-SESCの基本的な使い方や、アップストリームポート設定、ネットワークのアサイン方法等、詳細はAT-SESCのマニュアルをご覧ください。

1. OpenFlow機能とVCS機能は併用できないため、VCS対応機種をOpenFlowスイッチとして設定する場合は、事前にスタック接続を解除し、VCS機能を無効化して設定を保存した上で、スイッチを再起動してください。

       awplus# configure terminal
       awplus(config)# no stack 1 enable
       Warning: this will disable the stacking hardware on member-1.
       Are you sure you want to continue? (y/n):  y ↓
       10:18:51 awplus VCS[824]: Deactivating Stacking Ports on stack member 1
       awplus(config)# end
       awplus#
       awplus# write memory
       Building configuration...
       [OK]
       awplus# reboot
       reboot system? (y/n): y ↓

2. OpenFlow機能の動作に必要なOpenFlowサービスを有効にします。これにはservice openflowコマンドを使います。

       awplus# configure terminal
       awplus(config)# service openflow

3. OpenFlowポートでパケット転送に使用するVLANを作成します。

       awplus(config)# vlan database
       awplus(config-vlan)# vlan 100-104

   Note

   OpenFlowポートで使用するVLANはフロー情報にもとづき自動的に作成されますが、後の手順で該当VLANのMLD Snoopingを無効化するにはあらかじめVLANを作成しておく必要があるため、ここで作成しています。

4. 通常スイッチポートでパケット転送に使用するVLAN10を作成し、ポート1.0.1～1.0.4にVLANを追加します。

       awplus(config-vlan)# vlan 10
       awplus(config-vlan)# exit
       awplus(config)# interface port1.0.1-1.0.4
       awplus(config-if)# switchport access vlan 10
       awplus(config-if)# exit

5. OpenFlowの内部制御用VLANに割り当てるVLANを作成し、割り当てます。ここで設定するVLANは、パケット転送には使用できません。

       awplus(config)# vlan database
       awplus(config-vlan)# vlan 4090
       awplus(config-vlan)# exit
       awplus(config)# openflow native vlan 4090

   Note

   内部制御用VLANを設定する前に、当該のVLANを作成しておく必要があります。

6. コントローラーとの通信（コントロールプレーン）で使用するVLANにIPアドレスを設定します。

       awplus(config)# interface vlan1
       awplus(config-if)# ip address 192.168.1.1/24
       awplus(config-if)# exit

7. OpenFlowコントローラー（AT-SESC）のIPアドレスとTCPポート番号を指定します。

       awplus(config)# openflow controller tcp 192.168.1.10 6653

8. ポート1.0.5～1.0.28を通常スイッチポートからOpenFlowポートに変更します。
   また、OpenFlowポートでの併用が未サポートのMACアドレススラッシングプロテクションを無効化します。

       awplus(config)# interface port1.0.5-1.0.28
       awplus(config-if)# openflow
       awplus(config-if)# thrash-limiting action none
       awplus(config-if)# exit

   Note

   openflowコマンドの実行後に該当ポートの設定を変更した場合は、設定を保存しスイッチを再起動してください。

   Note

   OpenFlowポートにはopenflow native vlanコマンドで設定したOpenFlowの内部制御用VLANが自動でアサインされます。

9. OpenFlowポートから制御パケットが送出されないよう、下記の設定を行います。
   - システム全体：RSTP、MLD Snoopingを無効化
   - OpenFlowポートでパケット転送に使用するVLAN：MLD Snoopingを無効化
   - OpenFlowの内部制御用VLAN：IGMP Snoopingのトポロジー変更時Query要求機能とMLD Snoopingを無効化

       awplus(config)# no spanning-tree rstp enable
       awplus(config)# no ipv6 mld snooping
       awplus(config)# interface vlan100-104
       awplus(config-if)# no ipv6 mld snooping
       awplus(config-if)# exit
       awplus(config)# interface vlan4090
       awplus(config-if)# no ip igmp snooping tcn query solicit
       awplus(config-if)# no ipv6 mld snooping
       awplus(config-if)# exit

   Note

   筐体でLDF機能を有効にしている場合は、全OpenFlowポート上で LDFを無効に設定してください。

10. アップストリームポートとして使用するポート1.0.5をタグ付きポートに設定し、コントロールプレーン用VLANと通常スイッチポート用VLANを追加します。また、イングレスフィルタリングを無効にして、その他の任意のVLANタグを受信できるようにします。
    タグ付きポートに設定したOpenFlowポートは、ハイブリッドOpenFlowポートになります。

        awplus(config)# interface port1.0.5
        awplus(config-if)# switchport mode trunk ingress-filter disable
        awplus(config-if)# switchport trunk allowed vlan add 1,10
        awplus(config-if)# exit

    Note

    ハイブリッドOpenFlowポートでは、switchport trunk allowed vlanで許可したVLANとAMF用VLANのタグ付きトラフィックはOpenFlowで制御せずに、通常のスイッチング処理を行います。それ以外のトラフィックは通常のOpenFlowポートと同様、OpenFlowによって制御します。

11. （x530/x530L、GS980MXシリーズのみ）
    ハードウェアで処理が可能なフロー数を超過して通信が行われると、超過分の通信はソフトウェア処理となり通信速度は著しく低下します。
    x530/x530LシリーズとGS980MXシリーズにおいて、ハードウェア処理するフローを増やしたい場合は、platform acls-to-vlanclassifiersコマンドで more-acls を指定してください。

        awplus(config)# platform acls-to-vlanclassifiers more-acls

12. 設定を保存して再起動してください。

        awplus(config)# end
        awplus# write memory
        Building configuration...
        [OK]
        awplus# reboot
        reboot system? (y/n): y ↓

設定は以上です。

### ヘアピンリンクを使用するOpenFlowスイッチの設定例

ヘアピンリンクの接続は、OpenFlowポートのアップストリームポートと通常スイッチポート間で行います。

本製品のOpenFlow設定

設定項目 | 内容
コントロールプレーン設定
割り当てポート | スイッチポート1.0.1
割り当てVLAN | VLAN 1
VLANインターフェースIPアドレス | 192.168.1.1/24
OpenFlowポート番号 | 6653
データプレーンポート設定
割り当てポート | スイッチポート1.0.5～1.0.28
OpenFlow内部制御用VLAN | VLAN 4090
アップストリームポート | スイッチポート1.0.5
ヘアピンリンクのポート設定
割り当てポート | スイッチポート1.0.4 | 通常スイッチポート
スイッチポート1.0.5 | OpenFlowポート
VLAN設定 (通常スイッチポート) | Tag VLAN 100～104, Native VLAN 105

Note

VLAN 4090はパケット転送には使用しません。OpenFlowポートもデフォルト状態ではデフォルトVLAN(VID=1)がネイティブVLANに設定されているため、通常スイッチポートのVLAN 1で受信したフラッディングされるパケットがOpenFlowポートにフラッディングされないようにするために本設定を行います。

OpenFlowコントローラー（AT-SESC）の設定

設定項目 | 内容
IPアドレス | 192.168.1.10
OpenFlow ポート番号 | 6653
本OpenFlowスイッチに対するアップストリームポート設定 | port1.0.5
デバイス認証設定 | OpenFlowポート配下のデバイス(PC) | 以下どちらかを設定 ・VLAN ID "100～104" いずれかのネットワークにアサイン ・VLAN ID "0" または VLAN IDを指定しないネットワークにアサイン

Note

AT-SESCから設定されるフローエントリーでは、デバイスにアサインするネットワークの設定によって、デバイスのパケットがOpenFlowのアップストリームポートから送信される際の動作が変わります。

- VLAN ID（1～4094）を指定したネットワークアサインの場合：OpenFlowのアップストリームポートから送信される際に該当VIDのVLANタグが付与されます。
- VLAN ID "0" または VLAN ID を指定しないネットワークの場合：OpenFlowのアップストリームポートから送信される際に VLANタグは付与されません。上記構成例では対向AMFマスター側の設定により、タグなしパケットはVLAN ID 105として扱われます。

Note

AT-SESCの基本的な使い方や、アップストリームポート設定、ネットワークのアサイン方法等、詳細はAT-SESCのマニュアルをご覧ください。

1. OpenFlow機能とVCS機能を併用することはできません。VCS対応機種をOpenFlowスイッチとして設定する場合は、事前にスタック接続を解除し、スイッチを再起動してください。

       awplus# configure terminal
       awplus(config)# no stack 1 enable
       Warning: this will disable the stacking hardware on member-1.
       Are you sure you want to continue? (y/n): y
       10:18:51 awplus VCS[824]: Deactivating Stacking Ports on stack member 1
       awplus(config)# end
       awplus#
       awplus# write memory
       Building configuration...
       [OK]
       awplus# reboot
       reboot system? (y/n): y

2. OpenFlow機能の動作に必要なOpenFlowサービスを有効にします。これにはservice openflowコマンドを使います。

       awplus# configure terminal
       awplus(config)# service openflow

3. OpenFlowポートおよび通常スイッチポートでパケット転送に使用するVLANを作成します。

       awplus(config)# vlan database
       awplus(config-vlan)# vlan 100-105

4. OpenFlowの内部制御用VLANに割り当てるVLANを作成し、割り当てます。ここで設定するVLANは、パケット転送には使用できません。

       awplus(config-vlan)# vlan 4090
       awplus(config-vlan)# exit
       awplus(config)# openflow native vlan 4090

   Note

   内部制御用VLANを設定する前に、当該のVLANを作成しておく必要があります。

5. コントローラーとの通信（コントロールプレーン）で使用するVLANにIPアドレスを設定します。

       awplus(config)# interface vlan1
       awplus(config-if)# ip address 192.168.1.1/24
       awplus(config-if)# exit

   Note

   x930シリーズ、x950シリーズでは、コントロールプレーンとしてマネージメントポート（eth0）を使用することもできます。その場合は eth0 にIPアドレスを設定してください。

6. OpenFlowコントローラー(AT-SESC)のIPアドレスとTCPポート番号を指定します。

       awplus(config)# openflow controller tcp 192.168.1.10 6653

7. ヘアピンリンクのOpenFlowポート（アップストリームポート）に対し、マルチキャスト用の設定を行います。

       awplus(config)# interface port1.0.5
       awplus(config-if)# no ip igmp trusted query
       awplus(config-if)# no ip igmp trusted routermode
       awplus(config-if)# exit

8. ポート1.0.5～1.0.28を通常スイッチポートからOpenFlowポートに変更します。
   また、OpenFlowポートでの併用はサポート対象外のため、MACアドレススラッシングプロテクションを無効化します。

       awplus(config)# interface port1.0.5-1.0.28
       awplus(config-if)# openflow
       awplus(config-if)# thrash-limiting action none
       awplus(config-if)# exit

   Note

   openflowコマンドの実行後に該当ポートの設定を変更した場合は、設定を保存しスイッチを再起動してください。

   Note

   OpenFlowポートにはopenflow native vlanコマンドで設定したOpenFlowの内部制御用VLANが自動でアサインされます。

9. OpenFlowポートから制御パケットが送出されないよう、下記の設定を行います。
   - システム全体：RSTP、MLD Snoopingを無効化
   - OpenFlowポートでパケット転送に使用するVLAN：MLD Snoopingを無効化
   - OpenFlowの内部制御用VLAN：IGMP Snoopingのトポロジー変更時、Query要求機能とMLD Snoopingを無効化

       awplus(config)# no spanning-tree rstp enable
       awplus(config)# no ipv6 mld snooping
       awplus(config)# interface vlan100-105
       awplus(config-if)# no ipv6 mld snooping
       awplus(config-if)# exit

       awplus(config)# interface vlan4090
       awplus(config-if)# no ip igmp snooping tcn query solicit
       awplus(config-if)# no ipv6 mld snooping
       awplus(config-if)# exit

   Note

   筐体でLDF機能を有効にしている場合は、全OpenFlowポート上でLDFを無効に設定してください。

10. ヘアピンリンクの通常スイッチポートに対し、OpenFlowのアップストリームポートから送られるタグ付き・タグ無しパケットを受信するための設定を行います。

        awplus(config)# interface port1.0.4
        awplus(config-if)# switchport mode trunk
        awplus(config-if)# switchport trunk allow vlan add 100-104
        awplus(config-if)# switchport trunk native vlan 105
        awplus(config-if)# exit

11. アップリンク側との接続ポートをタグポートにします。

        awplus(config)# interface port1.0.3
        awplus(config-if)# switchport mode trunk
        awplus(config-if)# switchport trunk allow vlan add 100-105
        awplus(config-if)# exit

    Note

    OpenFlowポートで タグ付きパケットを受信すると ポートカウンター上で破棄カウンターが増加します。そのため、OpenFlowのアップストリームではアップリンクからのタグ付きパケットにより破棄カウンターが上昇しますが、実際には破棄されません。

12. （x530/x530L、GS980MXシリーズのみ）
    ハードウェアで処理が可能なフロー数を超過して通信が行われると、超過分の通信はソフトウェア処理となり通信速度は著しく低下します。
    x530/x530LシリーズとGS980MXシリーズにおいて、ハードウェア処理するフローを増やしたい場合は、platform acls-to-vlanclassifiersコマンドで more-acls を指定してください。

        awplus(config)# platform acls-to-vlanclassifiers more-acls

13. 設定を保存して再起動してください

        awplus(config)# end
        awplus# write memory
        Building configuration...
        [OK]
        awplus# reboot
        reboot system? (y/n): y ↓

設定は以上です。

### AMF機能とOpenFlow機能の併用

本製品をAutonomous Management Framework（AMF）ネットワークのメンバーとして管理・保守しつつ、OpenFlowスイッチとしても運用する場合の設定を説明します。
本項では、x510シリーズ機器にAMF機能とOpenFlow機能を設定する場合を例に説明します。

本製品のOpenFlow設定

コントロールプレーン
割り当てポート | スイッチポート1.0.5（ハイブリッドOpenFlowポート）
割り当てVLAN | vlan1
VLANインターフェースIPアドレス | 192.168.1.1/24
データプレーン
割り当てポート | スイッチポート1.0.6～1.0.28（OpenFlowポート） スイッチポート1.0.5（ハイブリッドOpenFlowポート）
OpenFlow内部制御用VLAN | VLAN 4090
アップストリームポート | スイッチポート1.0.5（ハイブリッドOpenFlowポート）
通常スイッチポート
割り当てポート | スイッチポート1.0.1～1.0.4（通常スイッチポート） スイッチポート1.0.5（ハイブリッドOpenFlowポート）
割り当てVLAN | vlan10

Note

ヘアピンリンクの接続は、本製品とAT-SESCのすべての設定が完了してから行ってください。

Note

VLAN 4090はパケット転送には使用しません。OpenFlowポートも初期状態ではデフォルトVLAN（VID=1）がネイティブVLANに設定されているため、通常スイッチポートのvlan1で受信したパケットがOpenFlowポートにフラッディングされないようにするために本設定を行います。

OpenFlowコントローラー（AT-SESC）の設定

設定項目 | 内容
IPアドレス | 192.168.1.10
OpenFlow TCPポート番号 | 6653
本OpenFlowスイッチに対するアップストリームポート設定 | port1.0.5
デバイス認証設定 | OpenFlowポート配下のデバイス(PC) | 以下どちらかを設定 ・VLAN ID "100～104" いずれかのネットワークにアサイン ・VLAN ID "0" または VLAN IDを指定しないネットワークにアサイン

本製品のAMF設定

設定項目 | 内容
AMFネットワーク名 | atmf1
AMF接続ポート（AMFリンク） | スイッチポート1.0.5（ハイブリッドOpenFlowポート）

Note

AT-SESCから設定されるフローエントリーでは、デバイスにアサインするネットワークの設定によって、デバイスのパケットがOpenFlowのアップストリームポートから送信される際の動作が変わります。

- VLAN ID（1～4094）を指定したネットワークアサインの場合：OpenFlowのアップストリームポートから送信される際に該当VIDのVLANタグが付与されます。
- VLAN ID "0" または VLAN ID を指定しないネットワークの場合：OpenFlowのアップストリームポートから送信される際に VLANタグは付与されません。上記構成例では対向AMFマスター側の設定により、タグなしパケットはVLAN ID 105として扱われます。

Note

AT-SESCの基本的な使い方や、アップストリームポート設定、ネットワークのアサイン方法等、詳細はAT-SESCのマニュアルをご覧ください。

1. AMFネットワーク名を設定し、AMF接続ポート（AMFリンク）を作成します。

       awplus# configure terminal
       awplus(config)# atmf network-name atmf1
       awplus(config)# interface port1.0.5
       awplus(config-if)# switchport atmf-link
       awplus(config-if)# exit

2. OpenFlow機能とVCS機能は併用できないため、VCS対応機種をOpenFlowスイッチとして設定する場合は、事前にスタック接続を解除し、VCS機能を無効化して設定を保存した上で、スイッチを再起動してください。

       awplus(config)# no stack 1 enable
       Warning: this will disable the stacking hardware on member-1.
       Are you sure you want to continue? (y/n): y ↓
       10:18:51 awplus VCS[824]: Deactivating Stacking Ports on stack member 1
       awplus(config)# end
       awplus#
       awplus# write memory
       Building configuration...
       [OK]
       awplus# reboot
       reboot system? (y/n): y ↓

3. OpenFlow機能の動作に必要なOpenFlowサービスを有効にします。これにはservice openflowコマンドを使います。

       awplus# configure terminal
       awplus(config)# service openflow

4. OpenFlowポートでパケット転送に使用するVLANを作成します。

       awplus(config)# vlan database
       awplus(config-vlan)# vlan 100-104

   Note

   OpenFlowポートで使用するVLANはフロー情報にもとづき自動的に作成されますが、後の手順で該当VLANのMLD Snoopingを無効化するにはあらかじめVLANを作成しておく必要があるため、ここで作成しています。

5. 通常スイッチポートでパケット転送に使用するVLAN10を作成し、ポート1.0.1～1.0.4にVLANを追加します。

       awplus(config-vlan)# vlan 10
       awplus(config-vlan)# exit
       awplus(config)# interface port1.0.1-1.0.4
       awplus(config-if)# switchport access vlan 10
       awplus(config-if)# exit

6. OpenFlowの内部制御用VLANに割り当てるVLANを作成し、割り当てます。ここで設定するVLANは、パケット転送には使用できません。

       awplus(config)# vlan database
       awplus(config-vlan)# vlan 4090
       awplus(config-vlan)# exit
       awplus(config)# openflow native vlan 4090

   Note

   内部制御用VLANを設定する前に、当該のVLANを作成しておく必要があります。

7. コントローラーとの通信（コントロールプレーン）で使用するVLANにIPアドレスを設定します。

       awplus(config)# interface vlan1
       awplus(config-if)# ip address 192.168.1.1/24
       awplus(config-if)# exit

8. OpenFlowコントローラー（AT-SESC）のIPアドレスとTCPポート番号を指定します。

       awplus(config)# openflow controller tcp 192.168.1.10 6653

9. ポート1.0.5～1.0.28を通常スイッチポートからOpenFlowポートに変更します。
   また、OpenFlowポートでの併用が未サポートのMACアドレススラッシングプロテクションを無効化します。

       awplus(config)# interface port1.0.5-1.0.28
       awplus(config-if)# openflow
       awplus(config-if)# thrash-limiting action none
       awplus(config-if)# exit

   Note

   openflowコマンドの実行後に該当ポートの設定を変更した場合は、設定を保存しスイッチを再起動してください。

   Note

   OpenFlowポートにはopenflow native vlanコマンドで設定したOpenFlowの内部制御用VLANが自動でアサインされます。

10. OpenFlowポートから制御パケットが送出されないよう、下記の設定を行います。
    - システム全体：RSTP、MLD Snoopingを無効化
    - OpenFlowポートでパケット転送に使用するVLAN：MLD Snoopingを無効化
    - OpenFlowの内部制御用VLAN：IGMP Snoopingのトポロジー変更時Query要求機能とMLD Snoopingを無効化

        awplus(config)# no spanning-tree rstp enable
        awplus(config)# no ipv6 mld snooping
        awplus(config)# interface vlan100-104
        awplus(config-if)# no ipv6 mld snooping
        awplus(config-if)# exit
        awplus(config)# interface vlan4090
        awplus(config-if)# no ip igmp snooping tcn query solicit
        awplus(config-if)# no ipv6 mld snooping
        awplus(config-if)# exit

    Note

    筐体でLDF機能を有効にしている場合は、全OpenFlowポート上で LDFを無効に設定してください。

11. アップストリームポートとして使用するポート1.0.5をタグ付きポートに設定し、コントロールプレーン用VLANと通常スイッチポート用VLANを追加します。また、イングレスフィルタリングを無効にして、その他の任意のVLANタグを受信できるようにします。
    タグ付きポートに設定したOpenFlowポートは、ハイブリッドOpenFlowポートになります。

        awplus(config)# interface port1.0.5
        awplus(config-if)# switchport mode trunk ingress-filter disable
        awplus(config-if)# switchport trunk allowed vlan add 1,10
        awplus(config-if)# exit

    Note

    ハイブリッドOpenFlowポートでは、switchport trunk allowed vlanで許可したVLANとAMF用VLANのタグ付きトラフィックはOpenFlowで制御せずに、通常のスイッチング処理を行います。それ以外のトラフィックは通常のOpenFlowポートと同様、OpenFlowによって制御します。

12. （x530/x530L、GS980MXシリーズのみ）
    ハードウェアで処理が可能なフロー数を超過して通信が行われると、超過分の通信はソフトウェア処理となり通信速度は著しく低下します。
    x530/x530LシリーズとGS980MXシリーズにおいて、ハードウェア処理するフローを増やしたい場合は、platform acls-to-vlanclassifiersコマンドで more-acls を指定してください。

        awplus(config)# platform acls-to-vlanclassifiers more-acls

13. 設定を保存して再起動してください。

        awplus(config)# end
        awplus# write memory
        Building configuration...
        [OK]
        awplus# reboot
        reboot system? (y/n): y ↓

設定は以上です。

## その他の設定

### コントローラーとの接続が失われた場合の動作

コントローラーとの接続が失われた場合（コネクションインタラプション）の動作は、openflow failmode standaloneコマンドとopenflow failmode secure non-rule-expiredコマンドの設定により次の3つから選択できます。

- standalone/secure non-rule-expired動作無効 - 既存のフローエントリーにしたがって動作（初期設定）
- standalone動作有効 - OpenFlowポートで通常のL2スイッチングの単独動作（タグなしパケットのみ転送）
- secure non-rule-expired動作有効 - 既存のフローエントリーがタイムアウトすることなく動作

standalone/secure non-rule-expired動作無効時（初期設定）の動作は次のとおりです。

- コントローラーとの接続が失われたと判断した後も、すでにOpenFlowポートに接続していたデバイスのパケットは既存のフローエントリーにしたがって転送を行います。ただし、既存のフローエントリーがタイムアウトした後はパケットを破棄します。
- 新規でOpenFlowポートに接続したデバイスのパケットは破棄します。
- 接続が失われた後もコントローラーとの接続を試行し続け、接続が回復した場合は通常のOpenFlowスイッチとしての動作に戻ります。

standalone動作有効時の動作は次のとおりです。

- コントローラーとの接続が失われたと判断した場合、すでにOpenFlowポートに接続していたデバイスのフローエントリーは全て削除されOpenFlowポートでは本製品単独で通常のL2スイッチング動作を行うようになります。
  （OpenFlowポートではタグなしパケットしか転送できません）
- 新規でOpenFlowポートに接続したデバイスのパケットは上記のOpenFlowポートのL2スイッチング動作にしたがって転送を行います。
- 単独動作中もコントローラーとの接続を試行し続け、接続が回復した場合は単独動作を停止して通常のOpenFlowスイッチとしての動作に戻ります。

standalone動作を有効にするには、openflow failmode standaloneコマンドを通常形式で実行します。

    awplus(config)# openflow failmode standalone

standalone動作を無効にするには、no openflow failmodeを実行します。

    awplus(config)# no openflow failmode

secure non-rule-expired動作有効時の動作は次のとおりです。

- コントローラーとの接続が失われたと判断した後も、すでにOpenFlowポートに接続していたデバイスのパケットは既存のフローエントリーにしたがって転送を行います。
- 既存のフローエントリーがタイムアウトすることなく、コントローラーとの接続を試行し続けます。
- 新規でOpenFlowポートに接続したデバイスのパケットは破棄します。
- 接続が回復した場合は通常のOpenFlowスイッチとしての動作に戻ります。

secure non-rule-expired動作を有効にするには、openflow failmode secure non-rule-expiredコマンドを通常形式で実行します。

    awplus(config)# openflow failmode secure non-rule-expired

secure non-rule-expired動作を無効にするには、no openflow failmodeを実行します。

    awplus(config)# no openflow failmode

本製品は、「疎通確認間隔 × 3」の期間、コントローラーから1つもメッセージを受信しなかった場合に接続が失われたと判断します。
疎通確認間隔はopenflow inactivityコマンドで変更できます。初期設定は10秒です。

    awplus(config)# openflow inactivity 5

### コントロールプレーンの暗号化

OpenFlowコントローラーとの通信（コントロールプレーン）方式としては、次の2種類をサポートしています。

- TCP（暗号化なし）
- TLS（暗号化あり）

Note

AT-SecureEnterpriseSDN Controller（AT-SESC）は、バージョン1.3.1の時点ではTLS接続に未対応です。

TCPを使う場合は、前記設定例のように、openflow controllerコマンドのPROTOCOLパラメーターでtcpを指定します。

    awplus(config)# openflow controller tcp 192.168.1.10 6653

TLSを使う場合は、本製品自身のTLS証明書を用意し、これらを使うように設定した上で、openflow controllerコマンドのPROTOCOLパラメーターに ssl を指定します。
TLS証明書は、ローカルCAが発行したもの、外部CAが発行したもののどちらでも使用可能です。
以下、それぞれの場合について、コントローラーとTLSで接続するための手順を説明します。
前記設定例をTLS接続に変更する場合は、各設定例の `openflow controller tcp 192.168.1.10 6653` の部分を以下の設定に置き換えてください。

#### ローカルCAが発行した証明書を使う場合

1. ローカルCA機能により本製品のTLS証明書（＝公開鍵ペアと自署の公開鍵証明書）を生成します。これには、crypto pki trustpointコマンドを使います。この場合、トラストポイント名（NAMEパラメーター）は local を指定してください。

       awplus(config)# crypto pki trustpoint local

2. 前の手順で生成したTLS証明書をOpenFlowコントローラーとのTLS接続に使用するよう設定します。これには、openflow ssl trustpointコマンドを使います。トラストポイント名（NAMEパラメーター）には local を指定してください。

       awplus(config)# openflow ssl trustpoint local

3. 接続先のOpenFlowコントローラーを指定します。これには、openflow controllerコマンドを使います。このとき、PROTOCOLパラメーターには ssl を指定してください。

       awplus(config)# openflow controller ssl 192.168.1.10 6653

TLS接続時にOpenFlowコントローラーのTLS証明書を検証するには、コントローラーのTLS証明書を発行したCAの証明書ファイル（PEM形式）を本製品のファイルシステム上に用意し、openflow ssl peer certificateコマンドでそのファイルを指定してください。
次の例では、コントローラーの証明書を検証するために必要なCA証明書ファイルが flash:/ca_for_controller.pem に置かれているものと仮定しています。
なお、OpenFlow機能の初期設定ではサーバー証明書の検証は行いません。

    awplus(config)# openflow ssl peer certificate flash:/ca_for_controller.pem

OpenFlowコントローラー側で本製品のTLS証明書を検証したい場合は、本製品のTLS証明書を発行したCAの証明書をPEM形式ファイルに書き出し、OpenFlowコントローラーにインストールする必要があります。これには、crypto pki export pemコマンドを使います。トラストポイント名（NAMEパラメーター）には local を指定してください。
次の例では、本製品の証明書を検証するために必要なCA証明書ファイルを flash:/ca_for_switch.pem に書き出すものと仮定しています。
このファイルをコントローラーに転送し、コントローラーの仕様にしたがって適切な場所にインストールしてください。

    awplus# crypto pki export local pem flash:/ca_for_switch.pem

OpenFlow機能のTLS接続に関する設定内容は、show openflow sslコマンドで確認できます。

    awplus# show openflow ssl
    Private key: /flash/.certs/pki/local/cakey.pem
    Certificate: /flash/.certs/pki/local/cacert.pem
    CA Certificate: /flash/ca_for_controller.pem
    Bootstrap: false

#### 外部CAが発行した証明書を使う場合

1. 外部CAの証明書ファイル（PEM形式）を本製品のフラッシュメモリーにコピーします。
   ここでは、外部CA（ルートCA）の証明書ファイルが「extca_cert.pem」という名前であると仮定します。
2. 本製品のTLS証明書と鍵を保存するためのトラストポイント（ここでは例として「oftls」という名前を使います）を作成し、外部CAの証明書をインポートします。
   これには、crypto pki trustpoint、enrollment、crypto pki import pemコマンドを使います。
   証明書の情報が表示されたら、内容を確認し、「Accept this certificate?」に「y」で答えてください。

       awplus(config)# crypto pki trustpoint oftls
       Created trustpoint "oftls".
       awplus(ca-trustpoint)# enrollment terminal
       awplus(ca-trustpoint)# end
       awplus# crypto pki import oftls pem extca_cert.pem
       Copying...
       Successful operation
       Subject     : /O=Example Organization/CN=External CA
       Issuer      : /O=Example Organization/CN=External CA
       Valid From  : Aug  1 12:00:00 2018 GMT
       Valid To    : Jan 15 12:00:00 2038 GMT
       Fingerprint : DDDDDDDD EEEEEEEE AAAAAAAA DDDDDDDD BBBBBBBB
       This is a self-signed CA certificate.
       The certificate has been validated successfully.
       Accept this certificate? (y/n): y ↓
       The certificate was successfully imported.

3. 本製品の公開鍵ペア（秘密鍵と公開鍵）を生成し、公開鍵証明書の署名要求（CSR）を生成します。
   crypto pki enrollコマンドを実行すると、次のようにCSRの内容が出力されるので、`-----BEGIN CERTIFICATE REQUEST-----` の行から`-----END CERTIFICATE REQUEST-----` の行までをクリップボードにコピーしてPC上のファイル（ここでは「oftls_csr.pem」とします）に保存してください。

       awplus# crypto pki enroll oftls
       Generating 2048-bit key "server-default"...
       Cut and paste this request to the certificate authority:
       -----------------------------------------------------------------
       -----BEGIN CERTIFICATE REQUEST-----
       MIIC0zCCAbsCAQAwQzEYMBYGA1UECgwPQWxsaWVkV2FyZSBQbHVzMScwJQYDVQQD
       DB5hd3BsdXMudHcuYWxsaWVkLXRlbGVzaXMuY28uanAwggEiMA0GCSqGSIb3DQEB
       AQUAA4IBDwAwggEKAoIBAQDP7yYzo7SRJeLLcoVpfJ8R0BhnotIDhkOS2X9t6tt5
       KeiS7CZlw3rBZ9XblL4Wk0c8KdAFZAQ7LU5KMchcyRoUq4HpKcy2cO5KD1dReU27
       G6OyHiuhTdDb7g5GeR3/Gn7wec398WmqHEZpqxMfjWDgE6GcLGq1kbYjnhyezIiB
       ivgfM+FWKkQao7hMFap4EnION/4Qi1rLG1y4ji+SBaqMaTrpIjmJajFMtrSDWhZP
       371fJ04lTA9EPaLoP5QlcIRXsK/MzTv99Ifa3I5uMOogqm6Lf0HuUusNg13OUFlu
       gcfB8FwgGGdAjhK3dAj5XywrP8urfKkjvYjolq4UKePvAgMBAAGgSzBJBgkqhkiG
       9w0BCQ4xPDA6MAkGA1UdEwQCMAAwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQG
       CCsGAQUFBwMBBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOCAQEAIMrupXUp/f18
       jgIs/mcrlkevV6YE34MGX+KP8pJyQ2mNW/3zorb4L5tc6xzZr9OvtSs4FSuaUeOB
       YTEMP6v/B5aBTh3csevol97DQnl/QDT5PjVkrhsO3zKqtzasV/9ozG0m/s28xRoE
       4v1wQtdvBqNyxDXTZSFiR2Qu+8RInA5TvjfI/pCjVsyQggpD9i6UWICOWDwi9M9U
       A6Q9vTgASeejX1ac1ZERGFYUG0BzO/gwm8zjnXxBRA1i5LcL4C7JEU9jgtUbzVln
       lFcuC5jQJrT8a8J9ZCLomQasatQoXtp2xJz1cJXAkD+Cwg92AbQqFwzqxqF/ZBr8
       IKvYIzscHQ==
       -----END CERTIFICATE REQUEST-----
       -----------------------------------------------------------------

4. 前の手順でPC上に保存したCSRファイル（本例ではoftls_csr.pem）を外部CAに渡し、TLS証明書の発行を依頼してください。
   ここでは、外部CAが発行した本製品のTLS証明書を oftls_cert.pem という名前のファイルとして入手したものと仮定します。
5. 外部CAによって発行されたTLS証明書ファイル（本例ではoftls_cert.pem）を本製品のフラッシュメモリーにコピーします。
6. 作成済みのトラストポイント「oftls」にTLS証明書をインポートします。
   これにはcrypto pki import pemコマンドを使います。
   証明書の情報が表示されたら、内容を確認し、「Accept this certificate?」に「y」で答えてください。

       awplus# crypto pki import whitelist pem oftls_cert.pem
       Copying...
       Successful operation
       Subject     : /O=AlliedWare Plus/CN=awplus
       Issuer      : /O=Example Organization/CN=External CA
       Valid From  : Jul 19 02:45:59 2022 GMT
       Valid To    : Jul 16 02:45:59 2023 GMT
       Fingerprint : AAAAAAAA BBBBBBBB CCCCCCCC DDDDDDDD EEEEEEEE
       This is not a valid CA certificate. Attempting to import as a server certificate.
       The certificate has been validated successfully.
       ...
       Accept this certificate? (y/n): y ↓
       The certificate was successfully imported.

7. トラストポイント「oftls」にインポートしたTLS証明書をOpenFlowコントローラーとのTLS接続に使用するよう設定します。これには、openflow ssl trustpointコマンドでトラストポイント名（本例では oftls）を指定します。

       awplus(config)# openflow ssl trustpoint oftls

8. 接続先のOpenFlowコントローラーを指定します。これには、openflow controllerコマンドを使います。このとき、PROTOCOLパラメーターには ssl を指定してください。

       awplus(config)# openflow controller ssl 192.168.1.10 6653

TLS接続時にOpenFlowコントローラーのTLS証明書を検証するには、コントローラーのTLS証明書を発行したCAの証明書ファイル（PEM形式）を本製品のファイルシステム上に用意し、openflow ssl peer certificateコマンドでそのファイルを指定してください。
次の例では、コントローラーの証明書を検証するために必要なCA証明書ファイルが flash:/ca_for_controller.pem に置かれているものと仮定しています。
なお、OpenFlow機能の初期設定ではサーバー証明書の検証は行いません。

    awplus(config)# openflow ssl peer certificate flash:/ca_for_controller.pem

OpenFlowコントローラー側で本製品のTLS証明書を検証したい場合は、本製品のTLS証明書を発行した外部CAの証明書をOpenFlowコントローラーにインストールする必要があります。
コントローラーに本製品のTLS証明書を発行した外部CAの証明書がインストールされていない場合は、コントローラーの仕様にしたがって適切な場所にインストールしてください。
OpenFlow機能のTLS接続に関する設定内容は、show openflow sslコマンドで確認できます。

    awplus# show openflow ssl
    Private key: /flash/.certs/pki/local/cakey.pem
    Certificate: /flash/.certs/pki/local/cacert.pem
    CA Certificate: /flash/ca_for_controller.pem
    Bootstrap: false

Note

本製品のTLS証明書を発行する外部CAがルートCAではなく中間CAの場合は、証明書チェーン（外部CAからルートCAまで）を構成するすべてのCAの証明書をインポートする必要があります。

- 手順1：外部CA（中間CA）からルートCAまでのすべてCAの証明書を本製品のフラッシュメモリーにコピーしてください。
- 手順2：CA証明書のインポートはルートCAから順に（上位から下位の順に）行ってください。
  たとえば、証明書チェーンが「外部CA（中間CA） → ルートCA」の2段階になっており、外部CA（中間CA）の証明書が「intca_cert.pem」、ルートCAの証明書が「rootca_cert.pem」の場合、次のようにしてインポートします。

      awplus# crypto pki import oftls pem rootca_cert.pem
      ...
      Subject     : /O=Example Organization/CN=Example Root CA
      Issuer      : /O=Example Organization/CN=Example Root CA
      ...
      This is a self-signed CA certificate.
      The certificate has been validated successfully.
      Accept this certificate? (y/n): y ↓
      The certificate was successfully imported.

      awplus# crypto pki import oftls pem intca_cert.pem
      ...
      Subject     : /O=Example Organization/CN=Example Intermediate CA
      Issuer      : /O=Example Organization/CN=Example Root CA
      ...
      This is an intermediate CA certificate.
      The certificate has been validated successfully.
      Accept this certificate? (y/n): y ↓
      The certificate was successfully imported.

- OpenFlowコントローラー側で本製品のTLS証明書を検証したい場合は、本製品のTLS証明書を検証可能な証明書チェーン（中間CA、ルートCAの各証明書）をOpenFlowコントローラーにインストールする必要があります。