Soracom

Users

ドキュメント
Home ドキュメント SORACOM Arc はじめに

SORACOM Arc の特徴

SORACOM Arc (以下、Arc) は、SORACOM Air を利用しないデバイスで、SORACOM プラットフォームを利用するためのサービスです。バーチャル SIM/Subscriber (仮想的な IoT SIM) を作成して、SORACOM プラットフォームに接続します。

Arc は、オープンソースの VPN 実装である WireGuard® を要素技術として採用しています。そのため、IP ネットワーク (Wi-Fi、イーサネット、衛星通信など) を通じてインターネットにアクセスできるデバイスに WireGuard 実装 をインストールすれば、Arc を利用して SORACOM プラットフォームにアクセスできます。

SORACOM Arc SORACOM Arc

SORACOM プラットフォームにアクセスできるデバイスは制限されています

「SORACOM プラットフォーム」は、SORACOM Beam / Funk / Funnel / Harvest Data、Virtual Private Gateway (VPG) などの SORACOM サービスの総称です。SORACOM プラットフォームを利用するには、Arc も含めて、以下のいずれかの IoT 向けデータ通信サービスを利用する必要があります。

IoT 向けデータ通信サービス説明
SORACOM Air for セルラー2G / 3G / 4G / LTE-M / 5G(NSA) に対応した IoT 向けのデータ通信 SIM "IoT SIM" を使用した IoT 向けデータ通信サービスです。
SORACOM Air for SigfoxLoRaWAN を使用した IoT 向けデータ通信サービスです。
SORACOM Air for LoRaWANSigfox を使用した IoT 向けデータ通信サービスです。
SORACOM Arc任意の IP ネットワーク (Wi-Fi やイーサネット、衛星通信などを通じたインターネット接続) から SORACOM プラットフォームへのセキュアなリンクを提供するサービスです。
Arc サーバーについて
  • Arc サーバーは、WireGuard プロトコルのピアにあたるサーバーです。Arc サーバーのホスト名とポート番号は以下のとおりです。* の部分は、バーチャル SIM/Subscriber のセッションが確立されるたびに変更される可能性があります。固定することはできません。
    • ホスト名: *.arc.soracom.io
    • ポート番号: 11010
  • SORACOM プラットフォームのメンテナンスに伴い、任意のタイミングで Arc サーバーの切替が行われる場合があります。その際、WireGuard クライアントが再度ハンドシェイクするまでの間 (数十秒程度)、接続が中断する場合があります。
Arc は SORACOM プラットフォームとの閉域網を提供するサービスです
  • Arc を利用するデバイスと SORACOM プラットフォームの間は、WireGuard を使用した VPN で接続されます。

  • Arc を利用するデバイスに作成した WireGuard インターフェースを経由して、SORACOM プラットフォームの以下の IP アドレスと通信できます。それ以外の IP アドレスとの通信は、デバイスで指定されたインターフェースを経由します。

    • 100.127.0.0/16 (100.127.10.16/32 を除く)
    • 54.250.252.67/32

WireGuard 実装について

Arc を利用する際は、デバイスを WireGuard のクライアント (ピア) として動作させるため WireGuard 実装のインストールが必要です。デバイス要件はそれぞれの WireGuard 実装に準拠します。

WireGuard 実装の例:

  • soratun (ソラタン) (ソラコムが提供する Arc 用のクライアントエージェント)
  • Linux カーネルに含まれる WireGuard 実装
  • WireGuardInstallaion (英語) や Apple の App Store などで配布されている WireGuard クライアント
WireGuard 実装に対する SORACOM サポート

SORACOM サポートでは、サポート対象プラットフォーム で稼動する soratun、および Linux カーネルに含まれる WireGuard 実装をサポートします。それ以外の WireGuard 実装については、ベストエフォートでサポートさせていただきます。

soratun について

soratun は、ソラコムが提供する Arc 用のクライアントエージェントです。Arc を利用するために必要なバーチャル SIM/Subscriber の作成や、WireGuard インターフェースの作成を支援します。詳しくは、soratun の概要と機能 を参照してください。

SORACOM プラットフォームにアクセスするまでの流れ

Arc を使用して SORACOM プラットフォームにアクセスする際のおおまかな流れは以下のとおりです。

  1. バーチャル SIM/Subscriber を作成して、WireGuard の接続情報を取得します。

  2. 取得した WireGuard の接続情報を、デバイスにインストールした soratun または WireGuard に設定します。

  3. soratun または WireGuard を利用して、デバイスに WireGuard インターフェースを作成します。

  4. WireGuard インターフェースを経由して、SORACOM プラットフォームにアクセスします。

具体的な手順について

上記の流れを実施する具体的な手順は、作成するバーチャル SIM/Subscriber の種類 (プライマリ / セカンダリ)、バーチャル SIM/Subscriber の作成方法によって、以下のように異なります。たとえば、バーチャル SIM/Subscriber をプライマリサブスクリプションとして作成する場合は、バーチャル SIM/Subscriber をユーザーコンソールで作成する方法と、soratun bootstrap authkey コマンドを利用して作成する方法があることがわかります。

バーチャル SIM/Subscriber の種類 (*1)バーチャル SIM/Subscriber の作成方法標準で出力される設定ファイル (*2)具体的な手順の参照先
プライマリ / セカンダリユーザーコンソールWireGuard の設定ファイル
プライマリsoratun bootstrap authkey コマンドsoratun 設定ファイルsoratun で SORACOM API の認証キーを使用してバーチャル SIM/Subscriber をブートストラップする
セカンダリsoratun bootstrap cellular コマンドsoratun 設定ファイルsoratun でセルラー回線認証を使用してバーチャル SIM/Subscriber をブートストラップする
セカンダリsoratun bootstrap sim コマンドsoratun 設定ファイルsoratun で SIM 認証を使用してバーチャル SIM/Subscriber をブートストラップする
  • (*1) この列に「プライマリ」と書かれている行は、バーチャル SIM/Subscriber をプライマリサブスクリプションとして作成できることを表しています。
  • (*2) WireGuard の設定ファイルと、soratun 設定ファイルは相互に変換できます。したがって、ユーザーコンソールでバーチャル SIM/Subscriber を作成して、soratun で WireGuard インターフェースを作成することもできます。設定ファイルの変換方法について詳しくは、WireGuard の設定ファイルと soratun 設定ファイルを変換する を参照してください。
ブートストラップとは

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

しばらくするとデバイスにアクセスできないときは

バーチャル SIM/Subscriber を作成して、デバイスで利用を開始した直後や、デバイスで PING 応答サービス を利用して SORACOM に接続できることを確認した直後は通信できるにもかかわらず、しばらくするとデバイスにアクセスできなくなることがあります。

これは、Arc で利用する WireGuard の「無通信タイマー」が原因になっている可能性があります。

WireGuard の無通信タイマー

WireGuard は一定期間通信が無い場合に接続を切断する機能があります。これを「無通信タイマー」と呼びます。無通信タイマーによって接続が切断されると、SORACOM からデバイスへの通信は行えません。

一方、デバイスから SORACOM に通信するタイミング (例: デバイスで PING 応答サービスを利用したタイミング) では、WireGuard の機能によって自動的に接続が再開され、通信に成功します。また、その後再び一定期間は双方向に通信できる仕組みです。

KeepAlive パケットの送信間隔

上記の仕組みがあるため、デバイスに不定期にアクセスすることを想定しているサービスを利用するケースでは、必要なときにデバイスに接続できない可能性があります。

そこで、そのようなケースで Arc を使用する場合は、KeepAlive パケットを定期的に送信することで、接続が不意に切断されることを防ぎます。たとえば、以下のようなケースで、KeepAlive パケットを定期的に送信することを推奨します。

具体的には、KeepAlive パケットを定期的に送信する際の送信間隔を、WireGuard の PersistentKeepalive で設定します。

  • soratun では、デフォルトで PersistentKeepalive が設定されています。

  • そのほかの WireGuard 実装を利用する場合は、WireGuard の設定で PersistentKeepalive を設定してください。

    wg0.conf の設定例:

    [Peer]
      : (中略)
    PersistentKeepalive = 25
    

なお、Persistentkeepalive の設定値 (上記例では 25) については、NAT and Firewall Traversal Persistence を参照してください。