Armadilloフォーラム

SIM交換に伴う遠隔でのAPN設定変更

mkohei1122

2021年5月11日 16時58分

森と申します。

現在、IoT-G2やG3-Mで使用中のSIMカードの交換を計画しております。

SIM交換は、当方ではなく現地の作業員が行い、物理的なSIMカードの交換は可能ですが、
作業員の方は、IoTに直接ログインしてメンテすることができません。
また、交換作業はいつ行われるかわからないので、交換の直前に連絡をとり、
当方から遠隔でログインして、APN設定を変更することができません。
また、現地のIoTは、SMSや他のネットワークも利用不可です。

当方からは、交換前に、遠隔でログインして、APN設定を変更することは
できますが、そのようにすると、何かの都合で、携帯通信が途絶えて
再接続した場合に、SIM交換前には、2度と接続できなくなってしまいます。

そこで、
・IoT-G2やG3-Mにおいて、APNは、2か所以上に設定することはできるのでしょうか。
・上記のような状況で、SIM交換前に、遠隔でのAPN設定変更はできますでしょうか。

なにか、アイディアがあれば、お知らせいただけると幸いです。
なお、交換するSIMは、SORACOMを予定しております。

以上です。

コメント

at_syunya.ohshio

2021年5月12日 14時15分

大塩です。

> 森と申します。
>
> 現在、IoT-G2やG3-Mで使用中のSIMカードの交換を計画しております。
>
> SIM交換は、当方ではなく現地の作業員が行い、物理的なSIMカードの交換は可能ですが、
> 作業員の方は、IoTに直接ログインしてメンテすることができません。
> また、交換作業はいつ行われるかわからないので、交換の直前に連絡をとり、
> 当方から遠隔でログインして、APN設定を変更することができません。
> また、現地のIoTは、SMSや他のネットワークも利用不可です。
>
> 当方からは、交換前に、遠隔でログインして、APN設定を変更することは
> できますが、そのようにすると、何かの都合で、携帯通信が途絶えて
> 再接続した場合に、SIM交換前には、2度と接続できなくなってしまいます。
>
> そこで、
> ・IoT-G2やG3-Mにおいて、APNは、2か所以上に設定することはできるのでしょうか。
> ・上記のような状況で、SIM交換前に、遠隔でのAPN設定変更はできますでしょうか。
>
> なにか、アイディアがあれば、お知らせいただけると幸いです。
> なお、交換するSIMは、SORACOMを予定しております。
>

リモートログインができるのであれば、以下のような運用にするのはいかがでしょうか。
・ リモートでAPN設定差し替え用の設定ファイルやスクリプトを事前にArmadillo側に保存
 ただし、保存するだけで設定は切り替えない
・ 現地の作業者がSIMを取り換えるタイミングでハード的に何らかのトリガをかけてもらい設定切り替え
 例: ユーザースイッチを押す、USBメモリを接続するなどをトリガにする等

以下、Armadillo-IoT G3 M1での例です。
USBメモリの接続をトリガにAPN設定を書き換えるフローです。

設置されているゲートウェイを物理的に第3者が触れる場合にはセキュリティに不安があるのですが、そうでなければあまり問題にならない運用と考えております。
実施する場合は十分な検証をお願いします。

###########################################
・リモートでの事前準備
(1) Armadilloへのスクリプト保存
実行権限付きで保存してください。
エラー処理の実装が甘いです。

/root/apn-change.sh

#!/bin/sh
 
PASSWORD_FILE=/mnt/password
PASSWORD="ABCDEF"
 
nmcli connection show gsm-ttyUSB2 | grep -q soracom
if [ $? -eq 0 ]; then
  echo "already configured"
  exit 1
fi
 
mount /dev/$1 /mnt
 
grep -x -q $PASSWORD $PASSWORD_FILE
if [ $? -ne 0 ]; then
  echo "error"
  umount /mnt
  exit 1
fi
 
nmcli connection delete gsm-ttyUSB2
nmcli connection add type gsm ifname ttyUSB2 apn soracom.io user sora
password sora
umount /mnt
rm -rf /root/apn-change.sh
rm -rf /etc/udev/rules.d/62-usbmem-mount.rules
sync
poweroff

(2) Armadilloへudevルールファイルの保存

/etc/udev/rules.d/62-usbmem-mount.rules

KERNEL=="sd*[0-9]*",SUBSYSTEMS=="usb",ACTION=="add",RUN+="/root/apn-change.sh
%k"

(3) udevルールの反映

root@armadillo:~# udevadm control --reload-rules

・ 現地での作業
[1] USBメモリの準備
直下に以下ファイルを配置
パスワードファイルを置く意味は、セキュリティというよりは作業ミス防止です。

ファイル名: password

ABCDEF

[2] 作業者にUSBメモリを接続してもらう
APN設定が書き換えられ、自動的にpoweroffされる
poweroffはLEDの消灯で確認

[3] 作業者にSIMを取り換えてもらう

[4] 作業者にArmadllioの電源を入れてもらう
LEDの点灯パターンで3G/LTE接続確認をする

###########################################

以上です。

at_syunya.ohshio

2021年5月13日 16時09分

大塩です。

Armadillo-IoT G3 M1 限定となりますが、
追記で別案を提案いたします。

■ Armadillo-IoT G3 M1 : 2種類のapn設定を保存する方法
Armadillo-IoT G3 M1では、複数種類のapn設定 (nmcli con add) を行うことができます。
SIMを入れ替えた際、apn が一致する コネクションが自動で up されます。
ただしこれを行った場合は、それぞれのコネクションが交互に接続実行され、接続までの時間が増えます。

Armadillo-IoT G2では2種類以上の設定を保存することができません。

こちらについても、充分な動作確認を行った上で実装してください。

以上です。

大塩様

森です。
ご提案ありがとうございます。
USBやボタンをトリガーとするアイディアですが、試してみます。
失敗すると現地に行かなくてはならないので、もちろん検証後に
行いますが、結構ドキドキですね。

また、G3 M1でAPNを2種類設定ですが、先に設定した方等、どちらかが優先されるとかは
あるのでしょうか。

関連ですが、APN設定は、モジュールの内部にも記録されるのでしょうか。
nmcli connection delete [ID]
のみ行ない、さらに、モジュールの初期化をする必要があるのでしょうか。
マニュアルの下記のように、初期化の手順の記載がございましたので。
図6.22 モジュール初期化手順
https://manual.atmark-techno.com/armadillo-iot-g3/armadillo-iotg-g3_pro…

> 大塩です。
>
> Armadillo-IoT G3 M1 限定となりますが、
> 追記で別案を提案いたします。
>
> ■ Armadillo-IoT G3 M1 : 2種類のapn設定を保存する方法
> Armadillo-IoT G3 M1では、複数種類のapn設定 (nmcli con add) を行うことができます。
> SIMを入れ替えた際、apn が一致する コネクションが自動で up されます。
> ただしこれを行った場合は、それぞれのコネクションが交互に接続実行され、接続までの時間が増えます。
>
> Armadillo-IoT G2では2種類以上の設定を保存することができません。
>
> こちらについても、充分な動作確認を行った上で実装してください。
>
> 以上です。

at_syunya.ohshio

2021年5月14日 17時50分

大塩です。

> また、G3 M1でAPNを2種類設定ですが、先に設定した方等、どちらかが優先されるとかは
> あるのでしょうか。

NetworkManager の接続は、昇順で行われます。
例 : コネクション名 iij と soracom が存在している場合、iij → soracom で接続チェックが行われる。

>
> 関連ですが、APN設定は、モジュールの内部にも記録されるのでしょうか。
> nmcli connection delete [ID]
> のみ行ない、さらに、モジュールの初期化をする必要があるのでしょうか。
> マニュアルの下記のように、初期化の手順の記載がございましたので。
> 図6.22 モジュール初期化手順
> https://manual.atmark-techno.com/armadillo-iot-g3/armadillo-iotg-g3_pro…
>

APN設定は、モジュール内部に保存されます。
ただし、手動でモジュールの初期化を行う必要はありません。

以上です。