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

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

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

山崎様

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

> 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送信して、受信できるかで確認してみましたが、
データを受信できませんでした。

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

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 のファイアウォールを無効にした場合に疎通確認できるかについても試してみてください。

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

山崎様

ありがとうございます。

> 以下に ping コマンドを用いた LTE 接続について疎通確認する方法がありますので、こちらを参考にしてください。
> ・6.14.5.9. LTE の接続を確認する
> https://manual.atmark-techno.com/armadillo-iot-a6e/armadillo-iotg-a6e_p…

armadilloで以下の確認を行い、armadilloからLTEで外部への疎通は取れていることを確認しました。
ping -c 3 8.8.8.8 -I ppp0

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

windowsからは何らかの影響でUDP送信できなかったので、VirtualBoxのATDEから送信してみました。
また、pythonスクリプトだとうまくいかなったので、netcatコマンドで送信したところ、
armadilloのコンテナで受信できました。

ただ、LTEのIPアドレス(グローバル)に向けて、同じようにVirtualBoxのATDEからUDP送信してみたところ、
コンテナまでデータが来ていませんでした。

armadilloから外部は問題なさそうですが、外部からarmadilloへの通信ができていなさそうです。
原因として何が考えられるでしょうか?

ABOSでポートフォワーディング設定する際の宛先アドレスは、コンテナのapp.confのset_ipで設定したIPアドレスで正しいでしょうか?

at_reika.yamazaki

2024年7月3日 16時30分

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

>windowsからは何らかの影響でUDP送信できなかったので、VirtualBoxのATDEから送信してみました。
>また、pythonスクリプトだとうまくいかなったので、netcatコマンドで送信したところ、
>armadilloのコンテナで受信できました。
>
>ただ、LTEのIPアドレス(グローバル)に向けて、同じようにVirtualBoxのATDEからUDP送信してみたところ、
>コンテナまでデータが来ていませんでした。
いくつか確認です。
armadillo のコンテナで受信が確認できたとのことですが、このときに使用した IP アドレスは何になりますか?
ethernet のものでしょうか?

また、LTE の IP アドレスでコンテナ外では受信確認ができているのでしょうか?
まだの場合は以下のブログに ATDE と armadillo 間の UDP 確認方法について紹介していますので、まずはこちらを参考にコンテナ外での ATDE - armadillo 間の UDP 通信について確認していただければと思います。
https://armadillo.atmark-techno.com/blog/615/13742

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

山崎様

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

> armadillo のコンテナで受信が確認できたとのことですが、このときに使用した IP アドレスは何になりますか?
> ethernet のものでしょうか?

はい。192.168.128.XXで、以下のご紹介のコンテナ外での確認をした後、
app.confでポートフォワーディング設定したら、コンテナで受信できることを確認できた、という流れでした。

> また、LTE の IP アドレスでコンテナ外では受信確認ができているのでしょうか?
> まだの場合は以下のブログに ATDE と armadillo 間の UDP 確認方法について紹介していますので、まずはこちらを参考にコンテナ外での ATDE - armadillo 間の UDP 通信について確認していただければと思います。
> https://armadillo.atmark-techno.com/blog/615/13742

IPアドレスをLTEのIPアドレスにして、同様のUDP確認(ATDE-armadillo間)をしましたが、疎通が取れませんでした。

at_reika.yamazaki

2024年7月3日 18時08分

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

>はい。192.168.128.XXで、以下のご紹介のコンテナ外での確認をした後、
>app.confでポートフォワーディング設定したら、コンテナで受信できることを確認できた、という流れでした。
了解です。ethernet(192.168.128.XX)経由だと ATDE - armadillo 間は問題ないということですね。ありがとうございます。

>IPアドレスをLTEのIPアドレスにして、同様のUDP確認(ATDE-armadillo間)をしましたが、疎通が取れませんでした。
ATDE が LTE の IP アドレスに接続できないため失敗している可能性があります。
こちらは問題ないでしょうか?

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

山崎様

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

> >IPアドレスをLTEのIPアドレスにして、同様のUDP確認(ATDE-armadillo間)をしましたが、疎通が取れませんでした。
> ATDE が LTE の IP アドレスに接続できないため失敗している可能性があります。
> こちらは問題ないでしょうか?

はい。こちらが問題だと思っていますが、何原因で疎通が取れない状況なのかわかっていない状況です。
armadillo側のポートフォワーディング設定が誤っているのか、ポートフォワーディング以外に設定が必要なのか、
PCからLTEにアクセスするために必要な設定が必要なのか、を探っている状況です。
何か心当たりあれば、教えていただきたいです。

at_mitsuhiro.yoshida

2024年7月4日 16時41分

吉田です。

プライベート IP を割り振っている LTE 通信の場合、単純には外部からアクセスできません。

LTE 網を使用して外部からアクセスする手段としては、以下の様なものがあります。
(1) グローバル IP アドレスオプションを使用する。
(2) soracom Gate, soracom Napter の様なプロバイダーが提供しているサービスを利用する。
https://soracom.jp/services/gate/
https://soracom.jp/services/napter/

まずは、(コンテナではなく) Armadillo まで外部から到達する手段を確立していただき、
そのうえでポート変換などでコンテナまで到達する手順となります。

吉田様

ありがとうございます。
soracomのコンソール画面から、napterでポート開放をするサービスがあることを確認しました。
有償、かつ時間制限が最大8時間ということで、使い勝手があまりよろしくないので、今回はLTEをポートフォワーディングする機能の使用は見合わせようかと思います。
ご対応いただき大変ありがとうございます。