概要と機能
概要
soratun
(sora-com tun-nel, ソラタン) とはバーチャル SIM/Subscriber の作成から接続までを支援する SORACOM Arc 用のクライアントエージェントです。soratun/LICENSE に基づいて as-is で提供されます。
デバイス要件 に記載しているように SORACOM Arc は Linux カーネルに含まれる WireGuard 実装でも動作します。soratun
の利用は必須ではありません。以下のような観点で使用する実装を選択してください。
soratun | WireGuard | |
---|---|---|
パフォーマンス | ユーザー空間で 1 つのプロセスとして動作するため相対的に低速になります。 | カーネル空間で動作するため高速に動作します。 |
安定性 | WireGuard 実装は公式の wireguard-go をライブラリとして使用していますがカーネルの方がテストカバレッジが広いと考えられます。 | カーネルの一部としてメンテナンスされているため安定性は高いと考えられます。 |
通信のセキュリティ | 公式の wireguard-go をライブラリを使用しており、プロトコルや通信に関わる部分に変更を加えていないためカーネルと同等と考えています。 | - |
導入 | 1 つのバイナリファイルのコピー (SIM 認証を利用する場合は Krypton CLI を含む 2 つのファイルのコピー) | OS のパッケージマネージャーによるインストール |
SORACOM プラットフォームとの統合 | バーチャル SIM/Subscriber のブートストラップや接続が容易です。 | SORACOM API などを利用し WireGuard の構成ファイルを自動的に生成するような仕組みの実装が必要です。 |
機能
soratun
は以下のような機能を提供します。
SORACOM Arc で接続するための WireGuard のトンネルを作成します。
SORACOM Arc から受信した接続情報および設定ファイルを元にオペレーティングシステムのルーティングテーブルを設定します。具体的には以下のネットワーク宛の通信を
soratun
のネットワークインターフェース経由に設定します。すでに同じルートが定義されている場合は上書きします。- SORACOM Arc セッション作成時にサーバーから返却された
arcAllowedIPs
(通常は100.127.0.0/16
) soratun
の設定ファイルにお客様で定義するadditionalAllowedIPs
(デフォルトは設定無し)
- SORACOM Arc セッション作成時にサーバーから返却された
systemd の watchdog をサポートします。定期的に SORACOM Arc の接続状況を systemd にレポートします。
バーチャル SIM/Subscriber のブートストラップを支援します。
設定で有効にされている場合、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 種類のブートストラップ方式を支援します。
- SORACOM API 認証キーを使用する方法: デバイスに USB ドングルを指したり、SIM カードを持っていない場合も手軽にバーチャル SIM/Subscriber を作成し SORACOM Arc をお試しいただけます。デバイスに SORACOM API の認証キーを保存しなければならないため、Raspberry Pi の盗難などの際に漏洩のリスクがあります。また、認証キーをそれぞれの Raspberry Pi へセキュアに配布する手段も必要になります。
- SORACOM Krypton のセルラー回線認証を使用する方法: セルラー接続そのものを認証の手段としますので、デバイス側に認証情報を保存しておく必要がありません。SORACOM Air for セルラーによる通信がセットアップ済みであれば比較的容易にバーチャル SIM/Subscriber の作成と接続ができます。SIM 認証と異なり plan01s、plan01s - Low Data Volume、planX3 以外のサブスクリプションでも利用できます。
- SORACOM Krypton の SIM 認証を使用する方法: SIM カードそのものを認証の手段としますので、デバイス側に認証情報を保存しておく必要がありません。また、SIM カードに保管された認証情報を使用しますので、plan01s、plan01s - Low Data Volume、または planX3 を挿入した 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、および planX3 のみをサポートします。
サポート対象プラットフォーム
以下のプラットフォームをサポートします。
- 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 以降