以前にOpen Flow対応のスイッチとしてオープンソースソフトウェアであるOpen vSwitchを紹介しましたが、今回はその第2弾、商用製品をOpenFlowスイッチとして使用してみます。
紹介するスイッチはシスコの代表的なスイッチCisco Nexusです。マニュアルによるとNexusシリーズではNexus 3000とNexus 9000がOpenFlowに対応しているようです。
Cisco 公式のWebマニュアルはこちら(英語ですが)。
https://www.cisco.com/c/en/us/td/docs/switches/datacenter/nexus/openflow/b_openflow_agent_nxos_n3kn9k/b_openflow_native_agent_nxos_7x_chapter_01.html
シスコスイッチとOpenFlow:
まず、作業に入る前にシスコスイッチとOpenFlowの関係について注意点を少し記載します。
1. “Plug-in for OpenFlow”は使わない。
->”Plug-in for OpenFlow“は少し前(2015年頃)までに主流であった、OpenFlowを使用するためのシスコ スイッチ用のプラグインです。現在(2017年)では “Cisco OpenFlow Agent“という機能が主流となっていますので、こちらを使いましょう。
2.シスコのスイッチは完全にはOpenFlowに対応していない。
->これはシスコに限らずですが、各商用スイッチのOpenFlowへの対応は限定的です。ちなみにシスコは”OpenFlow 1.0, 1.3機能のサブセットをサポートしている“と表現しています。使いたい機能がサポートされているか否かはWebマニュアルの「サポート機能」欄を確認しましょう。
Cisco Nexus 3000 設定:
それでは作業に入っていきます。今回は検証機としてCisco Nexus 3000を使用します。このスイッチにオープンソースのOpenFlowコントローラである、POXとOpenDaylightを接続してみます。
作業の大きな流れとしては、以下となります。
1.Cisco Nexus 3000のOS/Biosバージョンアップ
2.”Plug-in for OpenFlow”のアンインストール
3.”Cisco OpenFlow Agent”のセットアップ
4.OpenFlow コントローラ(POX/OpenDaylight)の準備
5.Cisco Nexus 3000とコントローラの接続
それでは見ていきましょう。
1. Cisco Nexus 3000のOS/Biosバージョンアップ
Cisco Nexus 3000の購入時期にもよりますが、出荷時の状態ではCisco NX-OS Release 5.Xがインストールされていることが多いと思います。前述した”Cisco OpenFlow Agent”を使用するためにはこのバージョンを7.0(3)I5(1)以降まで上げる必要があります。
アップグレードはシスコ公式のWebマニュアルに沿って行いましょう。
ポイントとしては、Cisco NX-OSをいきなりバージョン7.Xにはアップグレードできません。5.X->6.xとアップグレードした後、一旦ここでBIOSをCisco NX-OS7.X用にアップグレードした後、Cisco NX-OS 6.x ->7.xへとアップグレードします。
1-1. バージョンの確認
switch# show version
1-2. アップグレード用のキックスタートイメージとシステムイメージを準備
シスコのサイトにログイン後、ダウンロードできます(要サポート契約)。今回は例として以下の3ファイルを準備しました。
ファイル名 | 説明 |
n3000-uk9-kickstart.6.0.2.U6.6.bin | バージョン6用のキックスタートファイル |
n3000-uk9.6.0.2.U6.6.bin | バージョン6用のイメージファイル |
nxos.7.0.3.I5.1.bin | バージョン7用のイメージファイル |
バージョン7からはキックスタートファイルとイメージファイルが分かれてなく、一つになっています。
1-3 アップグレード用のファイルをCisco Nexus 3000へコピー。
コピーにはcopyコマンドが便利です。以下、ftpサーバにあるファイルをCisco Nexusに転送する方法を解説します。
コマンドの使い方は以下です。
switch# copy ftp:<転送元アドレス/ファイル名> <転送先アドレス:ファイル名> vrf management
ここで、vrf managementと書いてあるのは、スイッチ前面のポートではなくスイッチ背面にある管理用LANポート経由でファイルを転送するためです。
コマンド例:
switch# copy ftp://172.16.200.1//home/n3000-uk9.6.0.2.U6.6.bin bootflash:n3000-uk9.6.0.2.U6.6.bin vrf management
同様に他の2ファイルもCisco nexus 3000のbootflashディレクトリ配下にコピーしましょう。
1-4.まずCisco NX-OS 5.Xを6.xへアップグレード
switch# install all system n3000-uk9.6.0.2.U6.6.bin kickstart n3000-uk9-kickstart.6.0.2.U6.6.bin
以下のような表示が続きます。
Installer is forced disruptive Verifying image bootflash:/n3000-uk9-kickstart.6.0.2.U6.6.bin for boot variable "kickstart". [####################] 100% -- SUCCESS Verifying image bootflash:/n3000-uk9.6.0.2.U6.6.bin for boot variable "system". [####################] 100% -- SUCCESS
途中、以下のようにインストールを続けるか訊かれるのでyを入れリターンキーを押します。
Do you want to continue with the installation (y/n)? [n]
最後にリブートが行われ、6.xへのアップグレードが完了です。
Finishing the upgrade, switch will reboot in 10 seconds.
1-5.次にBIOSを NX-OS 7.X用にアップグレードします。
switch# install all nxos nxos.7.0.3.I5.1.bin bios
途中、同じようにインストールを続けるか訊かれるのでyを選択してください。最後に
Install has been successful.
と表示されれば完了です。
1-6.Cisco NX-OS 6.Xを7.xへアップグレード
switch# install all nxos bootflash:nxos.7.0.3.I5.1.bin
インストール後は再度バージョンを確認してください。
switch# show version
また、コピーしたイメージファイルでCisco スイッチの容量が圧迫されているかもしれません。
必要に応じて不要になったファイルを削除しましょう。
以上で最初に示したステップ1~5の最初のステップ“1.Cisco Nexus 3000のOS/Biosバージョンアップ”が完了です。
次回は”2.Plug-in for OpenFlow”のアンインストール“から解説します。>>