Armadilloフォーラム

ネットワークの設定方法

stone

2018年7月6日 14時03分

Armadillo-IoT ゲートウェイ G3 でのネットワークの設定方法について教えてください。

製品マニュアルではネットワークの設定方法として、 nmcliを使用した NetworkManagerの操作方法が解説されていて、その記述に従って設定しておりました。
製品化する際、モバイルWi-Fiを使用することになり、設定済のゲートウェイを一台一台、個別の設定で書き替える必要が出てきました。

そのため、nmcli コマンドではなく、/etc/network/interfaces を使った設定をSDブートで書き替える方法を検討しております。
この場合、nmcli コマンドで設定した接続は全て削除しておく必要があるでしょうか?
/etc/network/interfacesでの設定が優先される、と言うことがあるでしょうか?

あるいは、他に簡便にネットワーク設定を書き替える方法があるでしょうか?

宜しくお願いいたします。

コメント

at_keita.mogaki

2018年7月6日 15時13分

茂垣です。

以下について回答致します。

> この場合、nmcli コマンドで設定した接続は全て削除しておく必要があるでしょうか?
その必要はありません。NetworkManagerのコネクションは複数設定する事が出来るためです。

> /etc/network/interfacesでの設定が優先される、と言うことがあるでしょうか?
ありません。/etc/network/interfacesを利用する場合は、NetworkManagerをdisableにする必要があります。

また、以下につきまして確認して頂けますでしょうか。

> 製品マニュアルではネットワークの設定方法として、 nmcliを使用した NetworkManagerの操作方法が解説されていて、その記述に従って設定しておりました。
> 製品化する際、モバイルWi-Fiを使用することになり、設定済のゲートウェイを一台一台、個別の設定で書き替える必要が出てきました。
>
> そのため、nmcli コマンドではなく、/etc/network/interfaces を使った設定をSDブートで書き替える方法を検討しております。

こちらは「全てのArmadilloが、一つのモバイルWi-Fiに接続する」という設定でしょうか。
それとも「一つ一つのArmadilloが、個別のモバイルWi-Fiに接続する」という設定でしょうか。
SDブートで書き替えを行うという事と、個別の設定を行うという事についての関係がわからなかったため、
こちらについて教えて頂けるとありがたいです。

ご確認の程、よろしくお願い致します。
以上です。

ご回答ありがとうございます。

> > 製品化する際、モバイルWi-Fiを使用することになり、設定済のゲートウェイを一台一台、個別の設定で書き替える必要が出てきました。
> >
> > そのため、nmcli コマンドではなく、/etc/network/interfaces を使った設定をSDブートで書き替える方法を検討しております。
>
> こちらは「全てのArmadilloが、一つのモバイルWi-Fiに接続する」という設定でしょうか。
> それとも「一つ一つのArmadilloが、個別のモバイルWi-Fiに接続する」という設定でしょうか。
> SDブートで書き替えを行うという事と、個別の設定を行うという事についての関係がわからなかったため、
> こちらについて教えて頂けるとありがたいです。

一台毎に別のモバイルWi-Fiを使用します。
設置場所が別々の場所になります。

そのため、モバイルWi-Fi毎の設定が必要になり、共通のイメージファイルを書くだけでは対応できなくなるので、
個別に、SDブートさせて、個別のシェルコマンドを起動させて設定を個々に書き替える、と言う方法を検討しております。
設定ファイルの書き換えが無理なら、個別設定したイメージファイルを作って上書き、でしょうか?

そのような方法で別々に設定する予定です。
なにか良い方法があれば、教えて頂けると助かります。

at_keita.mogaki

2018年7月9日 16時21分

茂垣です。

> そのため、モバイルWi-Fi毎の設定が必要になり、共通のイメージファイルを書くだけでは対応できなくなるので、
> 個別に、SDブートさせて、個別のシェルコマンドを起動させて設定を個々に書き替える、と言う方法を検討しております。
> 設定ファイルの書き換えが無理なら、個別設定したイメージファイルを作って上書き、でしょうか?
>
> そのような方法で別々に設定する予定です。
> なにか良い方法があれば、教えて頂けると助かります。

個別に設定するのでしたら、シリアルコンソールで
コネクションを個別に設定しても良いかと思います。

また、SDブートで作業を簡略化したい場合は、
事前に用意したconnenctionファイルをeMMCのルートパーティションにコピーするという方法があります。

以下にSDブートで対応する方法を記載します。

■事前に用意するもの
・connenctionファイル
 ※ファイル名は[CONNECTION_ID]と同じにしてください。
-------------------------------------------------------------------------------
[connection]
id=[CONNECTION_ID]
uuid=[UUID]
type=wifi

[wifi-security]
key-mgmt=[KEY_MGMT]
auth-alg=open
psk=[PASSWORD]

[wifi]
ssid=[SSID]
mode=infrastructure

[ipv4]
method=auto

[ipv6]
method=auto
-------------------------------------------------------------------------------
こちらはあくまで設定例となりますので、実際には自動生成されるものをベースにして下さい。

・各パラメータの説明
[CONNECTION_ID]: NetworkManagerのコネクションID
[UUID]: コネクションのUUID
[KEY_MGMT]: アクセスポイントの認証方式
[PASSWORD]: アクセスポイントのパスワード
[SSID]: アクセスポイントのSSID

・注意点、補足
※Debian 9/StretchではUUIDの記述が無い場合でも、自動でUUIDが生成されますが
 Debian 8/Jessieでは、UUIDの記述が無いとコネクションとしてロードされません。
 そのため、今回はUUIDに固定値を指定するようにしています。
 (UUIDは本来NetworkManagerが生成するものなので、全て同じ値で設定するのは
  良い方法ではありませんが、他のコネクションと重複しなければ動作します。。。)
※UUIDが重複していると、コネクションを正しく管理できない点に注意してください。

■SDブート後に実行する内容
・eMMCのルートパーティションをマウント
# mount /dev/mmcblk2p2 /mnt
・事前に用意したconnenctionファイルをeMMCにコピー
# cp [CONNECTION_ID] /mnt/etc/NetworkManager/system-connections/[CONNECTION_ID]
・パーミッションを設定
# chmod 600 /mnt/etc/NetworkManager/system-connections/[CONNECTION_ID]
・eMMCのルートパーティションをアンマウント
# umount /mnt

実行後シャットダウンし、eMMCブートすれば
個々のArmadilloが対応するモバイルWi-Fiに自動で接続します。

ご確認の程よろしくお願い致します。
以上です。