akira.shimomura
2020年2月28日 16時21分
いつもお世話になっております。
現在、
・Armadillo-IoT G3LからクラウドにデータをHTTPSでアップロード
・クラウドからPingによるG3Lの監視(LTEモジュールに挿入しているSIMのIPアドレス宛)
のようなシステムを運用しています。
先日、ある環境のG3Lにて、LTE回線切断に伴いLTEモジュールの再起動が
発生したことを契機に、クラウドからG3LへのPingの応答がなくなる
現象が発生しました。
LTEモジュールの再起動で、LTE回線が復帰しG3Lからクラウドへのアップロードは
行えていますので、LTE回線には問題はないはずなのですが、なぜLTEモジュールが
Pingの応答を返さなくなったのか原因を調べています。
LTEモジュールがPingの応答を返さなくなる原因について、何か考えられること
がありましたら、ご教示お願いいたします。
また、LTEモジュールから通信の状態などのステータス・ログ等を取得できる
方法がありましたら、ご教示お願いいたします。
念のため、問題発生時のsyslogを添付します
18行目からが発生時のログとなります。
ファイル | ファイルの説明 |
---|---|
syslog.txt | 問題発生時のsyslog |
コメント
akira.shimomura
アットマークテクノ 吉田様
いつもお世話になっております。
下記回答いたします。
> どのようにG3Lに対してping確認をされているか、
> 具体的なコマンドなどの情報を頂けますでしょうか?
AWS EC2 インスタンスのLinux仮想サーバーより、G3LにLinux標準のPingコマンドを
SIMのIPアドレス宛に1分間隔で1回実行しています。
(AWS EC2 インスタンスのLinux仮想サーバーとG3L間はLTE回線の閉域網となっています)
> また、カーネルとmodemmanagerのバージョンまたは、
> 使用しているインストールイメージの情報を頂けますと助かります。
カーネル:3.14.79-at17
modemmanager:1.4.0-1atmark7
インストールイメージ:x1-debian-builder-v1.1.1で2019年08月23日にビルドしたイメージを使用しています。
at_mitsuhiro.yoshida
吉田です。
情報提供ありがとうございます。
ログを確認し、再現確認を行ったところ、
リンク再確立時にusb1がethernetと認識されたタイミングでfirewallのdisableを設定し、
その後再度gsmとして認識された際にfirewallのdisable設定を行っていないことがある為、
タイミングによってはfirewallのdisable設定が効いていないことがあることが判明しました。
/etc/NetworkManager/dispatcher.d/98els-firewall
の以下の箇所☆を修正することで、gsmとしてのリンクアップ時にfirewallの設定を行う様に修正出来ます。
元々はnmcli device | grep ttyACM0 -q だった箇所です。
お手数ですが、ご確認よろしくお願いします。
#!/bin/bash . /etc/els31-utils/els31-utils.conf els31_firewall_change() { case "$1" in ttyACM0|usb1) case "$2" in up|vpn-up) ☆ nmcli device | grep ttyACM0 | grep gsm | grep connected -q if [ $? -eq 0 ]; then if [ -z ${FIREWALL} ]; then exit 0; elif [ ${FIREWALL} = "disable" ]; then els31-firewall-disable elif [ ${FIREWALL} = "enable" ]; then els31-firewall-enable fi fi ;; down|vpn-down) ;; esac ;; esac } grep -q "Armadillo-X1L" /proc/device-tree/model if [ $? -eq 0 ]; then els31_firewall_change $1 $2 fi
akira.shimomura
アットマークテクノ 吉田様
いつもお世話になっております。
ご回答ありがとうございます。
1点確認があるのですが、SIMのIPアドレス宛のPingはLTEモジュールが応答を
返すのではないでしょうか?
そのため、LTEモジュールのFirewall設定はPingの動作に影響を与えないのでは
ないでしょうか?
実際、SIMのIPアドレス宛にPingを送信している最中にG3Lでパケットキャプチャ
してもICMPパケットはG3Lに到達していません。
また、LTEモジュールのFirewall設定を有効・無効のどちらの場合もPingの応答は
返ってきています。
at_mitsuhiro.yoshida
akira.shimomura
アットマークテクノ 吉田様
いつもお世話になっております。
ご回答ありがとうございます。
> AT^SCFG="MEopMode/PingRsp"
> で別途制御が可能でした。
このATコマンドは、Pingの応答を返す・返さないの設定をする
コマンドということでしょうか?
> 可能性としては、DHCPを使用してのIPアドレスの取得を行っていると
> 再接続時にIPアドレスが変更になっているのでは?との見解がありました。
使用しているSIMは固定IPのため、IPアドレスが変更されることはありません。
一点質問なのですが、ATコマンドでLTEモジュールの送受信パケット数を
取得できるコマンドはあったりしますでしょうか?
at_mitsuhiro.yoshida
吉田です。
> > AT^SCFG="MEopMode/PingRsp"
> > で別途制御が可能でした。
> このATコマンドは、Pingの応答を返す・返さないの設定をする
> コマンドということでしょうか?
はい、以下のようなコマンドです。
初期値がEnableなので変更していなければそのままと思われます。
Allow/block response on PING AT^SCFG="MEopMode/PingRsp",0 Disable response on PING AT^SCFG="MEopMode/PingRsp",1 (D) Enable Enable ping response Enable or disable response on PING. If module is connected to Internet and has valid IP address it will or will not respond to ICMP PING depending on this setting.
> 一点質問なのですが、ATコマンドでLTEモジュールの送受信パケット数を
> 取得できるコマンドはあったりしますでしょうか?
代理店経由でメーカーに問い合わせたところ、その様なコマンドは存在しないとのことでした。
akira.shimomura
アットマークテクノ 吉田様
いつもお世話になっております。
ご回答ありがとうございます。
> 初期値がEnableなので変更していなければそのままと思われます。
Allow/block response on PING AT^SCFG="MEopMode/PingRsp",0 Disable response on PING AT^SCFG="MEopMode/PingRsp",1 (D) Enable
意図した変更はしていませんが、LTEモジュール内でDisableに切り替わってしまった
可能性は考えられるかと思います。
設定状態を確認できるATコマンドはありますでしょうか?
もしくわ、LTEモジュール内の状態や、動作ログ等を取得できるようなATコマンドは
ありますでしょうか?
LTEモジュール内の設定状態または何らかの状態・ログを監視して、正常時と異なる状態に
なっているか、を再現時に確認してみたいと考えています。
> 代理店経由でメーカーに問い合わせたところ、その様なコマンドは存在しないとのことでした。
承知いたしました。
akira.shimomura
at_mitsuhiro.yoshida
akira.shimomura
at_mitsuhiro.yoshida
吉田です。
> 設定状態を確認できるATコマンドはありますでしょうか?
ですが、ELS31-JのファームウェアバージョンがAREV36584であれば、
# cu -l /dev/ttymxc6 -s 115200
Connected. が表示されます。
その後以下のATコマンドを入力します。
AT^SCFG="MEopMode/PingRsp"
pingのレスポンスが有効な場合、
^SCFG: "MEopMode/PingRsp","1"
と表示され、
無効である場合、
^SCFG: "MEopMode/PingRsp","0"
と表示されます。
~.
を入力することでcuから抜けます。
今更で申し訳ありませんが、
モデムデバイスELS31-Jのファームウェアは、最新のAREV36584をご利用されていますでしょうか?
以前、古いファーム(AREV26730)でG3Lから外向けのpingが出ない問題がありまして、
ファームウェアを更新したところ問題が解消したことがあります。
ファームウェアバージョンは以下の手順で確認可能です。
# cu -l /dev/ttymxc6 -s 115200
AT11
コマンドを入力すると以下のように表示されます。
Cinterion
ELS31-J
REVISION 4.3.2.1b
A-REVISION 4.3.3.0-36584
L-REVISION 3.7.6
akira.shimomura
at_mitsuhiro.yoshida
2020年3月2日 10時20分
吉田です。
こちらでも再現確認をしてみますが、
どのようにG3Lに対してping確認をされているか、
具体的なコマンドなどの情報を頂けますでしょうか?
また、カーネルとmodemmanagerのバージョンまたは、
使用しているインストールイメージの情報を頂けますと助かります。
# uname -a
# apt show modemmanager