VMware FusionでNexus 9000vを使う
Nexus単体の動作確認をしたい、例えば管理プロトコルやSmart Licenseの動作確認、コマンド体型の確認などあると思います。そんなときにNexus 9000vを動作させて確認することができます。
手持ちのMacbookでNexusのコマンドを確認したいと思っていたところ、VMware Fusionに対応しているようなのでVMware Fusion上でNexus 9000vを構築してみました。が、いくつかはまりポイントもあったので、Vmware FusionのセットアップからNexus9000vを動かすところまでの手順をメモする目的でこの記事を作成しました。
目次
VMware Fusionをセットアップ
こちらの記事が参考になりました。ダウンロードからフリーライセンスキーの入手方法までわかりやすく解説されています。
https://softantenna.com/blog/vmware-fusion-player-13-free-personal-use-license/
Nexus 9000vをダウンロード
以下Ciscoのソフトウェアダウンロードページから、Nexus 9000vをダウンロードしましょう。
対象ファイルの形式はOVAとなります。
現在(23/12時点)Nexus9000vではボックスモデルかシャーシモデル、要求スペックが低い機能限定イメージと、通常イメージがあります。今回はボックスかつ機能限定イメージを選択します(バージョンは10.2.4Mを選択しています)。
VMware Fusionでイメージのimport
VMware FusionでNexus 9000vのOVAイメージのImportを行います。Choose FileからダウンロードしたOVAファイルを選択しましょう。
ContinueからImportを進めてください。Importが完了すると以下の画面となります。
ここからVMware Fusion上でいくつか設定をしていくのでVMは停止したままにしてください。もしスタートしてしまったら一度VMをShutdownしてください。
コンソール設定
Vmware FusionでConsoleの設定を行います。この設定をしないとコンソールアクセスができないので、必ずこの設定が必要となります。
まずスパナアイコンから設定画面を開いて、
Add Deviceを選択します。
ここでSerial Portを選択して、
Serialを出力するファイルを作成します。ファイル名は“Serial0"とします。このファイルの絶対パスはコンソールアクセスの際に利用します。
次にVirtual Machinesフォルダに移動します。Spotlight上で"Virtual Machines"と検索すると出てくると思います。
フォルダを開くと、ImportしたイメージのVMファイルが存在します。
そして対象となるファイルを右クリックします。ここでShow Package Contentsを選択します。
このなかで vmxファイルをテキストエディタで開き、serial0.fileType = “file"とあるので
serial0.fileType = “pipe"と変更してセーブします。
Network Adapterの設定
次にVmware FusionでNetwork Adapterの設定を行います。
Nexus9000vのOVAをImportした際にNetwork Adapter(N9Kv上のIF)はデフォルトで6つあり、mgmt0とEth1/1-Eth1/5とマッピングされているようです。
Nexus9000vでコマンドの確認だけを行いたいのであれば、デフォルトの設定で問題ありません。
もしSmart licensing認証の動作確認などmgmt0経由でインターネットにアクセスしたい場合、通常の宅内WIFI環境においての話となりますが、Network Adaptor1 をNAT設定することでmgmt0経由でインターネットへ通信できます。
注意点となりますが、上記同様の環境においてNetwork Adapter2-6をEnableにしておくとBridge設定の関係からかインターネットへの通信が不安定となる挙動がみられました。もしmgmt0以外のInterfaceを使用しないのであれば、Disconnect Network Adapterでmgmt0だけ有効にしておくのもよいかと思います。
Nexus9000vの起動
ここまで完了したらVMを立ち上げてみましょう。
VM立ち上げ途中で、以下ポップアップで上がりますがYesにしましょう。
さらに同様に以下のようなポップアップも上がります。これはNetwrok Adapterの認証ですのでユーザのパスワードを入力します。
VMが立ち上がるとVMware Fusionの画面のコンソール上でboot processが進んでいき、初回起動時は“Boot Time"という表示で止まると思います。もしくは一度VMを立ち上げたことがあると、以下のようにboot loaderで止まる場合もあります。この場合には、
“dir" からbootイメージ名を確認して “boot イメージ名" と入力してNXOSを立ち上げます。その後にprocessが続くと初回起動時同様に“Boot Time"で止まります。
コンソールアクセス
“Boot Time"以降はsocatコマンドを利用して続くコンソールを表示することができます。
MAC上で以下コマンドによりsocatをインストールできます。
brew install socat
Source: https://formulae.brew.sh/formula/socat
socatコマンドの起動オプションとして以下2つ挙げます。好みで使ってください。
1. stdio経由
socat -d0 -d unix-connect:/Users/xxx/Downloads/Serial0 stdio ## unix-connect:以降には先程作成したSerial0ファイルの絶対パスを含めて入力してください。
コマンドはシンプルなのですが、stdio経由だと入力コマンドが一旦バッファへ入るので色々と違和感のあるコンソールアクセスとなります。
2. pty経由
socat -d -d unix-connect:/Users/xxx/Downloads/Serial0 pty ## unix-connect:以降には先程作成したSerial0ファイルの絶対パスを含めて入力してください。
この入力後、以下のようなログが出力されたあとに
$ socat -d -d unix-connect:/Users/xxx/Downloads/Serial0 pty 2023/12/10 15:22:29 socat[29081] N opening connection to LEN=34 AF=1 "/xxx/Serial0" 2023/12/10 15:22:29 socat[29081] N successfully connected from local address LEN=16 AF=1 "" 2023/12/10 15:22:29 socat[29081] N PTY is /dev/ttys001 2023/12/10 15:22:29 socat[29081] N starting data transfer loop with FDs [5,5] and [6,6]
このログに出力される“ttys001"を使って(環境によって数値部分は変わります)、ターミナルを新たに開いて以下screenコマンドでコンソールアクセスしてください。自然なコンソールアクセスを行うことができると思います。
screen /dev/ttys001
socatでエラーとなる、もしくはコンソールが正しく表示されない場合
環境構築していたときにsocatでコンソールアクセスがエラーとなる、もしくは正しくコンソール上で正しくメッセージが表示されないことがありました。手順の中でvmxファイルの中の”pipe”と変更するオペレーションが"file"のままであったり、純粋にコンソールがおかしい状態のためVMをrebootすることで正常にアクセスできたケースがありました。今一度手順を見直して、もしうまく動作しなければVMもしくはPCをrebootしてみてください。
Nexus 9000vの設定
しばらくするとNexus9000vでPOAPが動き始めます。POAP以降の初期設定はこちらを参照してください。
初期設定が完了したあと、もしmgmt0経由でSSHさせたい場合やインターネットアクセスさせたい場合には、mgmt0にDHCP設定をすると簡単です。
以下はNetwork AdapterをNATにして、mgmt0でIPアドレスをDHCP経由で取得しInternetアクセスまで確認しているログとなります。もちろんMacbookからSSHも可能です。
switch# conf t Enter configuration commands, one per line. End with CNTL/Z. switch(config)# int mgmt 0 switch(config-if)# ip address dhcp switch(config-if)# no shut switch(config-if)# end switch# switch# show ip int bri vrf management IP Interface Status for VRF "management"(2) Interface IP Address Interface Status mgmt0 192.168.196.132 protocol-up/link-up/admin-up switch# switch# ping 8.8.8.8 vrf management PING 8.8.8.8 (8.8.8.8): 56 data bytes 64 bytes from 8.8.8.8: icmp_seq=0 ttl=127 time=29.772 ms 64 bytes from 8.8.8.8: icmp_seq=1 ttl=127 time=30.8 ms 64 bytes from 8.8.8.8: icmp_seq=2 ttl=127 time=28.123 ms 64 bytes from 8.8.8.8: icmp_seq=3 ttl=127 time=27.465 ms 64 bytes from 8.8.8.8: icmp_seq=4 ttl=127 time=27.975 ms --- 8.8.8.8 ping statistics --- 5 packets transmitted, 5 packets received, 0.00% packet loss round-trip min/avg/max = 27.465/28.827/30.8 ms switch#
まとめ
上記の通り動作させるまでいくつか癖がありましたので、VMware Fusion上でNexus9000vを安定稼働させるまで一日かかってしまいました。とはいえ一度構築すればあとは簡単にアクセスできますので、1台環境でのNexusの動作確認などにぜひ活用してみてください。
なおコンソールアクセスはsocatコマンド以外にtelnetも利用できるようです。以下サイトをご参考いただければと思います。
https://binarynature.blogspot.com/2019/02/cisco-nexus-9000v-vagrant-box-vmware-fusion.html
参考サイト
https://softantenna.com/blog/vmware-fusion-player-13-free-personal-use-license/
https://covirtnetworking.com/deploying-nexus-9000v-vmware-fusion/
https://qiita.com/propella/items/418e0886b53ee144321e
https://binarynature.blogspot.com/2019/02/cisco-nexus-9000v-vagrant-box-vmware-fusion.html
ディスカッション
コメント一覧
まだ、コメントがありません