SORACOM VPGを設定して、Peekでパケットキャプチャしてみた（悲しい失敗談付き）

[SORACOM Advent Calendar 2020](https://qiita.com/advent-calendar/2020/soracom) の23日目の記事です。

### 2021/05/28追記
本日、SIM単体でパケットキャプチャーできる[「SORACOM Peek for SIM」](https://blog.soracom.com/ja-jp/2021/05/28/soracom-peek-for-sim/)の提供が開始されました。
Peekがより使いやすくなりそうです。
これもやってみるかー。
なので、この記事の内容は、Peek改め「SORACOM Peek for VPG」の内容になります。

なお、「SORACOM Peek for SIM」については、本日木村さんがQiitaの記事を書かれていますのでそちらをご覧ください（他人の褌）。

https://qiita.com/kkimura/items/ae396d1e95d238ce31f4

## はじめに
今年のソラコムさんのIoTオンラインカンファレンス。[SORACOM Discovery 2020 ONLINE](https://www.discovery.soracom.jp/)で、以下の2つのサービスが発表されました。

- [SORACOM **O**rbit](https://blog.soracom.jp/blog/2020/07/14/soracom-orbit/)
- [SORACOM **P**eek](https://blog.soracom.jp/blog/2020/07/14/peek/)

SORACOM Orbitについては、
[SORACOM Orbit試してみた 〜SORACOM GPS マルチユニット編〜](https://qiita.com/keni_w/items/de0f9ca67af8be315f93)
[SORACOM Orbit試してみた 〜SORACOM LTE-M Button for Enterprise編〜](https://qiita.com/keni_w/items/2f8ec1d6309cd9c5c4ff)
[SORACOM Orbit試してみた 〜Hosted Funkもどきを実装する〜](https://qiita.com/keni_w/items/0658c14bc0459fa9e94e)
と記事を書かせていただいていますが（そういえば、下書きのまま進んでいないのもある）、
SORACOM Peekについては、試していないなと、今回、何を書こうかと考えていた時に思いましたので、
今回は、Peekを試してみた話です。
ボタンネタじゃなくてすみません（出てはくるけど）

## SORACOM Peek とは。
[Peek公式ページ](https://soracom.jp/services/peek/)にも記載してありますが、
「IoT SIM を利用するデバイスの通信時に SORACOM プラットフォームを通過する IP パケットをキャプチャするサービス」
です。

詳細は、
公式ページや、SORACOM UG Online #1で開発者の福島さんが登壇された際の資料をご覧ください。
[![thumbnail](https://files.speakerdeck.com/presentations/14711b9ae6da4c6487cac1064747ff8e/preview_slide_0.jpg)](https://speakerdeck.com/soracom/soracom-peek-ug-online-number-1) 
[超簡単 誰でもとれる pcap: SORACOM Peek でパケットキャプチャ/SORACOM Peek-UG Online #1](https://speakerdeck.com/soracom/soracom-peek-ug-online-number-1)

アプリケーション寄りの人なので、あまりパケットキャプチャーとかしない人ですが、
Wiresharkを使ってキャプチャーしたものを見るんだなーっていうことは理解しているので、頑張ってみます。

ただ、Peekを使うためには、ある設定が必要です。
それは**SORACOM VPG**です。
VPG不要のSIM単位でのPeekを開発中(2020/09/24時点)とのことですが、ああ、ソラコムサンタの時期なので、クリスマスあたりに登場するかもしれませんね。

## SORACOM VPG
私個人では、これまで使うことのなかったVPG(Virtual Private Gateway)。
ついにそれに手を出すことなりました。
そういう意味では、Canal、Door、Direct、Gate、Junctionといったサービスについても実際には使ったことはないですね。

さて、VPGについても、
SORACOM Discovery 2020 ONLINEにて、**Type-E**と**Type-F**の２つのタイプが登場しました。
Type-EとType-Fの違いについては、[公式ページ](https://soracom.jp/services/vpg/)からの転載ですが、
以下になっています。

![VPG1](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/49d17178-1aab-f160-5afb-0646ef0816f8.png)

Type-Eをアウトバウンドフィルターなどの共通オプション機能のみ、Type-Fでは、それに加えて、Canalなどのサービスが使えるようになっているようです。
SORACOM Peekについては両方とも使えます。

VPGを使うと、以下のような料金がかかります。
こちらも[料金ページ](https://soracom.jp/services/vpg/price/)からの転載です。
![VPG2](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/bbb0377f-b1dd-c296-5352-629a4d958ee3.png)

セットアップ料金がそれぞれかかります。Type-EとType-Fでもだいぶ変わるんです。はい。。。
VPG登場当初は、セットアップ料金が9800円だったと記憶してますが、だいぶお安くなりました。

### SORACOM VPGを設定してみる
コンソールにログインし（CLIでできないとダメだなぁ。。。と思う日々）、左メニューのVPGを選択します。
![VPG3](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/31437107-76c0-e0df-3df4-95c9490fa391.png)

[VPGを追加]ボタンをおもむろに押します。
![VPG4](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/9ae5c5e8-1b18-1f2a-ba8f-8a84a7938af7.png)

名前、タイプ、IPアドレスレンジを決めます。
![VPG５](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/93ab021e-6b79-0b6f-4a18-f0b0cb80797f.png)

タイプについては、E、Fの他にCも選べますが、2021年8月以降は作成できなくなるそうです（利用はできる。）
現状ではType-Fが高機能なので、フル機能を使う場合は、Type-Fを選ぶといいと思います。
![VPG６](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/da8bcff0-9c05-b134-bdaf-db9d17a3c8b8.png)

今回は、Type-Eを選びます。
![VPG7](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/7607fedd-9530-8cc3-4319-3a0058b80282.png)
インターネットゲートウェイは、Type-C/Fだと選択肢として選べますが、Type-Eでは選択不可でデフォルト**あり**になります。
![VPG8](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/1bea74af-fd43-8e1c-148e-fd23fac6e4b3.png)

そして、おもむろに「作成」ボタンをクリックします。
料金ページにも記載がありますが、VPG料金の他、セットアップ料金がかかります。
![VPG9](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/6a7ccb1f-36ef-bef4-e035-3b6117ab0599.png)

### 実はやらかした。
今回の場合、Type-Eを使えばよかったのですが、
完全にドキュメントちゃんと読め事案というか、完全にType-EとType-F逆に考えていたので、
とりあえず一回設定してみるかーって設定した時に、
誤ってType-Fを設定してしまったんですね。
VPC Peering(Canal)とかできるんだー、EC2繋いでみるかーとか思った時に気づけよって話だったんですが、
あとで、ドキュメント見直して気づく始末。。。
なので、セットアップ料金が980円かかりました（泣）
![VPG10](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/a10d2430-b2b5-cd3c-81fd-0bb36bad81fb.png)
勉強料だと思うことにします。

### SIMグループ追加
作成されたVPGを選択し、SIMグループを選択します。

基本設定タブで、「グループを追加」ボタンを押して、グループを追加します。
![VPG12](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/0ab90d1e-829d-7488-86d2-de94214970b6.png)

VPGに所属させるグループを選択して、

![VPG1４](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/12c1c6aa-3f20-ef8c-44ff-30b3762d65aa.png)

「作成」をクリックします。
![VPG1５](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/edc12985-6441-cd8e-513f-4fb4de2641b7.png)

今回追加したSIMグループには、

- [LTE-M Button Plus](https://soracom.jp/products/gadgets/button_plus/)
- [GPSマルチユニットSORACOM Edition](https://soracom.jp/products/kit/gps_multiunit/)
- [特定地域向け IoT SIM(plan-D)](https://soracom.jp/products/sim/plan-d/)
    - このSIMはモバイルWi-Fiルーターにセットしてあります。2枚挿しできるモバイルWi-Fiルーターなので、もう1枚も特定地域向け IoT SIM(plan-D)が挿してあります。こちらはVPGにはいないSIMです。

が所属している状態です。
![SIMGroup](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/ab2b9ba9-4ca1-fc1a-a64a-1149b6aa1ce7.png)

ここまでできれば、Peekを使うことができます。

なお、Type-Fでは、VPCピア接続、つまりCanalの設定もできます（汗）
![VPG11](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/60e35fb7-7f00-2358-468b-f83449c9fa96.png)
VPC Peeringなので、この設定をする場合は、IPアドレスレンジが被らないようにしましょう（汗）

## Peekを試す
では、さっそく[Peek](https://soracom.jp/services/peek/)を試してみます。
先ほどの設定画面で、「パケットキャプチャ」タブを選択して、「キャプチャを開始」ボタンをクリックします。
![Peek1](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/341cf1b4-1e69-dcb3-0d6e-9960c9713e1e.png)

ファイル名のプレフィックスとキャプチャ時間を指定して、「キャプチャを開始」ボタンをクリックします。
キャプチャ時間は、最大で86400秒(24時間)が設定できるようです。 
![Peek２](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/a1ccafa9-4bad-7ce4-6bc5-52a059d27f63.png)

では、キャプチャー開始。
ステータスが「REQUESTED」から、
![Peek3](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/a768b434-6b67-0229-a9c4-97290236ce2f.png)

ステータスが「CAPTURING」に変わり、
![Peek4](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/97b7fee6-5acb-a5e3-95c1-50595e14c23c.png)

終わると、「DONE」になります。「リンクを取得」のリンクをクリックして、ファイルリンクを生成します。
![Peek5](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/f24f19ff-9034-50e3-b09f-c63e98f7ae23.png)

「ダウンロード」リンクをクリックして、ファイルをダウンロードします。
![Peek6](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/e89f939d-974a-0aa6-1981-aac5a9f7cb49.png)

これだけ？って感じでした。すごく簡単。

## Wireshark
ダウンロードしてきたデータをWiresharkでみてみます。
そもそもちゃんと見方をわかっていないので、キャプチャーと所感だけ。

### LTE-M Button Plus
これだけらしい。なんか設定間違えたか？？？
![wireshark1](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/4810382d-eab3-074c-f419-808a5caad4f0.png)

**(2020/12/25追記)**DNSパケットがあるはずという指摘があり、確認したところ取れていたので追加しました。 @1stship さんありがとうございます！
上記のパケットキャプチャーの1時間前に押した時のキャプチャーなんですが、毎回DNS見に行くわけではないのかな？と推測してますが、定期的に見てみないとダメかも（再チャレンジか？w）
![wireshark２](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/41c544c7-b613-75ba-b80c-db177db02d0a.png)


### GPSマルチユニットSORACOM Edition
DNSにmetadata.soracom.ioを引きに行って、そことやりとりしてますね。あれ、pong.soracom.ioと一緒ですね。
送信終わると、デバイス側が寝るので、応答返そうとして、エラーになって、リトライしてるみたいですね。

![wireshark2](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/49564f87-9f80-3476-750d-1979357ad772.png)

### 特定地域向け IoT SIM(plan-D)
私物のMacbook ProをWifiモバイルルーターに繋いで、
[pong.soracom.ioに対して、ping飛ばした](https://blog.soracom.com/ja-jp/2020/02/27/pong-soracom-io/)り、ソラコムさんのHPみたりしました。

![wireshark3](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/9fc7a79e-d8be-25dc-b95c-a91508663018.png)

途中で、WifiモバイルルーターのSIM入れ替えて、パケットキャプチャに出てこないことを確認したり、
Wifiモバイルルーター自身がfirmwareの更新チェック行っているのが見えたり、
Macが（多分）appleのAPI呼び出したりするのが見えて、ちょっと面白かったです。
勝手に通信するんじゃねえーって思ったのはホントです。

--- 

中身は今度ゆっくりみてみます(すみません)
とはいえ、味方の初歩などは、以下のサイトを参考しました。
[Wiresharkの基本的な使い方](https://qiita.com/masaomi346/items/a2c99700686e4c8a7a41)
[【初心者向け】wiresharkの簡単な使い方,画面の見方～ファイル保存,通信量解析/トラブルシュートの例～](https://milestone-of-se.nesuke.com/knowhow/wireshark/install-and-how-to-use/)

## 後片付け
とりあえず一旦Peekでパケットキャプチャーできたので、VPGを削除しておきます。

VPGの管理画面で、「高度な設定」タブをクリックします。
![VPG１２](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/af4e45a6-3148-4fc4-2723-e1b416d2913a.png)

一番下の「このVPGを削除」エリアにある「このVPGを削除」ボタンをクリックします。
![VPG13](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/4a673182-0bf5-312f-0a9f-d4160da8d05c.png)

出てきたダイアログで、「削除」ボタンをクリックします。
![VPG14](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/97f98bdb-6f6b-e877-55d2-9cf73daa3463.png)

なお、アクティブなセッションがあると、こんなエラーがでます。
![VPG15](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/515d3b41-f38d-b2e4-d832-b09f1e10ac43.png)

こうなれば削除完了です。
![VPG16](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72752/45fd2c5a-6751-d6f4-f9b2-bb0114b75903.png)

## まとめ
SORACOM Peek、簡単にできるという話でしたが、ほんと簡単にできました。
VPG外でつかえるようになったら
どちらかというと、取得したパケットの中身を理解するほうが大変だったかもです（完全理解したとは絶対にいえない）。
VPGにしろ、Peekにしろ、利用料金かかるので、
最後に利用料金を載せておきます。

### 料金
- [VPG利用料金](https://soracom.jp/services/vpg/price/)
- [SORACOM Peek利用料金](https://soracom.jp/services/peek/price/)