[Ubuntu][NetworkManager] Connection activation failedとなり、NetworkManagerから制御できなかった。

AIX、UNIX、Linux, Ubuntunetworkmanager, ubuntu, ネットワーク

https://wiki.gnome.org/Projects/NetworkManager

そもそもの問題

とある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 NetworkManagersystemctl 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.confunmanaged-devicesとしてbr*が記載されているのでこちらを削除します。

[keyfile]
unmanaged-devices=interface-name:eth*,interface-name:wan*,interface-name:lan*

そしてこの変更を有効にするために端末自体を再起動します。

CAUTION

Webの情報ではnetwork-manager.serviceの再起動を行う旨の記述が見られますが、実際には参考にしたWebサイトにあるように端末自体の再起動が必要になるはずです。

Also, just restarting network-manager service did not help. Only full reboot.

https://askubuntu.com/questions/1115117/ubuntu-18-04-ethernet-not-managed

再起動から復帰後、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 

そして改めてnmcliから設定の有効が行えるか確認すると、以下のようにactivateが成功した、というメッセージを確認出来、本来の目的だったNetworkManagerからデバイスの制御が出来るようになると思います。

$ sudo nmcli connection up br0 
[sudo] password for kometch: 
Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/9)   

参考

この記事を書いた人
kometchtech

kometchtech
うつ病を患いながら、IT業界の末席にいるおっさんエンジニア。科学計算をしたことがないのに、HPC分野にお邪魔している。興味のある分野で学習したことをblogにまとめつつ、うつ病の経過症状のメモも置いておく日々。じつはRouterboard User Group JPの中の人でもある。
Amazon欲しいものリスト / Arm板を恵んでくれる人募集中