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送受信でスクリプト自体は問題ないことを確認しています
設定のやり方として適切でしょうか?誤り、不足があれば教えていただければと思います。
コメント
tipstar0125
山崎様
ご返信ありがとうございます。
> 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
ちなみに本件とはあまり関係ないかもしれませんが、armadilloシャットダウン時に以下のエラーが発生しています。
ファイル | ファイルの説明 |
---|---|
スクリーンショット 2024-07-02 155104.png |
at_reika.yamazaki
お世話になっております。山崎です。
ご使用の 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 のファイアウォールを無効にした場合に疎通確認できるかについても試してみてください。
以上、どうぞよろしくお願いいたします。
tipstar0125
山崎様
ありがとうございます。
> 以下に 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
お世話になっております。山崎です。
>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
以上、どうぞよろしくお願いいたします。
tipstar0125
山崎様
返信ありがとうございます。
> 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
お世話になっております。山崎です。
>はい。192.168.128.XXで、以下のご紹介のコンテナ外での確認をした後、
>app.confでポートフォワーディング設定したら、コンテナで受信できることを確認できた、という流れでした。
了解です。ethernet(192.168.128.XX)経由だと ATDE - armadillo 間は問題ないということですね。ありがとうございます。
>IPアドレスをLTEのIPアドレスにして、同様のUDP確認(ATDE-armadillo間)をしましたが、疎通が取れませんでした。
ATDE が LTE の IP アドレスに接続できないため失敗している可能性があります。
こちらは問題ないでしょうか?
以上、どうぞよろしくお願いいたします。
tipstar0125
山崎様
返信ありがとうございます。
> >IPアドレスをLTEのIPアドレスにして、同様のUDP確認(ATDE-armadillo間)をしましたが、疎通が取れませんでした。
> ATDE が LTE の IP アドレスに接続できないため失敗している可能性があります。
> こちらは問題ないでしょうか?
はい。こちらが問題だと思っていますが、何原因で疎通が取れない状況なのかわかっていない状況です。
armadillo側のポートフォワーディング設定が誤っているのか、ポートフォワーディング以外に設定が必要なのか、
PCからLTEにアクセスするために必要な設定が必要なのか、を探っている状況です。
何か心当たりあれば、教えていただきたいです。
at_mitsuhiro.yoshida
吉田です。
プライベート IP を割り振っている LTE 通信の場合、単純には外部からアクセスできません。
LTE 網を使用して外部からアクセスする手段としては、以下の様なものがあります。
(1) グローバル IP アドレスオプションを使用する。
(2) soracom Gate, soracom Napter の様なプロバイダーが提供しているサービスを利用する。
https://soracom.jp/services/gate/
https://soracom.jp/services/napter/
まずは、(コンテナではなく) Armadillo まで外部から到達する手段を確立していただき、
そのうえでポート変換などでコンテナまで到達する手順となります。
tipstar0125
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 に以下を追加してください。
変換後ポートをそのままコンテナに渡す場合は、ホストポートとコンテナポートのどちらも変換後ポートを指定してください。
以上、どうぞよろしくお願いいたします。