中古のエンタープライズ AP は安くて手を出しやすいのですが、届いた Aruba AP-315 を挿してみたら、LED が点滅し続けるだけで Web 画面すら出てきませんでした。
故障かと思いきや、これは壊れているのではなく、「コントローラを探し続けている Campus AP」という状態でした。コントローラの無い私の環境では、このままでは使えません。
この記事は、その Campus AP を Instant AP(コントローラ不要・Web UI 付き) に変換して使えるようにした記録です。
TL;DR
- 中古で安く買える Aruba のエンタープライズ AP は、多くが Campus AP(CAP)モードのままです。コントローラが無いと延々リブートし、Web UI も無く、そのままでは使えません。
- ArubaOS 8.6 以降の
ap convertを使うと、Campus AP を Instant AP に変換できます。ライセンスも不要です。 - しかも コンソールケーブル不要、全部ネットワーク経由です。この機種のコンソールは専用の TTL シリアルケーブル(Amazon で 5,000 円ほど)が要るので、それを買わずに済むのが大きな利点でした。
- ただし古い
6.5.0.0には「イメージ取得が 14 MiB 上限」という罠があり、一度8.3を経由してから8.10に上げる必要があります。
対象は AP-303 / 305 / 314 / 315 / 318 / 324 / 325 … などの 300 系 Campus AP です。
背景:Campus AP と Instant AP は「同じハードの別モード」
Aruba の AP には、ざっくり2つの動作モードがあります。
| Campus AP (CAP) | Instant AP (IAP) | |
|---|---|---|
| コントローラ | 必須 | 不要(AP 同士で仮想コントローラを構成) |
| 起動時の挙動 | コントローラを探し、無いとリブートを繰り返す | 単体 or クラスタで自立起動 |
| 管理UI | AP 単体には無い |
AP が Web UI を持つ(https://<VC>:4343) |
私が買った中古はこの左側、Campus AP モードでした。挿してもコントローラを探し続けてリブートループになり、Web 画面が出ないのも当然です。
やりたいのは右側の Instant 化です。道具は ap convert というコマンドで、これは Mobility Controller(コントローラ)上で実行します。物理のコントローラは持っていないので、仮想版(VMC=Virtual Mobility Controller) を VM で建てて使いました。
ぶつかった「3つの壁」
やってみて詰まったのは、主に次の3点でした。先に共有しておきます。
壁1:そもそもコントローラ(VMC)が要る
ap convert は ArubaOS 8.6 以降の機能で、VMC 自体も 8.0 以降にしか存在しません(6.5.x の VMC は無い)。なので「6.5 のコントローラを仮想で建てて…」はできず、8.x の VMC を建てることになります。
壁2:6.5.0.0 の「14 MiB ファイルサイズ制限」
これが一番やっかいな罠でした。中古個体は 6.5.0.0。8.10 の CAP イメージを取得させようとすると File size exceeded 14680064 bytesで失敗し、リブートを繰り返します。古い 300 系 AP には 取得できるイメージが 14 MiB までという制限があるためです(フラッシュ側の制約)。
Aruba の告知 ARUBA-SA-20220922-PLVL02 に載っています。タイトルはAP-320 Seriesについてですが、同じ ipq806x 系の AP-315 でも同様に起こります(実際に踏みました)。
ipq806x.ariは、コントローラが AP に配る AP 用のファームウェアイメージ(拡張子.ariが Aruba の AP イメージ形式)です。AP のハードウェア(SoC)ごとに分かれていて、ipq806xは AP-315 が積んでいる SoC の名前。なので 300 系はこのファイルを使います。なお、これは AP を Campus AP として動かすためのファームで、手順3で焼く Instant イメージ(
ArubaInstant_Hercules_...)とは別物です。手順1〜2ではこの.ariを、手順3では Instant イメージを配ります。
-
8.10.xのipq806x.ari(300系の CAP イメージ)は 約 15 MB(14 MiB をわずかに超える)→ DL 失敗 → リブートループ。 -
8.3.0.16のipq806x.ariは 14 MiB 未満 → こちらは通ります。
つまり 6.5.0.0 はいきなり 8.10 に上げられません。まず 8.3 に上げてから 8.10 へという二段跳びが必要です。いったん 8.3(=8.x)に上がってしまえば、この制限には引っかからなくなり、以降は大きいイメージでも問題ありません。
# 8.10 をいきなり掴ませると、こうなってループする
AP: xx:xx:xx image version mismatch. bootfile is ipq806x.ari,
build string is ArubaOS version 6.5.0.0 for 32x ...
...ncftpget ipq806x.ari: no space / File size exceeded 14680064 bytes
壁3:Instant イメージの「ファミリ」を間違えない
Instant のイメージは、プラットフォーム別に コードネーム(ファミリ) で分かれています。ここを間違えると、ap convert が No Image(該当機種のイメージ無し)でいつまでも待ち続けます。
| ファミリ | 主な対象機種 |
|---|---|
| Hercules | AP-303 / 305 / 314 / 315 / 318 / 324 / 325 / 334 / 335 / 344 / 345(300系・ipq806x) |
| Gemini | AP-500系(505 / 515 / 518 …・Wi-Fi 6) |
| Draco / Cassiopeia / Ursa … | 200系ほか |
AP-315 は ArubaInstant_Hercules_<version> です。私はこれを最初 Ursa(別機種用)で掴んでしまい、「ap convert は動いているのに No Image で進まない」で数時間を溶かしました。ファミリは show ap convert-image-list のビルド文字列 for Hercules で確認できます。
実際にやった手順
0. 用意したもの
Aruba サポートポータル(要アカウント/エンタイトルメント)から:
-
ArubaOS_VMC_8.3.x_*.ova(壁2 用の中継コントローラ) -
ArubaOS_VMC_8.10.x_*.ova(ap convertを実行するコントローラ) -
ArubaInstant_Hercules_8.13.x(変換後に AP が動かす Instant 本体。機種のファミリに合わせる)
バージョンについて:この記事では、変換に使う VMC は
8.10、AP が最終的に動かす Instant は8.13.xを使っています。ap convertは「flash に置いた Instant イメージ」をそのまま配るだけなので、VMC のバージョンと Instant のバージョンは別物で構いません(VMC はap convertが使える8.6以上なら OK)。「6.5 → 8.3 → 8.10」は AP を変換できる状態まで持っていくための足場で、AP が実際に動く版は最後に焼く 8.13.x です。
0.5 VMC を Proxmox に建てる(8.3 / 8.10 共通)
今回 VMC は Proxmox VE に建てました。OVA を展開してディスクを取り込み、NIC を4本つけるだけです。8.3 と 8.10 で手順は同じなので、順番に建て替えて使います。
# 1) OVA を展開(.ovf と vmdk が出てくる)
tar xf ArubaOS_VMC_8.3.x_*.ova
# 2) VM の器を作成(VMID=900 の例)。VMC は 4 vCPU / 6GB / KVM 前提
qm create 900 --name aruba-vmc --memory 6144 --cores 4 --cpu host \
--ostype l26 --serial0 socket --vga std
# 3) ディスク2本を取り込んで IDE で接続(VMC は IDE からブート)
qm importdisk 900 ArubaOS_VMC_*-disk1.vmdk local-lvm
qm importdisk 900 ArubaOS_VMC_*-disk2.vmdk local-lvm
qm set 900 --ide0 local-lvm:vm-900-disk-0 --ide1 local-lvm:vm-900-disk-1 \
--boot order=ide0
# 4) NIC を4本つける。VMC は最低4アダプタ必要で、
# 1本目=mgmt、2本目以降=データ(GE0/0/0〜)。AP と同じブリッジに挿す
qm set 900 --net0 virtio,bridge=vmbr0 \
--net1 virtio,bridge=vmbr0 \
--net2 virtio,bridge=vmbr0 \
--net3 virtio,bridge=vmbr0
# 5) 起動する(初期セットアップは Proxmox Web UI の「Console」で開く)
qm start 900
補足:
-
local-lvmやvmbr0は環境に合わせて読み替えます。取り込んだディスクのボリューム名はqm config 900で確認できます。 -
KVM 必須(
--cpu host)。KVM が効かない(TCG)と VMC のデータプレーンが起動しません。 - AP は「データポート側(GE0/0/0…)」のブリッジと同じ L2 に居れば OK。セットアップダイアログの
Controller VLAN port [GE 0/0/0]がそのポートです。
1. VMC(8.3) を建てて 6.5 → 8.3
8.3 VMC を建て、初期セットアップダイアログを流します。主な入力は次のとおりです(standalone / 管理IP / Country JP3 あたり)。
Enter System name [ArubaMC-VA]: vmc
Enter Switch Role (standalone|md) [md]: standalone
Enter Controller VLAN ID [1]:
Enter Controller VLAN port [GE 0/0/0]:
Enter Controller VLAN port mode (access|trunk) [access]:
Enter VLAN interface IP address [172.16.0.254]: 192.168.10.250
Enter VLAN interface subnet mask [255.255.255.0]:
Enter IP Default gateway [none]: 192.168.10.1
Do you wish to configure IPV6 address on vlan (yes|no) [yes]: no
Enter Country code (ISO-3166), <ctrl-I> for supported list: JP3
You have chosen Country code JP3 for Japan (yes|no)?: yes
Enter the controller's IANA Time zone [America/Los_Angeles]: Asia/Tokyo
...
Enter Password for admin login (up to 32 chars): ********
Re-type Password for admin login: ********
...
Do you wish to accept the changes (yes|no): yes
起動したら、CPsec の自動証明書を有効化しておきます。これを忘れると CAP が承認されず弾かれます。
(host) # configure terminal
(host) (config) # control-plane-security
(host) (Control Plane Security Profile) # auto-cert-allow-all
(host) (Control Plane Security Profile) # auto-cert-prov
(host) (Control Plane Security Profile) # end
(host) # write memory
あとは AP を挿すだけです。自動でこの VMC を見つけ、8.3 の CAP イメージを取得してリブートし、8.3 になっていきます。
(host) # show ap database
Name Group AP Type IP Address Status Flags Switch IP
---- ----- ------- ---------- ------ ----- ---------
80:8d:b7:xx:xx:x1 default 315 192.168.10.11 Upgrading IL 192.168.10.250
80:8d:b7:xx:xx:x2 default 315 192.168.10.12 Upgrading IL 192.168.10.250
80:8d:b7:xx:xx:x3 default 315 192.168.10.13 Up 2m:30s 2IL 192.168.10.250
...
Total APs:N
Upgrading(取得中)→ 再起動 → Up と遷移します。全機が Up になれば 8.3 化完了です。
※
FlagsのI=Inactive、L=Unlicensed。未ライセンスでもUpになるので、ここは気にしなくて大丈夫です(変換には影響しません)。
2. VMC(8.10) に載せ替えて 8.3 → 8.10
8.3 VMC を落として 8.10 VMC を起動します。AP は再びコントローラを見つけて 8.10 を取得し、8.10 になります(8.3 以降は 14 MiB 上限が無いので、大きいイメージでも通ります)。CPsec の自動証明書は 8.10 側でも同様に有効化しておきます。
ここで大事なのは 「
ap convertが使えるコントローラ(8.6 以上)に載せ替える」 ことで、8.10という特定バージョンに意味はありません(8.6+ なら何でも可)。8.3の VMC にはap convertが無いので、変換用にもう1台必要、というだけです。AP がこの版の CAP に上がるのは自動で、最後の手順3で Instant に置き換わるので、この8.10CAP は通過点です。
ここでハマりました:VMC を “同じ IP / 同じ MAC” のまま載せ替えると、AP が「コントローラはまだ居る」と誤認して再登録しません。
私は最初8.3と8.10を同じ192.168.10.250で切り替えたのですが、AP が古いセッションを掴んだまま 10分以上まったく反応しませんでした(ISAKMP も張らない)。最終的には AP 自身のハートビート切れ再起動で復帰しましたが、待ち時間が無駄になります。
対策:8.10VMC を 別 IP(例192.168.10.251)にして AP に新しいコントローラとして見せるか、切替前に旧 VMC 側で AP を明示的にリブートしておきます。これで素直に乗り換わります。
全機が 8.10 で Up になれば準備完了です。この時点でも AP は未ライセンスで Up ↔ Down を繰り返しますが、変換には支障ありません。
3. ap convert で Instant 化
8.10 VMC の flash に Hercules の Instant イメージを置きます(copy tftp: / copy scp: / copy usb: など)。
(host) # copy scp: <host> <user> ArubaInstant_Hercules_8.13.x flash: ArubaInstant_Hercules_8.13.x
(host) # show ap convert-image-list # "for Hercules" が出ればOK
対象 AP を登録して変換を起動します。no-pre-validation がキモです。
(host) # ap convert add ap-name <AP-MAC> # 変換したい AP を列挙(or all-aps)
(host) # ap convert active specific-aps local-flash ArubaInstant_Hercules_8.13.x no-pre-validation
-
no-pre-validation:本来は変換前に Activate/Central への到達性を検証しますが、オフライン環境ではここで落ちる(pre-validation fail)ので外します。 -
ライセンス不要:AP が未ライセンス(
Unlicensed / Inactive)でも、no-pre-validationならイメージ配布=変換は通ります。ap convert自体は Base OS 機能です。 -
一括変換:
all-apsで登録済みの AP をまとめて変換できます。台数が多いほど楽です。私も複数台まとめて流しました。
変換中と完了時の show ap convert-status は次のように見えます(ここがクライマックスです)。
変換中:
(host) # show ap convert-status
AP Conversion Parameters
------------------------
Item Value
---- -----
Status Active
Mode Specific APs
Image Source Flash
Current Status Updating APs ← 変換中
AP Image Conversion AP Status Summary
-------------------------------------
AP Image Conversion State Count
------------------------- -----
Updating N
AP Image Conversion Status
--------------------------
AP Name AP Mac AP Serial # AP IP AP Type Upgrade State
------- ------ ----------- ----- ------- -------------
80:8d:b7:xx:xx:x1 80:8d:b7:xx:xx:x1 CNXXXXXXX1 192.168.10.11 315 Updating
80:8d:b7:xx:xx:x2 80:8d:b7:xx:xx:x2 CNXXXXXXX2 192.168.10.12 315 Updating
...
完了時: Current Status が Update Done になり、各 AP は Instant として再起動して一覧から消えます。
(host) # show ap convert-status
...
Current Status Update Done ← 完了
AP Image Conversion AP Status Summary
-------------------------------------
AP Image Conversion State Count
------------------------- -----
Updated N
4. Instant として立ち上がる
変換後の AP はもう Instant AP です。同一ネットワークに居る同士は自動で 仮想コントローラ(VC)クラスタを組みます。全機が同じ VC に redirect されていれば、同じクラスタに入っています。
$ curl -s -o /dev/null -w "%{redirect_url}\n" http://<AP-IP>/
https://<VC-IP>:4343/
管理は https://<VC-IP>:4343(初回ログインは admin/admin など、機種既定に従う)。以降は Web UI から SSID や設定を投入できます。目的だった「Web UI 付きの AP」が手に入りました。
結果
中古で買った AP-315(すべて 6.5.0.0) を、無事に Instant(Hercules 8.13.x) へ変換できました。全台が同じ仮想コントローラに join し、1つの Web UI(https://<VC-IP>:4343)からまとめて管理できる状態になりました。
まとめ
- 中古で拾った Campus AP-315 は、VMC +
ap convertで Instant 化して再利用できます。コンソールも恒久ライセンスも不要、ネットワーク経由で一括です。 -
6.5.0.0は 14 MiB 上限があるので8.3を一度挟みます。Instant イメージは 機種のファミリ(315→Hercules) を間違えないように。 - VMC を差し替えるときは 別 IP にしておくと、旧セッションを掴んだまま沈黙する事故を避けられます。
- 変換後は自動でクラスタを組み、Web UI 付きの AP になります。今回は中古の AP-315 を全台この手順で Instant 化できました。
動かないと思って眠っていた中古 AP も、Instant 化すれば十分に戦力になります。捨てる前に、一度試してみてください。