そもそもの問題
とあるUbuntuがインストールされたArm板で作業していたところ、NetworkManager(nmcli
)でデバイスの設定が有効にならない現象に遭遇しました。
その時のエラーメッセージは以下の通り。
$ sudo nmcli connection up br0
Error: Connection activation failed: No suitable device found for this connection (device lo not available because device is strictly unmanaged).
面倒くさいときはnmtui
なども使用して設定をしていたつもりだったのですが、さて・・・
確認してみた
$ sudo nmcli connection show
NAME UUID TYPE DEVICE
br0 a088504f-f595-40c1-bc6d-66e84d3434e4 ethernet --
あれ、設定を出来ていたつもりだったのですが、br0と名付けていた接続名にデバイス(br0
)が紐づけられていません。
今まではどうやって接続できていたんだ・・・と悩むところですが、systemctl restart NetworkManager
やsystemctl restart network-manager
などを実行しても、デバイスへの設定が有効になりません。nmtui
などからの再設定も同様でした。
Webの情報
ということでエラーメッセージから調べてみると以下の情報が見つかりました。
どうやら、NetworkManager.conf
の[keyfile]
セクションにunmanaged-devices
が設定されているためNetworkManagerの管理下にデバイスが入っていない、というものでした。
自分の環境を確認してみると、
[keyfile]
unmanaged-devices=interface-name:eth*,interface-name:wan*,interface-name:lan*,interface-name:br*
基本的なネットワークデバイス名でNetworkManagerのunmanagedとして設定されていることが分かりました。これではいくらNetworkManagerで設定しても有効にならないはずですね。でも最初はこれで設定できていたつもりだったのですが・・・
対処方法
上記にあるように、/etc/NetworkManager/conf.d/10-ignore-interfaces.conf
にunmanaged-devices
としてbr*
が記載されているのでこちらを削除します。
[keyfile]
unmanaged-devices=interface-name:eth*,interface-name:wan*,interface-name:lan*
そしてこの変更を有効にするために端末自体を再起動します。
再起動から復帰後、NetworkManagerから接続に関しての確認を行うと、以下のようにデバイスとの紐づけが修正されていることを確認できると思います。
$ sudo nmcli connection show
NAME UUID TYPE DEVICE
br0 5a5f8924-1c18-41fc-8526-5b62d8dfc149 bridge br0
lan0 9ca97700-caac-478b-86a9-df450343f22a ethernet lan0
lan1 3d6170c3-036a-4bb8-bc18-2f5b0ed39776 ethernet lan1
wan a0bdf3b5-d824-40f7-ab59-361b7a8b4ed5 ethernet wan
$ sudo nmcli connection show
NAME UUID TYPE DEVICE
br0 5a5f8924-1c18-41fc-8526-5b62d8dfc149 bridge br0
lan0 9ca97700-caac-478b-86a9-df450343f22a ethernet lan0
lan1 3d6170c3-036a-4bb8-bc18-2f5b0ed39776 ethernet lan1
wan a0bdf3b5-d824-40f7-ab59-361b7a8b4ed5 ethernet wan
そして改めてnmcliから設定の有効が行えるか確認すると、以下のようにactivateが成功した、というメッセージを確認出来、本来の目的だったNetworkManagerからデバイスの制御が出来るようになると思います。