Soracom

Users

ドキュメント
Home ドキュメント SORACOM Arc soratun を利用する

soratun の概要と機能

soratun (sora-com tun-nel。ソラタン) は、バーチャル SIM/Subscriber の作成、設定、および接続を支援する SORACOM Arc 用のクライアントエージェントです。デバイスにインストールして使用します。ソラコムが、soratun/LICENSE に基づいて as-is で提供しています。

soratun と WireGuard の比較

ソラコムでは、Arc を利用する際は soratun の使用を推奨します。一方で、Arc は Linux カーネルに含まれる WireGuard 実装でも動作します。以下のような観点で、使用する実装を選択してください。

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

デバイスからリクエストして SORACOM でバーチャル SIM/Subscriber を作成し、デバイスをプロビジョニングする (デバイスに WireGuard の接続情報などを保存する) ことを「ブートストラップ」と言います。

soratun の主な機能

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

  • Arc で SORACOM に接続するための WireGuard インターフェースを作成します。

  • SORACOM への通信が WireGuard インターフェースを経由するように、OS のルーティングテーブルを設定します。具体的には、以下のネットワーク宛の通信を WireGuard インターフェース経由に設定します。すでに同じルートが定義されている場合は、上書きされます。

    • バーチャル SIM/Subscriber を作成したときに、SORACOM から提供される arcAllowedIPs
    • soratun 設定ファイルにお客様が指定する additionalAllowedIPs。詳しくは、AllowedIPs の設定 を参照してください。
  • systemd の watchdog をサポートします。定期的に Arc の接続状況を systemd にレポートします。詳しくは、systemd を利用してデバイス起動時に WireGuard インターフェースを作成する を参照してください。

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

    soratun は、認証方式が異なる 3 種類のブートストラップ方式を支援します。詳しくは、ブートストラップの種類 を参照してください。

  • enableMetricsTrue に設定されている場合、60 秒ごとに以下のようなメトリックスをログに出力します。詳しくは、soratun 設定ファイルリファレンス を参照してください。

    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 エンドポイント"} 最終ハンドシェイク時刻
    
リファレンス

soratun が提供するコマンド、および設定ファイルの詳細は、以下のページを参照してください。

ブートストラップの種類

soratun は、バーチャル SIM/Subscriber をブートストラップする方式として、認証方式が異なる 3 種類のブートストラップ方式を支援します。

バーチャル SIM/Subscriber の作成方法バーチャル SIM/Subscriber の種類認証のために必要な情報説明
SORACOM API の認証キーを使用する
(soratun bootstrap authkey コマンド)
プライマリSORACOM API の認証キーSORACOM API の認証キーを、デバイスに安全に配布および保存する必要があります。デバイスが盗難された際に、認証キーが漏洩するリスクがあります。なお、IoT SIM は必要ありません。詳しくは、soratun で SORACOM API の認証キーを使用してバーチャル SIM/Subscriber をブートストラップする を参照してください。
SORACOM Air for セルラーのセルラー回線認証を使用する (*1)
(soratun bootstrap cellular コマンド)
セカンダリ任意のサブスクリプションの IoT SIMSORACOM Air for セルラーのセルラー回線を使用して SORACOM に接続する必要があります。詳しくは、soratun でセルラー回線認証を使用してバーチャル SIM/Subscriber をブートストラップする を参照してください。
Krypton の「Endorse による SIM 認証」を使用する (*1)
(soratun bootstrap sim コマンド)
セカンダリKrypton の「Endorse による SIM 認証」 をサポートするサブスクリプションの IoT SIM (*2)SORACOM Air for セルラーのセルラー回線は使用しないため、SORACOM に接続できていなくても、ブートストラップできます。詳しくは、soratun で SIM 認証を使用してバーチャル SIM/Subscriber をブートストラップする を参照してください。

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

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

  • 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 はサポート対象外です

テストと開発用途として以下のプラットフォームで動作します。ただし、これらのプラットフォームはサポート対象外です。また、Krypton の「Endorse による SIM 認証」を使用したブートストラップはテストされていません。

  • macOS Big Sur 以降