👋

ThinkPad X1 Yoga Gen 3 に ESXi をインストールして Cisco Nexus 9300v を構築する

2022/08/08に公開

Cisco Nexus 9300v を動かしたい

VXLAN の検証をやりたくて、いろいろ聞いたところ Cisco Nexus 9000v (というシリーズの中の 9300v) にたどり着きまして、これを動かしてみたく思っています。
この記事ではとりあえず 9300v を ESXi に構築するところまでを書いています。

Cisco の公式サイトからダウンロードできる形式の中に .vhd は含まれていなかったため、.ova を展開できるよう VMware vSphere Hypervisor (ESXi) をどうにか構築する必要があります。
ESXi on Hyper-V や、.ova から .vhd の変換も試してみたのですが簡単にはうまくいかなかったため、まずはストレートに ESXi を構築します。

ESXi を立てる

おうちに ESXi を立てるのの定番としては Intel NUC だと思いますがとりあえず手元にはなく、そういえば、と思ってしばらく前の ThinkPad X1 Yoga Gen3 を取り出してきました。
システム要件的にインストールが可能か、かなり不安だったのですが、結果としては何も困らずスムーズにインストールができました。

まずは、ここら辺を参考に ESXi の ISO ファイルを手に入れます。

https://docs.vmware.com/jp/VMware-vSphere/7.0/com.vmware.esxi.install.doc/GUID-016E39C1-E8DB-486A-A235-55CAB242C351.html

その ISO ファイルを USB メモリなどに書き込むのですが、Windows 標準でできるかよくわからず、今回は Rufus というのを使いました。
USB メモリを選択し、ISO を選択し、あとは実行するだけなので簡単です。

https://forest.watch.impress.co.jp/library/software/rufus/

んで、これを PC に接続して起動します。

久々に触ったので忘れていたのですが、ThinkPad の BIOS への入り方は F1 キーのようです。
F2 か F12 か Del キーのどれかだろうと思ったらだめだったので調べちゃいました。

https://support.lenovo.com/jp/ja/solutions/ht500222-recommended-ways-to-enter-bios-boot-menu-thinkpad-thinkcentre-thinkstation

あとは適当にはいはいと進んでいけばインストールが完了します。
専用ポートを利用した Ethernet も無事認識し、おうちのネットワークに適当に接続すれば、Web client から接続できます。

9300v を立てる

さていよいよ Cisco Nexus 9300v を立てていきます。

.ova はここから進んでいけば手に入ります。

https://www.cisco.com/c/ja_jp/support/switches/nexus-9000v-switch/model.html

手順についてはまずはこちらが参考になります。

https://www.cisco.com/c/ja_jp/td/docs/dcn/nx-os/nexus9000/102x/9000v-9300v-9500v/cisco-nexus-9000v-9300v-9500v-guide-release-102x/m-nexus-9000v-deployment.html

VMware の一般的な手順に沿って .ova を参照しながら VM を展開しますが、何点か注意点があります。

  • 最初の NIC だけが物理ポートのくっついた vSwitch と接続されるようにする
    VM 作成後はとりあえず telnet で接続することになりますが、IP アドレスは VMkernel、ポートは後で指定するものになります。
    2 番目以降の NIC が Nexus 内の Ethernet 1/1 ~ にそれぞれ対応します。
  • VM 作成時に起動しない
    VM 作成完了後に起動するか、のオプションがありますがこれは off にします
  • Serial port を追加する
    .ova の展開だけでは追加されなかったので手動で追加します。
    VM が電源オフの状態からハードウェアの追加、Use Network を選択し、方向は Server、URL は telnet://0.0.0.0:2000 などとします。
    ここで、ポート番号は後述するとおり 1024 から 65535 の範囲とすることをおすすめします。
  • efi.serialconsole.enabledTRUE にする
    Edit Configuration で Add parameter し、Key を efi.serialconsole.enabled、Value を TRUE としたセットを追加します。
  • ESXi firewall の設定を変更する
    ESXi に SSH 接続し、esxcli network firewall ruleset set --enabled true --ruleset-id=remoteSerialPort というコマンドを実行します。
    これにより remoteSerialPort という ruleset が有効化され、VMware の環境の外から VMkernel を経由し、telnet が許可されるようになります。

ここまで設定が済めば、VM を起動後に telnet 経由の serial port が有効化されるはずです。
VM を起動し、Tera Term などを利用して VMkernel の IP アドレス宛、ポートは先ほど指定した例えば 2000 版ポートに接続すると起動時のログが流れてくると思います。
こんなイメージです、わかりやすい。

https://www.cisco.com/c/ja_jp/support/docs/switches/nexus-9000-series-switches/203975-Configure-Serial-Port-Access-to-NX-OSv-9.html

トラブルシュートとか

初回起動時にうまく設定が終わらず、再起動してしまうと、次回うまく boot せず loader に落ちることがよくありますが、その場合などの対応方法はこちらに書いてあります。

https://www.cisco.com/c/ja_jp/td/docs/dcn/nx-os/nexus9000/102x/9000v-9300v-9500v/cisco-nexus-9000v-9300v-9500v-guide-release-102x/m-troubleshooting-nexus-9000v.html

起動後は conf t から boot nxos nxos-x.y.z.bin とすれば次回起動以降は自動的に読み込まれるようになります。

Discussion