Soracom

Users

ドキュメント

概要と機能

概要 

soratun (sora-com tun-nel, ソラタン) とはバーチャル SIM/Subscriber の作成から接続までを支援する SORACOM Arc 用のクライアントエージェントです。soratun/LICENSE に基づいて as-is で提供されます。

デバイス要件 に記載しているように SORACOM Arc は Linux カーネルに含まれる WireGuard 実装でも動作します。soratun の利用は必須ではありません。以下のような観点で使用する実装を選択してください。

soratunWireGuard
パフォーマンスユーザー空間で 1 つのプロセスとして動作するため相対的に低速になります。カーネル空間で動作するため高速に動作します。
安定性WireGuard 実装は公式の wireguard-go をライブラリとして使用していますがカーネルの方がテストカバレッジが広いと考えられます。カーネルの一部としてメンテナンスされているため安定性は高いと考えられます。
通信のセキュリティ公式の wireguard-go をライブラリを使用しており、プロトコルや通信に関わる部分に変更を加えていないためカーネルと同等と考えています。-
導入1 つのバイナリファイルのコピー (SIM 認証を利用する場合は Krypton CLI を含む 2 つのファイルのコピー)OS のパッケージマネージャーによるインストール
SORACOM プラットフォームとの統合バーチャル SIM/Subscriber のブートストラップや接続が容易です。SORACOM API などを利用し WireGuard の構成ファイルを自動的に生成するような仕組みの実装が必要です。

機能 

soratun は以下のような機能を提供します。

  1. SORACOM Arc で接続するための WireGuard のトンネルを作成します。

  2. SORACOM Arc から受信した接続情報および設定ファイルを元にオペレーティングシステムのルーティングテーブルを設定します。具体的には以下のネットワーク宛の通信を soratun のネットワークインターフェース経由に設定します。すでに同じルートが定義されている場合は上書きします。

    • SORACOM Arc セッション作成時にサーバーから返却された arcAllowedIPs (通常は 100.127.0.0/16)
    • soratun の設定ファイルにお客様で定義する additionalAllowedIPs (デフォルトは設定無し)
  3. systemd の watchdog をサポートします。定期的に SORACOM Arc の接続状況を systemd にレポートします。

  4. バーチャル SIM/Subscriber のブートストラップを支援します。

  5. 設定で有効にされている場合、60 秒毎に以下のようなメトリックスをログに出力します。

    soratun_sent_bytes_total{simId="バーチャル SIM/Subscriber の SIM ID",interface="インターフェース名",endpoint="SORACOM Arc エンドポイント"} 送信バイト数
    soratun_received_bytes_total{simId="バーチャル SIM/Subscriber の SIM ID",interface="インターフェース名",endpoint="SORACOM Arc エンドポイント"} 受信バイト数
    soratun_latest_handshake_epoch{simId="バーチャル SIM/Subscriber の SIM ID",interface="インターフェース名",endpoint="SORACOM Arc エンドポイント"} 最終ハンドシェイク時刻
    
ブートストラップとは
ブートストラップとはデバイス側から新しいバーチャル SIM/Subscriber を作成することを指します。

提供するコマンドおよび設定ファイルの詳細は以下のドキュメントを参照してください。

ブートストラップの種類 

soratun は認証方式の異なる 3 種類のブートストラップ方式を支援します。

  1. SORACOM API 認証キーを使用する方法: デバイスに USB ドングルを指したり、SIM カードを持っていない場合も手軽にバーチャル SIM/Subscriber を作成し SORACOM Arc をお試しいただけます。デバイスに SORACOM API の認証キーを保存しなければならないため、Raspberry Pi の盗難などの際に漏洩のリスクがあります。また、認証キーをそれぞれの Raspberry Pi へセキュアに配布する手段も必要になります。
  2. SORACOM Krypton のセルラー回線認証を使用する方法: セルラー接続そのものを認証の手段としますので、デバイス側に認証情報を保存しておく必要がありません。SORACOM Air for セルラーによる通信がセットアップ済みであれば比較的容易にバーチャル SIM/Subscriber の作成と接続ができます。SIM 認証と異なり plan01s や plan01s - Low Data Volume 以外のサブスクリプションでも利用できます。
  3. SORACOM Krypton の SIM 認証を使用する方法: SIM カードそのものを認証の手段としますので、デバイス側に認証情報を保存しておく必要がありません。また、SIM カードに保管された認証情報を使用しますので、plan01s または plan01s - Low Data Volume の挿入された SORACOM Onyx LTE USB ドングルが Raspberry Pi に取り付けられているだけで、SORACOM Air for セルラーの接続さえも無しにブートストラップできます。
認証方式バーチャル SIM/Subscriber タイプ要件テスト済み OS
SORACOM API 認証キースタンドアロンSORACOM API 認証キーLinux, macOS
SORACOM Krypton セルラー回線認証サブスクリプションコンテナSORACOM Air for セルラー接続Linux, macOS
SORACOM Krypton SIM 認証サブスクリプションコンテナLinux
認証方式によるブートストラップの挙動の違い
  • SORACOM API 認証キーを使用する方法: 新しいスタンドアロンのバーチャル SIM/Subscriber (特定の SIM カードに紐付かないバーチャル SIM) を作成します。
  • セルラー回線あるいは SIM 認証を使用する方法: ブートストラップ時に使用されている SIM カードのサブスクリプションコンテナにバーチャル SIM/Subscriber が追加されます。同じ SIM カードを使用している場合は複数回実行しても新しいバーチャル SIM/Subscriber は追加されません。
SIM 認証をサポートするサブスクリプション
SORACOM Krypton SIM 認証は SORACOM IoT SIM plan01s および plan01s - Low Data Volume のみをサポートします。

サポート対象プラットフォーム 

以下のプラットフォームをサポートします。

  • Linux amd64
    • Ubuntu 20.04.2 LTS
  • Linux arm (Raspberry Pi 32-bit)
    • Raspberry Pi OS 2021-05-07
    • Ubuntu 20.04.2 LTS

また、テストと開発用途として以下のプラットフォームで動作します。サポートはありません。

  • macOS Big Sur 以降