soratun 設定ファイル (/path/to/arc.json
) を作成したら、WireGuard インターフェースを作成します。WireGuard インターフェースが作成されると、SORACOM にアクセス できます。
soratun
で WireGuard インターフェースを作成すると、以下で指定したネットワーク宛の通信が WireGuard インターフェース経由に設定されます。すでに同じルートが定義されている場合は上書きされます。
- soratun 設定ファイルの
arcAllowedIPs
- soratun 設定ファイルの
additionalAllowedIPs
詳しくは、AllowedIPs の設定 を参照してください。
soratun 設定ファイルについて
soratun
で WireGuard インターフェースを作成するには、soratun 設定ファイルが必要です。soratun 設定ファイルは、以下のいずれかの手順で作成します。
なお、soratun 設定ファイルのパスは、バーチャル SIM/Subscriber を作成したり、ブートストラップしたときに、自由に設定できます。
- SORACOM ユーザーコンソールでバーチャル SIM/Subscriber を作成して soratun で接続する場合: WireGuard の設定ファイルから soratun 設定ファイルを作成する で作成します。
- soratun で SORACOM API の認証キーを使用してバーチャル SIM/Subscriber をブートストラップする場合: ステップ 2: ブートストラップする で作成されます。
- soratun でセルラー回線認証を使用してバーチャル SIM/Subscriber をブートストラップする場合: ステップ 2: ブートストラップする で作成されます。
- soratun で SIM 認証を使用してバーチャル SIM/Subscriber をブートストラップする場合: ステップ 7: ブートストラップする で作成されます。
soratun up コマンドを実行して WireGuard インターフェースを作成する
SORACOM にアクセスするときに以下のコマンドを実行して、WireGuard インターフェースを作成します。soratun 設定ファイルのパス (/path/to/arc.json
) については、soratun 設定ファイルについて を参照してください。
$ sudo soratun up --config /path/to/arc.json
soratun を実行したままにしてください
soratun up
を実行している間だけ、WireGuard インターフェースが作成され、SORACOM にアクセスできます。soratun を終了すると、WireGuard インターフェースが削除され、SORACOM にアクセスできなくなります。
WireGuard インターフェースを作成するコマンドは設定方法によって異なります
systemd を利用してデバイス起動時に WireGuard インターフェースを作成 している場合は、あらためて
soratun up
コマンドを実行する必要はありません。soratun を非 root ユーザーで実行できるように設定 した場合は、
sudo
を省略できます。$ soratun up --config /path/to/arc.json
ローカルに認証情報を保存することなく SORACOM Arc を利用する
以下の 2 つのコマンドを組み合わせると、ローカルに認証情報を保存することなく SORACOM Arc を利用できます。
soratun bootstrap cellular
コマンド の--dump-config
フラグ、またはsoratun bootstrap sim
コマンド の--dump-config
フラグsoratun up
コマンド の--read-stdin
フラグ
$ soratun bootstrap sim --dump-config | sudo soratun up --read-stdin
さらに、--read-stdin
フラグと合わせて --additional-allowed-ips
、--mtu
、--persistent-keepalive
を指定できます。各設定については soratun コマンドリファレンス を参照してください。
WireGuard インターフェースを削除する
soratun
のプロセスへ kill
コマンドで SIGTERM
を送信します。soratun
のプロセスが終了すると、WireGuard インターフェースが削除され、SORACOM にアクセスできなくなります。
WireGuard インターフェースを更新する
バーチャル SIM/Subscriber のセッションを再確立したときや、バーチャル SIM/Subscriber の認証情報を更新したときなど、soratun 設定ファイルを更新したときは、一度、WireGuard インターフェースを削除してから、再度作成してください。
systemd を利用してデバイス起動時に WireGuard インターフェースを作成する
soratun
は単体のプログラムとして実行できますが、systemd と併用してデーモンとして動作させることができます。
soratun
をインストール したときにダウンロードしたファイル (例:soratun_x.x.x_linux_armv7.tar.gz
) に含まれるconf/soratun.service.sample
を参考に、必要な設定を行います。特に、
ExecStart
に記載するsoratun
のパス (/usr/local/bin/soratun
) は、soratun
をコピーしたパスを入力してください。また、soratun 設定ファイルのパス (/etc/arc.json
) については、soratun 設定ファイルについて を参照してください。: [Service] Type=simple # ExecStartPre=/usr/local/bin/soratun bootstrap cellular --config /etc/arc.json ExecStart=/usr/local/bin/soratun up --config /etc/arc.json Restart=always StandardOutput=journal StandardError=journal SyslogIdentifier=soratun SyslogFacility=local7 WatchdogSec=120 :
設定したファイルを systemd の設定ディレクトリへコピーします。
$ sudo cp conf/soratun.service.sample /etc/systemd/system/soratun.service
soratun
デーモンを有効化して、起動します。$ sudo systemctl enable soratun $ sudo systemctl start soratun
systemd に関連する通常のコマンドが利用できます
- プロセスの稼働状況を確認する:
sudo systemctl status soratun
- ログを確認する:
journalctl -u soratun
soratun
デーモンを無効化する:sudo systemctl disable soratun
- 停止する:
sudo systemctl stop soratun
systemd watchdog との連携
soratun
は systemd の watchdog をサポートします。以下のタイマーに基づいておよそ 110 秒ごとに systemd へ稼働状況を報告します。
Protocol & Cryptography - WireGuard:
After receiving a packet, if the receiver was the original initiator of the handshake and if the current session key is
REKEY_AFTER_TIME - KEEPALIVE_TIMEOUT - REKEY_TIMEOUT
ms old, we initiate a new handshake.
soratun
が何らかの原因で停止したり、SORACOM Arc のセッションが切断された場合、一定時間経過後 (上記 systemd の設定ファイルの場合は、最大 120 + 110 秒後) に systemd が soratun
を再起動します。
- セッションが切断されているかどうかは、WireGuard の最終ハンドシェイク時刻を基準に判定されます。ハンドシェイクの周期は、WireGuard インターフェースを利用した通信の頻度と、KeepAlive パケットの送信間隔によって決まります。詳しくは、しばらくするとデバイスにアクセスできなくなるときは を参照してください。
- systemd の設定ファイルの
WatchdogSec
を 120 秒より短く設定することもできます。ただし、時間が短いと、問題が無い場合にもセッションが切断されたと判定されて再起動される可能性があります。利用環境にあわせて判断してください。 - watchdog による自動再起動を停止する場合は、
WatchdogSec=
の行を削除してください。
WireGuard インターフェースを削除する
systemd を利用してデバイス起動時に WireGuard インターフェースを作成した場合は、以下のコマンドを実行して soratun
デーモンを停止します。soratun
デーモンが停止すると、WireGuard インターフェースが削除され、SORACOM にアクセスできなくなります。
$ sudo systemctl stop soratun
なお、soratun
デーモンを無効化して、再起動したときに WireGuard インターフェースが作成されないようにするには、以下のコマンドを実行します。
$ sudo systemctl disable soratun
WireGuard インターフェースを更新する
バーチャル SIM/Subscriber のセッションを再確立したときや、バーチャル SIM/Subscriber の認証情報を更新したときなど、soratun 設定ファイルを更新したときは、一度、WireGuard インターフェースを再起動してください。具体的には、以下のコマンドを実行します。
$ sudo systemctl restart soratun