Armadilloフォーラム

G3LのLTEモジュールからのPing応答がなくなる

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
コメント

at_mitsuhiro.yoshida

2020年3月2日 10時20分

吉田です。

こちらでも再現確認をしてみますが、
どのようにG3Lに対してping確認をされているか、
具体的なコマンドなどの情報を頂けますでしょうか?

また、カーネルとmodemmanagerのバージョンまたは、
使用しているインストールイメージの情報を頂けますと助かります。

# uname -a
# apt show modemmanager

akira.shimomura

2020年3月2日 10時42分

アットマークテクノ 吉田様

いつもお世話になっております。
下記回答いたします。

> どのように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

2020年3月4日 10時03分

吉田です。

情報提供ありがとうございます。

ログを確認し、再現確認を行ったところ、
リンク再確立時に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

2020年3月4日 10時55分

アットマークテクノ 吉田様

いつもお世話になっております。
ご回答ありがとうございます。

1点確認があるのですが、SIMのIPアドレス宛のPingはLTEモジュールが応答を
返すのではないでしょうか?
そのため、LTEモジュールのFirewall設定はPingの動作に影響を与えないのでは
ないでしょうか?

実際、SIMのIPアドレス宛にPingを送信している最中にG3Lでパケットキャプチャ
してもICMPパケットはG3Lに到達していません。
また、LTEモジュールのFirewall設定を有効・無効のどちらの場合もPingの応答は
返ってきています。

at_mitsuhiro.yoshida

2020年3月11日 8時21分

吉田です。

ご指摘ありがとうございます。

仰る通り、ping応答に関しては、
AT^SCFG="MEopMode/PingRsp"
で別途制御が可能でした。

代理店経由でモデムデバイスのメーカーに問い合わせたのですが、
こういったpingを返さなくなる現象は把握していないとの回答でした。

可能性としては、DHCPを使用してのIPアドレスの取得を行っていると
再接続時にIPアドレスが変更になっているのでは?との見解がありました。

akira.shimomura

2020年3月11日 8時36分

アットマークテクノ 吉田様

いつもお世話になっております。
ご回答ありがとうございます。

> AT^SCFG="MEopMode/PingRsp"
> で別途制御が可能でした。
このATコマンドは、Pingの応答を返す・返さないの設定をする
コマンドということでしょうか?

> 可能性としては、DHCPを使用してのIPアドレスの取得を行っていると
> 再接続時にIPアドレスが変更になっているのでは?との見解がありました。
使用しているSIMは固定IPのため、IPアドレスが変更されることはありません。

一点質問なのですが、ATコマンドでLTEモジュールの送受信パケット数を
取得できるコマンドはあったりしますでしょうか?

at_mitsuhiro.yoshida

2020年3月12日 17時37分

吉田です。

> > 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

2020年3月13日 8時51分

アットマークテクノ 吉田様

いつもお世話になっております。
ご回答ありがとうございます。

> 初期値が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

2020年5月28日 13時43分

アットマークテクノ 吉田様

前回投稿からしばらく時間が経過しておりますが、
下記のLTEモジュールの件について、ご回答いただけないでしょうか?
> 設定状態を確認できるATコマンドはありますでしょうか?
> もしくわ、LTEモジュール内の状態や、動作ログ等を取得できるようなATコマンドは
> ありますでしょうか?

at_mitsuhiro.yoshida

2020年6月1日 16時05分

吉田です。

代理店経由でメーカーに問い合わせ中です。
回答が遅く申し訳ありません。

akira.shimomura

2020年6月1日 16時08分

アットマークテクノ 吉田様

お世話になっております。

ご回答ありがとうございます。
承知いたしました。

at_mitsuhiro.yoshida

2020年6月5日 11時24分

吉田です。

> 設定状態を確認できる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

2020年6月5日 13時03分

アットマークテクノ 吉田様

お世話になっております。
再現した際に、確認してみたいと思います。

>モデムデバイスELS31-Jのファームウェアは、最新のAREV36584をご利用されていますでしょうか?
はい、最新のAREV36584のファームウェアに更新しています。