Soracom

Users

ドキュメント
Home ドキュメント SORACOM Arc soratun を利用して接続する

soratun で SIM 認証を使用してバーチャル SIM/Subscriber をブートストラップする

デバイスにインストールした soratun を使ってバーチャル SIM/Subscriber を作成し、SORACOM プラットフォームへ接続します。soratun については、soratun の概要と機能 を参照してください。

ここでは、soratun がサポートする 3 種類のブートストラップ方法 のうち、Krypton の「Endorse による SIM 認証」を使用する方法 を説明します。

この方法では、IoT SIM に保管された認証情報を使用するため、ほかのブートストラップ方法と比べて、以下の特徴があります。

操作を始める前に準備が必要です (クリックして確認してください)

(1) デバイス、IoT SIM、および USB ドングルを用意する

以下の製品を用意します。

(2) デバイスをインターネットに接続する

任意の方法 (例: Wi-Fi) で、デバイスをインターネットに接続します。この時点では、SORACOM プラットフォームに接続できないことを想定しています。

(3) デバイスに soratun をインストールする

デバイスに、soratun をインストールします

準備完了

ステップ 1: SORACOM Krypton を有効化する

準備した IoT SIM に対して、Krypton を有効化します。詳しくは、SORACOM Krypton を有効化する を参照してください。

Krypton に Amazon Cognito や AWS IoT の設定を追加しないでください

ここでは Krypton の有効化 (スイッチをクリックして「ON」にする) のみを行います。Amazon Cognito や AWS IoT の設定を追加しないでください。

ステップ 2: SORACOM Air メタデータサービスを有効化する

準備した IoT SIM に対して、メタデータサービスを有効化します。詳しくは、メタデータサービスを設定する を参照してください。

ステップ 3: デバイスにパッケージをインストールする

IoT SIM に保管された認証情報を読み取るために、必要なパッケージをデバイス (例: Raspberry Pi) にインストールします。

  1. デバイスにログインします。

  2. 必要なパッケージをインストールして、デバイスを再起動します。

    $ sudo apt install -y libpcsclite-dev pcscd libpcsclite1 cu
    

ステップ 4: SORACOM Krypton client (Golang version) をインストールする

IoT SIM に保管された認証情報を読み取るために、SORACOM Krypton client (Golang version) (以下、Krypton CLI) をデバイスにインストールします。

  1. デバイスにログインします。

  2. Krypton CLI を公開する GitHub レポジトリReleases ページ から、SORACOM Arc のブートストラップをサポートする v0.3.0 以降のファイルをダウンロードします。

    利用するプラットフォームにあわせたファイルをダウンロードしてください。たとえば、Raspberry Pi OS (32 bit) の場合は、krypton-cli_x.x.x_linux_arm.tar.gz です。

    $ wget https://github.com/soracom/krypton-client-go/releases/download/vx.x.x/krypton-cli_x.x.x_linux_arm.tar.gz
    
  3. ダウンロードしたファイルを展開し、実行形式ファイル krypton-cli を任意のディレクトリにコピーします。

    $ tar xvf krypton-cli_x.x.x_linux_arm.tar.gz
    $ sudo cp krypton-cli /usr/local/bin
    
  4. krypton-cli が実行できることを確認します。

    $ krypton-cli -h
    
    Usage of krypton-cli:
        -baud-rate uint
            Baud rate for communication device (e.g. -b 57600) (default 57600)
        -clear-key-cache
            Remove all items in the key cache
        -data-bits uint
            Data bits for communication device (e.g. -s 8) (default 8)
        :
    

    以上で、krypton-cli のインストールは完了です。

krypton-cli -h の実行結果が異なる場合は

Release ページからダウンロードするファイルが正しくない可能性があります。利用するプラットフォームにあわせて、ファイルをダウンロードしてください。

たとえば、以下のように表示される場合があります。

$ krypton-cli -h
-bash: /usr/local/bin/krypton-cli: cannot execute binary file: Exec format error

デバイスに、Go 言語の環境がインストールされている場合は、以下のコマンドを実行してもインストールできます。

$ go install github.com/soracom/krypton-client-go/cmd/krypton-cli@latest

ステップ 5: Soracom Onyx - LTE™ USB ドングル (SC-QGLC4-C1) を取り付けて機内モードを有効化する

Air for セルラーを利用して SORACOM プラットフォームにアクセスする必要はありません。

IoT SIM を挿入した USB ドングルをデバイスに取り付ける

USB ドングルに IoT SIM を挿入してから、デバイスに取り付けます。詳しくは、Soracom Onyx - LTE™ USB ドングルをセットアップする を参照してください。

Raspberry Pi (Raspberry Pi OS) の設定 の手順に従って setup_air.sh を実行して、自動的にセルラー回線で通信するように設定している場合は、以下のコマンドを実行して wwan0 インターフェースを削除してください。

$ sudo ifdown wwan0
$ ping -c 4 pong.soracom.io # SORACOM プラットフォームから応答が返ってこないことを確認

なお、ifdown: unknown interface wwan0 と表示された場合は、以下のコマンドを実行してみてください。

$ sudo ifconfig wwan0 down
$ ping -c 4 pong.soracom.io # SORACOM プラットフォームから応答が返ってこないことを確認

USB ドングルの機内モードを有効化する

  1. デバイスにログインします。

  2. USB ドングルが取り付けられているシリアルポート (例: /dev/ttyUSB3) に接続します。

    USB ドングルが /dev/ttyUSB3 に取り付けられている場合:

    $ cu -l /dev/ttyUSB3 -s 57600
    
    Connected.
    
  3. ATE1 コマンドと、AT+CFUN=4 コマンドを実行して、機内モードを有効化します。

    ATE1
    OK
    AT+CFUN=4
    OK
    

    はじめて入力するときは、ATE1 は表示されません。

  4. ~. を入力します。

    cu コマンドが終了します。

機内モードを解除するには

機内モードを解除するには、上記と同様の手順でシリアルポートに接続し、AT+CFUN=1 (機内モードを無効化) を実行します。

ステップ 6: Krypton CLI で IoT SIM のメタデータを取得できることを確認する

以下のコマンドを実行して、imsi などが取得できることを確認します。

$ krypton-cli -operation getSubscriberMetadata
{
  "imsi": "295051234567890",
  "msisdn": "423612345678",
  "ipAddress": null,
  "operatorId": "OP1234567890",
  "apn": "soracom.io",
  "type": "s1.4xfast",
  "groupId": "12345678-abcd-1234-abcd-123456789010",
  "createdAt": 1640962800000,
  "lastModifiedAt": 1643641200000,
    :
}
Krypton CLI がエラーで終了する場合

以下のようなエラーが出力され実行に失敗する場合があります。その場合は、以下の説明に従って追加のオプションを指定してください。ここで追加したオプションは、このあとの ステップ 7: ブートストラップする でも追加します。

  • no UICC interface is found

    USB ドングルが正しく接続できていないか、自動認識に失敗している可能性があります。以下の手順でシリアルポートを特定し、Krypton CLI を実行する際に、 -interface comm -port-name (シリアルポート) を追加してください。

    1. Raspberry Pi の USB ポートに USB ドングルだけを接続し、以下のコマンドを実行して、Manufacturer などの情報が表示されるシリアルポートを特定します。

      以下のように表示された場合は、正しいシリアルポート (/dev/ttyUSB3) が指定されています。

      $ krypton-cli -device-info -port-name /dev/ttyUSB3
      Manufacturer: Quectel
      Model: EG25
      Revision: EG25ABCDEFGHIJKL
      S/N: 123456789012345
      

      一方、以下のように表示された場合は、誤ったシリアルポートが指定されています。異なるシリアルポートを指定してください。

      $ krypton-cli -device-info -port-name /dev/ttyUSB1
      Manufacturer: 
      Model: 
      Revision: 
      S/N: 
      
    2. 正しいシリアルポートが判別できた場合は、Krypton CLI を実行する際に、 -interface comm -port-name /dev/ttyUSB3 を追加します。

      $ krypton-cli -operation getSubscriberMetadata -interface comm -port-name /dev/ttyUSB3
      {
        "imsi": "295051234567890",
        "msisdn": "423612345678",
        "ipAddress": null,
        "operatorId": "OP1234567890",
        "apn": "soracom.io",
        "type": "s1.4xfast",
        "groupId": "12345678-abcd-1234-abcd-123456789010",
        "createdAt": 1640962800000,
        "lastModifiedAt": 1643641200000,
            :
      }
      
  • key agreement url responded with error: 400 Bad Request

    以下の内容をすべて確認してください。

    • IoT SIM のステータスを「使用中 (Active)」に変更してください。詳しくは、IoT SIM のステータスを変更する を参照してください。

    • ステップ 1: SORACOM Krypton を有効化する の手順に従って、Krypton が有効化してください。

    • plan-K2 K2-300MB を USB ドングルに取り付けた場合は、 -keys-api-endpoint-url https://api.soracom.io/v1/keys -provisioning-api-endpoint-url https://api.soracom.io を追加してください。

      $ krypton-cli -operation getSubscriberMetadata -keys-api-endpoint-url https://api.soracom.io/v1/keys -provisioning-api-endpoint-url https://api.soracom.io
      
  • unexpected +CSIM response

    この場合は、USB ドングルの機内モードが有効化されていません。詳しくは、USB ドングルの機内モードを有効化する を参照してください。

    機内モードを有効化しても同じエラーが表示されるときは、少し待ってから再度実行してください。

ステップ 7: ブートストラップする

Krypton CLI で IoT SIM のメタデータを取得できたら、ブートストラップします。

ブートストラップが完了すると、Krypton および Arc の料金が発生します。詳しくは、以下のページを参照してください。

ブートストラップ時に USB ドングルに取り付けられていた IoT SIM に、バーチャル SIM/Subscriber が追加されます。すでにバーチャル SIM/Subscriber が追加されている場合は、この手順を複数回実行しても新しいバーチャル SIM/Subscriber は追加されません。

  1. Krypton の「Endorse による SIM 認証」を使用する方式でブートストラップします。

    --config フラグのあとに指定する soratun 設定ファイルのパス (/path/to/arc.json) は、任意のパスを指定してください。

    $ soratun bootstrap sim --config /path/to/arc.json
    

    ブートストラップが完了すると、soratun 設定ファイルが作成され、ファイルのパスが表示されます。

    Created/updated configuration file: /path/to/arc.json
    

    soratun 設定ファイルについて詳しくは、soratun 設定ファイルリファレンス を参照してください。

    soratun bootstrap sim がエラーで終了する場合

    ステップ 6: Krypton CLI で IoT SIM のメタデータを取得できることを確認する の手順で追加したオプション (-operation getSubscriberMetadata を除く) を、soratun bootstrap sim を実行するときにも追加してください。たとえば、 -keys-api-endpoint-url https://api.soracom.io/v1/keys -provisioning-api-endpoint-url https://api.soracom.io を指定した場合は、各オプションの先頭の - を 2 つに変更して、以下のように指定します。

    $ soratun bootstrap sim --config /path/to/arc.json --keys-api-endpoint-url https://api.soracom.io/v1/keys --provisioning-api-endpoint-url https://api.soracom.io
    
  2. USB ドングルを取り外します。

ブートストラップは完了していますが WireGuard インターフェースは作成されていません

続けて、WireGuard インターフェースを作成して、SORACOM プラットフォームにアクセスします。詳しくは、ステップ 8: SORACOM プラットフォームにアクセスする を参照してください。

USB ドングル以外の SIM カードリーダーを利用する場合は、soratun コマンドリファレンス: soratun bootstrap sim コマンド を参考にポート名、ボーレート、データビットなどを変更してお試しください。

ステップ 8: SORACOM プラットフォームにアクセスする

soratun で WireGuard インターフェースを作成すると、SORACOM プラットフォームにアクセスできます。詳しくは、以下のページを参照してください。

再度 SIM 認証を使用してブートストラップする

以下のようなときは再度ブートストラップする必要があります。

ステップ 5: Soracom Onyx - LTE™ USB ドングル (SC-QGLC4-C1) を取り付けて機内モードを有効化する 以降の手順を行ってください。