みなさんこんにちは、ソラコムの福島 (taku) です。
本日は SIMの通信内容をSORACOMプラットフォーム上でパケットキャプチャできる「SORACOM Peek」の新機能「SORACOM Peek for SIM」のリリースをお伝えします。 また、今回のリリースに合わせて追加された「キャプチャ停止機能」についても解説します。
ソラコムでは昨年7月に SORACOM Peek (以下 Peek) を発表し、ソラコムの SIM を利用している場合お客様が誰でも簡単に、マイコンといった普通ならば難しいようなデバイスに対してもパケットキャプチャを行うことができる機能を提供をしており、IoTデバイスの開発時における通信の細かな観察から、本番運用におけるトラブルシューティングと幅広くお使いいただいています。 これまでのPeek は VPG という、SORACOMプラットフォーム内の仮想ゲートウェイに対してパケットキャプチャを行なうことができ、VPG に紐付けられている SIM すべての通信を一度にキャプチャすることができました。 実際に Peek をお使いいただいたお客様からは「本番運用をしているSIMのトラブルシュートで、設定を変更せず即座にSIMのパケットキャプチャをしたい」というフィードバックをいただき、本日これらのご要望にお応えできる機能をアナウンスできることを嬉しく思います。
SIM 向け Peek の発表にあたって、今後 「SORACOM Peek」 は SIM 向けの「SORACOM Peek for SIM」(以下 Peek for SIM) および VPG 向けの「SORACOM Peek for VPG」(以下 Peek for VPG) の二つの機能の総称となります。
SORACOM Peek for SIM
SORACOM Peek for SIM で解決できること
Peek for SIM を利用することで SIM 一枚から特別な設定なしで今すぐにパケットキャプチャを開始することができます。デバイスに直接アクセスすることが難しい環境やデバイス上で Linux などの汎用 OS が動いていない場合でもデバイスの通信に影響を与えることなく SORACOM プラットフォーム上でパケットキャプチャを行ない、お客様はその結果生成された pcap ファイルを直接ダウンロードすることができます。自分でデバイス上でパケットキャプチャする場合 pcap ファイルの取り回しというのは往々にして面倒なものです。
以下のようなシナリオを見てみましょう。
うーん、デバイスが想定と違う通信をしているようだぞ、仕方ないパケットキャプチャをしてどんな通信をしているか見てみよう。あれ、デバイスには外部映像出力とキーボードを接続する USB 端子が無いんだった。仕方ない ssh して tcpdump を実行しよう。おや tcpdump がインストールされていない、パケッージマネージャでインストールしよう。よしパケットが取れたので tcpdump を停止し、pcap ファイルを scp でコピーだ。(元の pcap ファイルを消し忘れ、デバイスのストレージ容量が最低限しかなかったので後日容量が足りなくなりそれが原因で発生した問題のデバッグをすることになる)
実は私も似たような経験をしました。いつ目的のパケットがキャプチャできるのか分からなかったので screen 上で tcpdump を実行し放置してそのまま忘れてしまった結果ストレージ容量が足りなくなった、ということもありました。なかなか辛い記憶です。
Peek for SIM の機能はユーザーコンソールよりお使いいただけるのでポチ、ポチ、ポチと数クリックでパケットキャプチャを開始することができます。今までは VPG をご用意いただき SIM をその VPG と同じグループに所属させるなどの設定をしていたところを設定なしですぐにパッケットキャプチャを開始できます。
通信の透明性
一般的にセルラー通信では Peek のようなサービスは提供されていないことが多いです。前例にない、他社がやっていない、一人一人にそのような機能を提供することが現実的でないなど様々な理由が考えられますが、 IoT デバイス向けの通信機能を提供しているソラコムがこの機能を提供することには意義があると開発者である私は思います。
セルラー網を使っていたとしても IoT デバイスである以上プログラムが動作し外部との通信が発生していて、それを前提とした開発・運営をする場合実際何が起こっているかを短時間で知ることは生産性に直接大きな影響があります。 Peek for VPG 発表のブログ で Peek を printf デバッグに例えた通り実際の通信を見て分かることは非常に多くあります。ブラウザの開発者ツールの通信を見ることができるネットワークタブ、使いませんか? 私はめちゃくちゃ使います。
また、コネクテッドなデバイスが実世界にデプロイされるに従ってデバイスが想定通りの通信をしていることを確かめることができるのは広義なセキュリティやガバナンスの文脈で意味のあることだと思います。アプリケーションレベルだけではなくシステム全体の通信レベルで想定外の動作をしていないことをデバイスではなく外部から取得しいつでも確認できることは今後より広まっていくと思われます。
Peek for SIM の使い方
Peek for SIM の利用は簡単です。
ユーザーコンソールからキャプチャ対象の SIM を選択して「パケットキャプチャ」をクリックします。
次に「キャプチャを開始」をクリックします。
さらに以下のように「キャプチャファイル名のPrefix」(任意です)、「キャプチャ時間(秒)」を指定します。「キャプチャを開始」をクリックすると新しいパケットキャプチャセッションが作成され、一覧の一番上に追加されるのを確認したら更新ボタンを押します。
この時作成したパケットキャプチャセッションのステータスが CAPTURING になっていればキャプチャが開始されていますので、デバイスで通信を行ってください。
「キャプチャ時間」で指定した時間が経過した後に更新ボタンを押すと、パケットキャプチャセッションのステータスが DONE になりパケットキャプチャファイルの列に「リンクを取得」が表示されるのでクリックします。
クリックすると「ダウンロード」が表示されるので、クリックするとパケットキャプチャファイル (pcap ファイル) のダウンロードが開始します。
取得したキャプチャファイルは Wireshark などを利用して宛先やパケットの内容を確認できます。
数クリックでパケットキャプチャを開始し、pcapファイルを取得することができました。
ユーザーコンソール以外でも SORACOM API および SORACOM CLI を使用することで SIM に対するパケットキャプチャセッションの作成、リスト、取得、削除が可能です。
定期実行や他の SORACOM サービス、その他 API やプログラムと連携してご利用いただくことが可能ですので是非ご活用ください。
ご利用料金
気になる Peek for SIM の料金は以下のとおりです!
Peek for SIM利用料金
- 110 円 (1キャプチャセッション 最初の1時間分まで)
- 2時間目以降 1時間あたり 22 円
データエクスポート料金
- キャプチャファイルのダウンロードのサイズ容量に応じて、以下の料金が発生します。
- データエクスポート量がアカウント(Operator)毎にひと月に 5GB を超えると 1 GB ごとに 110 円
- 月の利用日数に関わらず月 5GB までは無料となります。
- なお、データエクスポート量は、Peek for SIM と Peek for VPG のデータエクスポート量が合算されます。
1時間に満たない端数は切り上げとなります。たとえば、1時間5分のセッションが行われた場合、2時間分で132円となります。
いずれも日本カバレッジの料金です。
その他の詳細は SORACOM Peek のご利用料金をご確認ください。
キャプチャ停止機能
2つ目の新機能はキャプチャ停止機能です。キャプチャ開始時に「キャプチャ時間(秒)」を指定しますが、キャプチャ開始後に途中でキャプチャを停止することができます。
キャプチャを停止した場合、停止するまでにキャプチャしたパケットはパケットキャプチャファイルに保存され、ダウンロードすることができます。後述しますが、キャプチャの費用はキャプチャした時間のみかかります。
当機能は Peek for VPG および Peek for SIM の両方で使用することができます。
これまでは、想定よりも早く所望のパケットがキャプチャできてしまったという場合でもパケットキャプチャの終了を待たなければいけませんでした。特にトラブルシューティング目的でパケットをキャプチャする場合は事象の再現までどの程度の時間がかかるか読めないため、長めの時間を設定することが多いと思います。
しかし、この機能によってお客様のタイミングでパケットキャプチャを終了させることができます。
キャプチャ停止機能によってより柔軟に Peek をお使いいただくことができ、使い心地がぐっと向上したという自信があります。お客様や社内からも希望する声が多かった機能ですが、遂に皆様にお届けすることができ大変嬉しく思います。
キャプチャ停止機能の使いかた
パケットキャプチャセッションが CAPTURING の場合に「操作」列に 「停止」が表示されるのでクリックします。
本当に停止するか確認する画面に移行され「停止」を押すとパケットキャプチャが停止されます。
停止されたパケットキャプチャセッションのステータスは POSTPROCESSING (後処理中) になり停止までにキャプチャしたパケットを保存します。キャプチャ時間が長いとこの後処理に時間がかかる可能性があります。
更新ボタンを押し後処理が完了していた場合にはステータスが STOPPED になったパケットキャプチャが表示され DONE のものと同様にパケットキャプチャファイルをダウンロードしたり削除することができます。
非常に直感的に操作することができます。
キャプチャ停止機能も他の Peek の機能と同様に SORACOM API および SORACOM CLI での操作が可能です。
ご利用料金
SORACOM Peek のキャプチャ停止機能自体のご利用料金はございません。キャプチャを停止した場合、システム上でのキャプチャ開始からキャプチャ終了までの期間がキャプチャ時間となり、その時間に応じた料金が発生します。
この場合の料金は Peek for VPG および Peek for SIM の料金に準じます。詳細は SORACOM Peek のご利用料金をご確認ください。
まとめ
本日は「SORACOM Peek for SIM」および SORACOM Peek 向けパケットキャプチャ停止機能のご紹介をしました。
Peek for SIM により、より簡単に SIM 1 枚からのパケットキャプチャが可能になり、またパケットキャプチャ停止機能により SORACOM Peek が多くのお客様にとってより使いやすくなりました。
冒頭でも記載しましたが、パケットキャプチャやその後の pcap ファイルの取り回しというのは往々にして面倒なものです。今回従来の Peek for VPG を発展させて VPG がなくても任意のセルラー通信を誰もがいつでもかんたんにキャプチャーできる Peek for SIM やいつでもパケットキャプチャを停止できる機能を提供することで、お客様にストレスの少ない快適なパケットキャプチャを行なっていただけるようになったことをとても嬉しく思っています。
今回のアップデートで SORACOM Peek は非常に手触りの良い、シンプルに目的を達成できるサービスになったと自負しています。常に必要なわけではないけれど、必要になって使った時に便利で頼りになって前よりちょっと好きになる、そんな存在を目指して開発しました。
SORACOM はマイクロサービスアーキテクチャに基づいた分散システムです。パケットキャプチャの仕組みを実装するにあたり、分散環境ならではのユニークな問題が発生し、そういった問題を都度解決していく必要がありました。表面ではシンプルで素朴に見えますが、水面下では頑張って足を掻いています。例えばあなたのダウンロードしたその pcap ファイル、一つのファイルに見えていますが実は… 詳しい話は別の機会に取っておきましょう。
最後に、お客様が SORACOM Peek を使って開発・運営されたサービスやデバイスが世界に出ていくことを願っています。皆様がどんなものを作るのか非常にワクワクしています。
ぜひ、SORACOM Peek をご利用いただけると幸いです。