Aruba IAPで無線区間のパケットキャプチャ

## やりたいこと
- 無線LAN AP（Aruba IAP）とWiFi端末間（無線区間）の通信をパケットキャプチャする。

## 環境・材料
- Wiresharkが入ったWindowsPC（以下，PC）。今回はWireshark4.0.2を使用。
- Aruba IAP（以下，IAP），今回はAruba instant 8.9.0.2（サポート契約なしで自動更新できたバージョン）を使用。
- PCとIAPがIPリーチャブルであること
- SW-HUBはミラーポート非対応でもOK。
- IAPはSSIDなどの設定が完了しており，WiFi端末がインターネットを利用できる状態になっていること。

## キャプチャの概要
- IAPの設定で，無線インタフェースの送受フレーム（パケット）をミラーして，指定したIPアドレス（Wireshark入りのPC）に送りつけます。
- 送りつけるときにIAPは，フレームをPEEK形式でカプセリングし，さらにUDPでカプセリングします。PEEK形式とは，Airopeek・Ominipeekなどの商用アナライザの互換カプセリング形式のようです。
- Wiresharkで受け取ったパケットを，PEEK形式でデコードします。デコードすると，802.11の制御フレームや，WiFi端末が送受するIPパケットが見えるようになります。

## キャプチャ前の事前調査（IAPのGUI管理画面で確認）
- キャプチャ対象のWiFi端末のMACアドレス。
- IAPクラスタリング環境の場合，WiFi端末が接続しているIAPの実IPアドレスを特定しておきます。

## IAPからPCにフレームをミラーする
- IAPにsshします。ユーザ名とパスワードはGUIログインと同じです。クラスタ構成の場合，WiFi端末が接続している物理IAPにsshします。（仮想IPにsshすると，マスターになっている物理IAPに接続されてしまい，対象のWifi端末をキャプチャできません）
- show ap assosiationを実行します。

```
show ap assosiation
```

- 実行結果でWifi端末のMacを探し，BSSIDを特定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/457890/ebbea58f-fd4f-aacc-0616-d8cca91a3f6e.png)
- pcapコマンドで，無線区間のフレームをPCに送信を開始します。

```
pcap start BSSID PCのIPアドレス 5555 1 10000
```
BSSIDとPCのIPアドレス以外は固定で大丈夫です。
補足すると，5555はPCに送りつけるUDPパケットのポート番号，1はPEEK形式の指定，10000は最大のフレーム長です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/457890/c25d4f03-30b1-656d-1ba0-a4c21ba532ef.png)
ここまでの設定で，IAP側の準備は完了です。無線区間のフレームがミラーされて，PCに送信され始めます。なお，BSSIDはSSID毎の値なので，同じSSIDに接続されているWiFi端末のフレームは全てPCに送信されてしまうのでご注意下さい。

## Wiresharkでキャプチャを見る
- Wireshakを起動し，キャプチャオプションを表示します。
- IAPからUDP/5555を送りつけられたインタフェースを特定し，キャプチャフィルタに「udp port 5555」を設定して開始します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/457890/ec7cf8b0-6a43-8b05-63d1-826c4468f6f9.png)



- IAPから送りつけられたUDP/5555のパケットが流れ始めることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/457890/9e27bcec-193d-ba1a-a847-3fc21ea81855.png)

- このままではただのバイナリデータなので，中身が分かりません。peek形式でデコードし，中身を見えるようにします。
- 適当なパケットの箇所で右クリックして「...としてデコード」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/457890/fac0d4ce-07a0-6336-eb42-cbc483e37fca.png)

- SIGCOMPをクリックして，PEEKPREMOTEに変更し，OKをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/457890/d88ac830-d8b8-3596-d34b-1fcabba4a3ad.png)

- 無線区間のパケット・フレームが見えるようになります。他のAPのビーコンを拾っているようです。飛び交っているSSIDも見えます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/457890/519a47e1-0e05-701b-3493-2dc6f4b8c84e.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/457890/2ff7292d-36be-16c6-526b-8a16250fe7b7.png)

## IAPからのキャプチャ送信を止める
- IAP側は，ミラーを止めるまで延々とUDP/5555を送信し続けてしまうので，きちんとミラーを止めます。
- IAPのCLIで「show pcap」を入力します。pcap-idとintfを確認します。
- 「pcap stop <i>intf pcap-id</i>」を入力するとミラーが止まります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/457890/9e47a1dc-fa08-2619-be07-e9ab30ac13e5.png)

- 再度「show pcap」を入力し，エントリがないことを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/457890/90927b34-fa51-3a93-4556-18877ebc5396.png)




## 参考
https://www.youtube.com/watch?v=1O5vXmBulDE

## 独り言
- Arubaのサポートサイトにプロバイダのメールアドレスでアカウント登録できます（無料）。ここに，IAPのシリアル番号を入れると，最新のファームウェアが入手できるようになります。もちろんサポート契約不要です（ライフサイクルサポートらしいです）。Arubaさん太っ腹。ちなみに私はヤフオクで入手しましたが，前の所有者がシリアル登録していたかどうかは不明です。もしかしたら前の所有者が登録していたらダメかもしれません。