Ciscoワイヤレスコントローラ C9800-CLをVMware上に構築する機会がありましたが、動かすまでにかなりの手間がかかりましたので、筆者が取った最速ルートを紹介します。
VMwareで仮想マシンを構築する場合は、Webにログインしまくる必要があるので、中断してしまうとどこまで出来たか見失ってしまい、最初からやる羽目になります。
仮想マシンの構築は、手順を把握してから、一気に作業を完了させるのがおすすめです。
本記事で解説する作業手順
本記事は次の手順に従って解説します。
PC上にVMware ESXiが構築できていることが最低条件になりますので、予めご了承ください。
- PC側のWebブラウザからVMware ESXiのコンソールに接続
- ESXi上でC9800-CLの仮想マシンを構築(vSwitch設定→ポートグループ設定→仮想マシン作成)し、C9800-CLをパワーオン
- VMwareコンソールから、C9800-CLのWebコンソールに入るための初期設定値を入力
- WebブラウザからC9800-CLのコンソールへ接続し、ログインできたらday0設定を投入
- C9800 Webコンソールにログインし、ファームウェアを17.09.03にアップグレード
システム構成
Cisco C9800-CLのシステム構成は至ってシンプルです。
C9800-CLはDHCPサーバーも有していますが、既設のDHCPサーバーを利用するため、今回はRocky Linuxで模擬設定としています。
VMware ESXi マシン(WLC:C9800-CLを実装) --- PoE HUB --- Cisco AP(C9105,C9115等)
設定時のIPアドレス
C9800-CLは、最低2ポートのNICが要求されますので、VMware上ではGE1とGE2を割当します。
GE3はマネジメントポートであるため、今回は設定しません。
- 設定用PCアドレス: 192.168.0.102(192.168.0.x)
- VMware ESXiホストアドレス: 192.168.0.64(DHCP)
- C9800 GE1ポート: C9800-Manageer: 192.168.0.248(構築時のWLCコンソールとして利用、構築完了後はshutdown)
- C9800 GE2ポート: C9800-AP: 192.168.1.253 VLAN:900(APがアクセスするポート、運用時のWLCコンソールとしても兼用可)
- C9800 GE3ポート: 未設定(マネジメントポート用でありCL版では不要)
C9800ファームウェアの入手
以下ファームウェアをCisco HPから入手します。
C9800-CLは素晴らしいことに「無償」なのですが、入手するためには保守契約が必要となりますので、取引している代理店に相談してください。
以下は今回導入するバージョンです。
- C9800-CL-universalk9.17.06.04.iso
- C9800-CL-universalk9.17.09.03.SPA.bin
C9800-CLの構築
【手順1】vSwitchの作成
VMwareで仮想スイッチ(vSwitch0)の構築をします。
vSwitch0の設定は、「ネットワーク」→「仮想スイッチ」でvSwitch0を選択し、「設定の編集」で変更が出来ます。
今回のPCはNICが1つのみでしたので、デフォルトのvSwitch0にPCとVMwareの通信を重奏させることにしました。
- vSwitch名:vSwitch0
- 外部出力先:vmnic0(Windows10/VMware兼用)
vSwitch0の「セキュリティ」の3項目は「すべて承諾」に変更します。デフォルトの拒否状態であると外部通信が全くできませんので注意してください。
- 無差別モード:承諾
- MACアドレス変更:承諾
- 偽装転送:承諾
【手順2】ポートグループの作成
ポートグループの設定タブで以下の2ポートを作成します。出力スイッチはvSwitch-WLCを割り当てます。
- C9800-management VLAN ID:0
- C9800-AP VLAN ID:4095(4095=VMwareでは全通しの意味→これ忘れるとAPがJoinできない)
C9800は、NICを最低2ポート必要とするため、manegementとAPのセグメントを分けてipアドレスを付与する必要があります。
またAP側のNICは「VLAN=4095」とし、VLANを全通しする状態に設定してください。
すべての設定を終えると以下のような仮想スイッチが完成します。
【手順3】仮想マシン構築
仮想マシンは、リソース要件の「小」で設定します。
メモリ割り当て量は後日変更することが可能ですが、ストレージ量は増やす方向のみ変更可能となるため注意が必要です。
メモリが不足する場合、6GBまで削減しても1-2台のAP接続動作程度であれば動くようです。
ただしメモリ4GBマシンは、スワップが発生しまくって、設定作業すら困難だと思うので、そのマシンは使わないほうが得策です。
ストレージ容量は、あるバージョンから、リソース要件が小でも16GB必要となっていますので注意してください。
- vコア数: 8
- メモリ:8G
- ストレージ:16G, プロビジョニングタイプはデフォルト(シンプルでもマルチでも可)
- SCSIコントローラ:VMware Paravitual
- ネットワーク1:名前C9800-Management、アダプタVMXNET3
- ネットワーク2:名前C9800-AP、アダプタVMXNET3
- CDドライブ:ISOファイルを指定、C9800-CLのISOファイルを設定
設定を保存し、VMwareの保存処理が完了するのを待ってから、C9800の仮想マシンを「パワーオン」します。(待たないと起動エラーになります)
【手順4】C9800-CLの初期コンソール設定
次は、C9800のWebコンソールに接続するまでの最低限のCLI設定を行います。
C9800を起動して、yes/noが聞かれるまで5分くらい待ち、no, noを入力します。
Cisco OSは起動処理が不完全な時に入力作業をしてしまうと設定がきちんと繁栄されない不具合が潜在しますので、必ず5分くらい待ってからnoを入力してください。
Would you like to enter theinitial configuration dialog? [yes/no]: no Would you like to terminateautoinstall? [yes]: no
no,noの入力後、Enterを数回押して、WLC> が出るようになったら、以下設定を入力し、管理コンソールの接続設定を行います。
この作業はVMwareのコンソールで行うことになりますが、VMwareコンソールではコピペが出来ませんし、teratermのSSHやtelnetも拒否状態ですので、面倒でも手打ちが最速です。
WLC> enable WLC# config terminal WLC# username Cisco privilege 15 secret Cisco WLC# interface gigabitEthernet 1 WLC# no switchport WLC# ip address 192.168.0.248 255.255.0.0 WLC# ip route 0.0.0.0 0.0.0.0 192.168.0.254
GE1はデフォルトでtrunkとなっているため、no switchportを設定して、trunk外してip addressの設定を行います。
vlan1がdhcpになっている場合は、GE1にip addressが設定出来ない状態になるため、以下コマンドでdhcp設定を削除してからGE1の設定を行います。
WLC(config)# int vlan1 WLC(config-if)# no ip address dhcp
管理インタフェースの設定ができたら、C9800のCLIからPCに向けて疎通確認を行い、!!!! Successが出れば、ようやくWebコンソールにログインすることが出来ます。
WLC# ping 192.168.0.7(接続PCのIPアドレス) !!!! Success rate is 100 percent (5/5)
【手順5】C9800CLのday0設定
ESXiに接続できるPCから、C9800CLの管理コンソール(https://192.168.0.248)にWeb接続します。
ログインが出来たら、以下の初期設定画面になるので、ID: Cisco, Pass: Ciscoでログインし、day0設定を進みます。
page1
day0でWebコンソールの初期動作に必要とされる最小限の設定を入れる事ができます。
ここでGE2側のIPアドレスを設定することになりますが、Ethernet2はAPが接続するインタフェースとなりますので、Ethernet1(管理ポート)と違うサブネットに設定する必要があることに注意してください。
運用中のマシンに構築する場合は、GE2で設定したIPアドレスがコンフリクトしたり、ファイアウォール(UTM装置)で不正IP検知されることがありますので、ここのIPアドレス設定はネットワーク管理者に立ち会ってもらうようにしましょう。
また、日付の設定はなぜかJSTが出てこないので、とりあえずUTCにしておきます。CiscoのWebコンソールログイン後、APを接続するときにJSTに変更すれば問題ないです。
GE2のVLANは、多数のVLANを区切ることを想定して、とりあえず900にしています。設定上は1でも問題はないと思います。
- hostname: falcon-WLC
- 国コード:J4
- 日付:UTC(ログイン後JSTに変えます)
- GE2 VLAN: 900
- Ethernet1 : 192.168.0.248 (管理用)
- Ethernet2: 192.168.1.100, subnet 255.255.255.0 (AP用)
page2
AP設定:設定は不要のため、次へ進みます。
page3
有線インタフェースとQoS機能を以下のように設定します。
- QoS機能は不要ですので「データ」のみにします(ここでデータのみに設定しないと、QoSの設定を行うまでAPがJoin出来なくなります)
- APがJoinするための証明書のパスワードは必ず設定します:この証明書設定はVM版のみに必要な項目でアプライアンス版はこの設定がありません。8桁以上のパスワードをいれますが数字記号の混在は不要です。(例:falconwlc)
ブラウザによっては日本語Web設定画面だと、VLAN900のネイティブの設定反映が出来ない場合(エラーになる)がありましたので、その場合はCLI画面から以下の入力をしてください。
(config)# interfavce gigabitEthernet 2 (config-if)# switchport acccess vlan native 900
サマリーを確認して「終了」をクリックすれば、day0設定が完了します。
再度ログインすると、以下のようにWebコンソールでの設定が行えるようになりますので、ESXi上の構築は完了です。
day0設定ワンポイントアドバイス
day0設定でミスが判明した場合、CiscoのWebコンソールで設定修正することになります。
しかし、Webコンソール上では結構深い部分の設定になり、その場所を探すのも一苦労ですし、特にAPのトラストポイントの設定を失念していた場合は、使い慣れないPKI管理でトラストポイントの生成が必要となりますのでかなりの手間を食います。
設定時間の短縮という面では、以下の通りnvramをresetし、reloadして最初からやりなおすのが早いです。
C9880# write erase Erasing the nvram filesystem will remove all configuration files! Continue? [confirm] [OK] Erase of nvram: complete C9880-D# reload Reload command is being issued on Active unit, this will reload the whole stack Proceed with reload? [confirm] (省略) Press RETURN to get started!
【手順6】C9800-CLのファームウェアアップデート
day0設定の完了で初期設定は完了となりますが、Ciscoのisoファイルは古いバージョンしか提供されないため、同時にファームのアップデートも行うようにします。
C9800のファームアップデートは、GUIから行うのが一番容易、かつ、正確にできると思います。
- GUI操作:「管理」→「Software Management」
- 設定:「バンドル」、「自分のデスクトップ」からアップロード
- binファイル:C9800-CL-universalk9.17.09.03.SPA.bin(PCローカルからアップロード)
CLI+TFTPでもアップデートはできるのですが、binファイルが1.2Gbytesくらいあり、TFTP転送に1.5時間位かかりますので非現実的です。
再起動後、左上のバージョン番号が変わったことを確認します。
バージョンをあげるとWiFi6E対応になって、6GHzの状態表示が追加されています。
ファームバージョンが変わっていない場合は失敗していますので、失敗したアップデートモジュール(binファイル)を削除して正しいbinファイルを再度アップロードしてください。
CiscoのOSは、2世代分のファームしか記録できない仕様となっており、ストレージ容量不足でエラーになっている場合は、後述する不要ファイルの削除を行います。
参考ですが、C9800-CL版とC9800アプライアンス版は、全く別のファームウェアとなります。何度やってもアップデートに失敗する場合は、ファイル名を再確認して適正なアップデートモジュールを入手してください。
不要ファイルの削除
アップデート後は不要になったpkgやbinファイルは削除しておきます。
この作業は必須ではありませんが、ログファイルがブートフラッシュに保存され、ストレージが圧迫されますので、やっておいたほうが無難です。
コンソール操作の場合は以下のコマンドを入力します。GUIとやっていることは同じですので、楽にできる方法で行えばよいでしょう。
# install remove inactive
ファイル削除すると空き容量は2.1G~2.6G程度になると思います。
ESXi上の構築は練習してから行うのが鉄則
運用しているESXiは他のゲストOSも動いており、なかなか試行錯誤は出来ないと思いますので、何度か練習して、導入するのがおすすめです。