Armadilloフォーラム

Armadillo-IOT-A6有線LANからLTE経由で外部接続する方法

firmproducts

2022年9月7日 11時02分

現在、armadillo-IOT-A6を使い、ppp0としてLTEに接続出来ております。

この状態でeth0の有線LANへ他のPCを接続し、
他のPCからppp0経由でインターネットに接続しようと思い、
下記のiptablesコマンドでNAT設定してみたのですが、
iptables -t nat -A POSTROUTING -s 192.176.9.0/24 -j MASQUERADE

以下エラーが返ってきました。
iptables v1.8.2 (nf_tables): Chain 'MASQUERADE' does not exist

ネットで調べてみると、
以下コマンドで legacy iptablesへ更新している記事が有りましたので、
試したのですが
sudo update-alternatives --config iptables

0,1,2の選択番号を聞いてきたので、
1を入力したのですが、
-bash: 1: command not found
となり、受け付けて貰えませんでした。

そもそも、eth0(有線LAN)からLTE(ppp0)経由で外部に接続する方法として、
上記方法で合ってますでしょうか?

詳しい設定方法のリンク等ご教示頂けますと助かります。

宜しくお願い致します。

コメント

at_takumi.mizutani

2022年9月9日 17時17分

水谷です。

> ネットで調べてみると、
> 以下コマンドで legacy iptablesへ更新している記事が有りましたので、
> 試したのですが
> sudo update-alternatives --config iptables
>
> 0,1,2の選択番号を聞いてきたので、
> 1を入力したのですが、
> -bash: 1: command not found
> となり、受け付けて貰えませんでした。

数字を入力する前にEnterが押されてしまっていないでしょうか。
再度同じ手順で試していただくか、以下のコマンドでも同様に legacy iptables へ更新できますので一度お試しいただけますか。
update-alternatives --set iptables /usr/sbin/iptables-legacy

> そもそも、eth0(有線LAN)からLTE(ppp0)経由で外部に接続する方法として、
> 上記方法で合ってますでしょうか?
>
> 詳しい設定方法のリンク等ご教示頂けますと助かります。
>
> 宜しくお願い致します。

G3 の記事ですが、こちらが参考になるかと思いますのでご参照ください。
https://armadillo.atmark-techno.com/blog/615/6736

記事内の「2. 3G/LTEの設定」「3. 有線LANの設定」については、Armadillo-IoT ゲートウェイ A6にはNetworkManagerが
インストールされておりませんので、Armadillo-IoT ゲートウェイ A6 製品マニュアル「6.2.4. LTE の設定」「6.2.2. 有線 LAN の設定方法」をご参照ください。
https://manual.atmark-techno.com/armadillo-iot-a6/armadillo-iota6_produ…
https://manual.atmark-techno.com/armadillo-iot-a6/armadillo-iota6_produ…

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

> 水谷です。
>
> > ネットで調べてみると、
> > 以下コマンドで legacy iptablesへ更新している記事が有りましたので、
> > 試したのですが
> > sudo update-alternatives --config iptables
> >
> > 0,1,2の選択番号を聞いてきたので、
> > 1を入力したのですが、
> > -bash: 1: command not found
> > となり、受け付けて貰えませんでした。
>
> 数字を入力する前にEnterが押されてしまっていないでしょうか。
> 再度同じ手順で試していただくか、以下のコマンドでも同様に legacy iptables へ更新できますので一度お試しいただけますか。
> update-alternatives --set iptables /usr/sbin/iptables-legacy
>
>
> > そもそも、eth0(有線LAN)からLTE(ppp0)経由で外部に接続する方法として、
> > 上記方法で合ってますでしょうか?
> >
> > 詳しい設定方法のリンク等ご教示頂けますと助かります。
> >
> > 宜しくお願い致します。
>
> G3 の記事ですが、こちらが参考になるかと思いますのでご参照ください。
> https://armadillo.atmark-techno.com/blog/615/6736
>
> 記事内の「2. 3G/LTEの設定」「3. 有線LANの設定」については、Armadillo-IoT ゲートウェイ A6にはNetworkManagerが
> インストールされておりませんので、Armadillo-IoT ゲートウェイ A6 製品マニュアル「6.2.4. LTE の設定」「6.2.2. 有線 LAN の設定方法」をご参照ください。
> https://manual.atmark-techno.com/armadillo-iot-a6/armadillo-iota6_produ…
> https://manual.atmark-techno.com/armadillo-iot-a6/armadillo-iota6_produ…
>
> 以上、よろしくお願いいたします。

 ご回答有難うございます。

 教えて頂いた記事の項目1~8までは出来たのですが、

https://armadillo.atmark-techno.com/blog/615/6736

 下記の項目9のコマンドでエラーが発生しました。

  9. ポートフォワードに設定
># iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

 iptables v1.8.2 (legacy): Couldn't load target `MASQUERADE':No such file or directory

 そこで、記事を見つけました。

 https://armadillo.atmark-techno.com/index.php/forum/armadillo/1450
 
  menuconfigユーザランド設定で、下記の設定が抜けていました。

  > Network Applications --->
  >  [*] MASQUERADE

 今回、Armadillo-IOT-A6の場合
  armadillo-iota6_product_manual_ja-1.6.2.pdfの中で、
  "11.3.1. 出荷状態のルートファイルシステムアーカイブを構築する"
   を参考にさせて頂き、ルートファイル構築を行いました。

  しかし、前記にあるような、menuconfigというコマンドは上記A6環境では、
  どこにも見当たりませんでした。

 Armadillo-IOT-A6クロス環境でMASQUERADEを
 有効にする方法をご教示ください。

 宜しくお願い致します。

アットマークテクノの古賀です。

firmproductsさん:
>そこで、記事を見つけました。
>
>https://armadillo.atmark-techno.com/index.php/forum/armadillo/1450

この質問スレッドは、対象製品が「Armadillo-IoT G2/G1]ですので、弊社独自のディストリビューションである Atmark Dist を搭載していた製品に対するものですね。

>menuconfigユーザランド設定で、下記の設定が抜けていました。
>
>> Network Applications --->
>>[*] MASQUERADE
>
>
>今回、Armadillo-IOT-A6の場合
>armadillo-iota6_product_manual_ja-1.6.2.pdfの中で、
>"11.3.1. 出荷状態のルートファイルシステムアーカイブを構築する"
>  を参考にさせて頂き、ルートファイル構築を行いました。
>
>しかし、前記にあるような、menuconfigというコマンドは上記A6環境では、
>どこにも見当たりませんでした。

こちらは、Atmark Dist のユーザランドビルド用の設定項目なのです:
 https://manual.atmark-techno.com/armadillo-4x0/armadillo-400_series_sof…

Armadillo-IoT A6 に搭載しているディストリビューションである Debian には、これに該当するものがありません。
頂いているご質問の本質的な部分に対する回答ではなく恐縮ですが、取り急ぎ menuconfig に関する回答です。

at_takumi.mizutani

2022年9月12日 10時00分

水谷です。

>   しかし、前記にあるような、menuconfigというコマンドは上記A6環境では、
>   どこにも見当たりませんでした。
>
>  Armadillo-IOT-A6クロス環境でMASQUERADEを
>  有効にする方法をご教示ください。
>
>  宜しくお願い致します。

以下のコンフィギュレーションを有効にしてみてください。

Networking support --->
[*] Network packet filtering framework (Netfilter) --->
IP: Netfilter Configuration --->
[*] iptables NAT support --->
[*] MASQUERADE target support

また、Linux Kernel Configurationメニューで"/"キーを押下すると、コンフィギュレーションの検索を行うことも出来ますので、ご参考までに。
例) /masquerade

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

ご回答有難うございました。
ピンポイントの重要情報頂き有難うございます。
お陰様で、eth0接続PCからインターネット接続が無事出来ました。
因みに
 ”9. ポートフォワードに設定”の2行のコマンド
 echo 1 > /proc/sys/net/ipv4/ip_forward
 iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
 上記コマンドはOS起動する毎に実行が必要でしょうか?
 再起動したところPCから接続できなくなってしまいましたので、
 上記2行を実行したところ接続出来るようになりました。

 rc.localとかに入れるしかないでしょうか?
 良い方法が有りましたらご教示頂けると助かります。

 宜しくお願い致します。

 

at_takumi.mizutani

2022年9月12日 15時33分

水谷です。

>  ”9. ポートフォワードに設定”の2行のコマンド
>  echo 1 > /proc/sys/net/ipv4/ip_forward
>  iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
>  上記コマンドはOS起動する毎に実行が必要でしょうか?
>  再起動したところPCから接続できなくなってしまいましたので、
>  上記2行を実行したところ接続出来るようになりました。
>
>  rc.localとかに入れるしかないでしょうか?
>  良い方法が有りましたらご教示頂けると助かります。
>
>  宜しくお願い致します。

まず、/proc/sys/net/ipv4/ip_forward は /etc/sysctl.conf の以下の行のコメントを外すことで設定の保持ができます。
net.ipv4.ip_forward=1

次に、iptablesは再度ルールの設定をして頂いた上で、以下のコマンドを実行することでルールの保持ができます。
netfilter-persistent save

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

水谷様

 早速のご回答有難うございます。
 ご教示頂いた方法で希望の動作にすることが出来ました。
 ありがとうございました。