Armadilloフォーラム

LTEからコンテナへのポートフォワーディング設定

tipstar0125

2024年7月1日 13時48分

LTE接続している状態で、外部からのUDP送信をコンテナで受けたいと思っています。
※LTEの接続は問題ないことを確認しています

現在行っている設定は以下の通りです。
・コンテナのapp.confのset_ipで送信先のIPを設定(コンテナ間でもUDPをしていますが、こちらは正常にできています)
・ABOS Webからppp0のポートフォーワーディング設定
 - 変換前ポート: 50000番台
 - 変換後ポート: 上述コンテナのpythonスクリプトにおいて、設定しているポート(socketを使用)
 - 宛先アドレス: 上述のコンテナapp.confで設定した送信先IP

外部からのUDP送信に関しては、windows上のpythonでsocketを用いてUDP送信するスクリプトを組んで行っています。
ArmadilloのIPアドレス(ABOS WebのWWAN設定で表示されているLTEのIPアドレス)と
ポート(ポートフォワーディング設定の変換前ポート)を設定しています。
※ローカル内のUDP送受信でスクリプト自体は問題ないことを確認しています

設定のやり方として適切でしょうか?誤り、不足があれば教えていただければと思います。

コメント

at_reika.yamazaki

2024年7月1日 19時12分

お世話になっております。山崎です。

以下をご確認ください。
1. ファイアーウォール設定
ご使用の A6E が Cat.1 モデルの場合は、ファイアーウォールの設定を無効にする必要があります。
設定方法についてはこちらのマニュアルをご確認ください。
6.14.5.3. Cat.1 モデル搭載 ELS31-J ファイアーウォール設定 (Cat.1 モデル)
https://manual.atmark-techno.com/armadillo-iot-a6e/armadillo-iotg-a6e_p…
Cat.M1 モデルの場合はファイアーウォールの設定は不要です。

2. 外部と ppp0 間のネットワーク疎通確認
もし、疎通確認できない場合はファイアーウォール設定を再確認してください。

3. 外部とコンテナ間のネットワークネットワーク疎通確認
コンテナ内で受信できない場合は、コンテナへのポートフォワード設定が足りないと思われます。
app.conf に以下を追加してください。

add_ports [ホストポート]:[コンテナポート]/udp

変換後ポートをそのままコンテナに渡す場合は、ホストポートとコンテナポートのどちらも変換後ポートを指定してください。

以上、どうぞよろしくお願いいたします。

tipstar0125

2024年7月2日 15時21分

山崎様

ご返信ありがとうございます。

> 1. ファイアーウォール設定
> ご使用の A6E が Cat.1 モデルの場合は、ファイアーウォールの設定を無効にする必要があります。
> 設定方法についてはこちらのマニュアルをご確認ください。
> 6.14.5.3. Cat.1 モデル搭載 ELS31-J ファイアーウォール設定 (Cat.1 モデル)
> https://manual.atmark-techno.com/armadillo-iot-a6e/armadillo-iotg-a6e_p…
> Cat.M1 モデルの場合はファイアーウォールの設定は不要です。
>
> 2. 外部と ppp0 間のネットワーク疎通確認
> もし、疎通確認できない場合はファイアーウォール設定を再確認してください。

上述に従って、ファイアーウォールを無効(disable)設定にして、疎通確認を行ってみましたが、疎通が取れませんでした。
ファイアーウォールの設定は、設定後再起動して、ファイルの永続化がされていることを確認済みです。
また、疎通確認は、以下のサイトを用いました。
https://www.cman.jp/network/support/port.html
・IPアドレス:ABOS Web WWAN設定に表示されているLTEのIPアドレス
・ポート:ABOS Web NAT設定、ポートフォワーディング設定の変換前ポート

SIMはsoracom(plan-D)を使用していますが、soracom側の設定が必要だったりしますでしょうか?

> 3. 外部とコンテナ間のネットワークネットワーク疎通確認
> コンテナ内で受信できない場合は、コンテナへのポートフォワード設定が足りないと思われます。
> app.conf に以下を追加してください。
>

> add_ports [ホストポート]:[コンテナポート]/udp
> 

> 変換後ポートをそのままコンテナに渡す場合は、ホストポートとコンテナポートのどちらも変換後ポートを指定してください。

ホストポートとコンテナポートのどちらも変換後ポートを指定して、疎通確認しましたが、疎通が取れませんでした。
疎通確認としては、LAN接続している自PCからarmadilloのローカルIPアドレス+変換後ポートでUDP送信して、受信できるかで確認してみましたが、
データを受信できませんでした。

疎通確認としてやり方は正しいでしょうか?

tipstar0125

2024年7月2日 15時51分

ちなみに本件とはあまり関係ないかもしれませんが、armadilloシャットダウン時に以下のエラーが発生しています。

ファイル ファイルの説明
スクリーンショット 2024-07-02 155104.png

at_reika.yamazaki

2024年7月2日 19時35分

お世話になっております。山崎です。

ご使用の A6E は Cat.1 モデルだったため、ファイアウォールを無効にする設定を行ったということですね。
了解です、ありがとうございます。
しかし、ファイアウォールは無効にしたが、外部との疎通確認ができていない状態に見えます。
sim については特に設定は必要ないはずです。
以下に ping コマンドを用いた LTE 接続について疎通確認する方法がありますので、こちらを参考にしてください。
・6.14.5.9. LTE の接続を確認する
https://manual.atmark-techno.com/armadillo-iot-a6e/armadillo-iotg-a6e_p…

また、以下の発言から windows と通信をしようとしているという認識でよいでしょうか。
>外部からのUDP送信に関しては、windows上のpythonでsocketを用いてUDP送信するスクリプトを組んで行っています。
もしかすると windows のファイアウォールが原因の可能性があります。
一度、windows のファイアウォールを無効にした場合に疎通確認できるかについても試してみてください。

以上、どうぞよろしくお願いいたします。