Soracom

Users

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

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

バーチャル 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 を参照してください。