Armadilloフォーラム

nmcli device wifi connect にてWLANの再接続を繰り返し実行すると /var/lib/NetworkManager 以下が肥大化してしまうことへの対処についてご存じでしょうか

shun_nabe

2024年7月23日 11時34分

お世話になっております。
イットーソフトウェア渡邉です。

掲題の件、以下の要件があり

・メッシュWifiを使用した環境であり、同一SSIDのAPが複数ある。
・複数あるAPの内、最も電波強度のよいものに接続したい

作成したプログラムにて、以下の動作を繰り返し実行するにしておりました。

nmcli -t -f IN-USE,SSID,BSSID,SIGNAL dev wifi を実行し、同一SSID内で最もSIGNALの高い BSSIDを取得
nmcli device wifi connect "BSSID" "PW" にて、上記BSSIDを指定して接続

稼働から数年経ったころ、ディスクフルになってしまっておりファイルシステムを分析したところ

/var/lib/NetworkManager

直下に dhclient--wlan0.lease というパターンのファイルが10万以上作成されており、
どうやら上記②の nmcli device wifi connect のタイミングで増え続けているようでした。

そこでもし知見あれば以下ご教示いただきたく

・wifi接続の際に、「dhclient--wlan0.lease 」ファイルを作成し続けない術があるかご存じでしょうか
・nmcliのコマンドなどで不要なファイルを消す術があるかご存じでしょうか

コメント

at_dominique.m…

2024年7月23日 14時03分

イットーソフトウェア渡邉さん

お世話になっています、
マルティネです。

本件、Armadillo IoT G3 の質問ですが、ご利用している debian のバージョンを教えていただけますでしょうか。

debian Bookworm の場合ではすでに ssid がすでに存在する場合に nmcli device wifi connect コマンドを実行しても新しい接続になりませんので、
この問題が発生しないはずです。

debian のバージョンを簡単に更新できない場合は、すでに確認済みかもしれませんがすでにある接続を再利用できますでしょうか。
こちらで簡単に確認できませんが私の理解では「nmcli connection up [接続名]」を実行すると、BSSID を指定しなくても networkmanager が一度スキャンを行って一番信号の強い bssid を選んでくれると思いますが、それは違いますか?
違う場合はお手数ですが、 nmcli connection mod [接続名] 802-11-wireless.bssid [bssid] && nmcli connection up [接続名] で bssid を去勢的に変更することができます。その設定でこの bssid がなくなった場合でも別の BSSID を自動的に切り替えてくれますので、今の設定とほぼ変わらないと思います。

よろしくお願いします。

マルティネさん、

ご回答いただき、ありがとうございます。

> 本件、Armadillo IoT G3 の質問ですが、ご利用している debian のバージョンを教えていただけますでしょうか。

以下になります。

root@armadillo:/var/log# cat /etc/debian_version
10.10

古いため、新規の接続になってしまったのでしょうかね。

> こちらで簡単に確認できませんが私の理解では「nmcli connection up [接続名]」を実行すると、BSSID を指定しなくても networkmanager が一度スキャンを行って一番信号の強い bssid を選んでくれると思いますが、それは違いますか?

そのような方法もあるのですね。存じてはおりませんでした。
ただ、お客様の環境ですとある程度電波強度を選択的(100より80~90台)に指定したほうが安定していたこともあったので、明示的にBSSIDを指定する方式にしたいと思います。

> 違う場合はお手数ですが、 nmcli connection mod [接続名] 802-11-wireless.bssid [bssid] && nmcli connection up [接続名] で bssid を去勢的に変更することができます。その設定でこの bssid がなくなった場合でも別の BSSID を自動的に切り替えてくれますので、今の設定とほぼ変わらないと思います。

確認したところ、確かに *.lease が増えておらず、期待した動作になっておりました。
こちらのコマンドに差し替えてみたいと思います。

迅速かつ的確なご回答をいただき、誠にありがとうございました。