Network ManagerとUUIDについて

Network Managerですが基本的にCnnectionごとにUUIDが使われているみたいなんですけど、どんな動きをするのかちょっと不思議だったので試してみました。

手始めに現状の確認ということで、どのConnectionでどのUUIDが使用されているかを、次のコマンドで確認しました。eth1は、前回

 

linlinrh.hatenadiary.jp

 

VM上で追加したAdapterをRHELで使うために有効にしたConnectionなので今回もこれを使います。

 

[root@host1 ~]# nmcli con
NAME UUID TYPE DEVICE
eth0 c483566c-f533-4af5-8a7c-d59fadc321f1 802-3-ethernet ens192
eth1 58d1f618-722a-4bdd-a9d6-59ca6b158a57 802-3-ethernet ens224
virbr0 29f32794-10ea-46a2-9f37-08ff95153c69 bridge virbr0
[root@host1 ~]#

 

Network ManagerはどのDeviceがどのConnectionに割り当てられているというのをUUIDで識別しているというのがわかったところで、前回の作業で自動で作成されたConfigファイルを開いてみるとこちらにもUUIDの記載がありました。Network Managerが起動するときにConfigファイルを読み込んだときに対応するDeviceを確認してIPなどを設定しているみたいです。

[root@host1 ~]# cd /etc/sysconfig/network-scripts/
[root@host1 network-scripts]# cat /ifcfg-eth1
TYPE=Ethernet
BOOTPROTO=none

NAME=eth1
UUID=58d1f618-722a-4bdd-a9d6-59ca6b158a57
DEVICE=ens224
ONBOOT=yes
IPADDR=192.168.0.251
PREFIX=24
GATEWAY=192.168.0.1

 

このときふと手動でConfigファイルを作成したときってUUIDってどうしたらいいのか?と疑問に思ったので、試しに、上のファイルのUUDIをコメントアウトして、Network Managerをrestartしてみました。。

[root@host1 network-scripts]# vim ifcfg-eth1

f:id:linlinrh:20171031120510p:plain


[root@host1 network-scripts]# systemctl restart network.service
[root@host1 network-scripts]#
[root@host1 network-scripts]# nmcli con
NAME UUID TYPE DEVICE
eth0 c483566c-f533-4af5-8a7c-d59fadc321f1 802-3-ethernet ens192
eth1 9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04 802-3-ethernet ens224
virbr0 29f32794-10ea-46a2-9f37-08ff95153c69 bridge virbr0
[root@host1 network-scripts]#

上のように、Deviceは正常に立ち上がってきてUUIDは新たに設定されます。
コメントアウトしたファイルには新たなUUIDがUpdateされてはいないようですが、ConfigファイルにUUIDが明記されてなくても、なきゃないで自動で割り振ってくれるものみたいです。

 

f:id:linlinrh:20171031121205p:plain

もう一度、UUIDのコメントアウトを外して有効にした状態で、Network Managerをrestartしてみます。


[root@host1 network-scripts]# nmcli con
NAME UUID TYPE DEVICE
eth0 c483566c-f533-4af5-8a7c-d59fadc321f1 802-3-ethernet ens192
eth1 58d1f618-722a-4bdd-a9d6-59ca6b158a57 802-3-ethernet ens224
virbr0 29f32794-10ea-46a2-9f37-08ff95153c69 bridge virbr0
[root@host1 network-scripts]#

 

UUIDはもとから書かれていたものに戻りました。UUIDがあればそれを使うということですね。

 

 

今度は、Configファイルを複製してUUID有りとUUID無しの同時に2つが存在する環境で、Network Managerを起動してみました。

 

[root@host1 network-scripts]# cp ifcfg-eth1 ifcfg-eth1-1
[root@host1 network-scripts]#
[root@host1 network-scripts]# vim ifcfg-eth1  ...※UUIDをコメントアウト
[root@host1 network-scripts]#
[root@host1 network-scripts]# diff ifcfg-eth1 ifcfg-eth1-1
12c12
< #UUID=58d1f618-722a-4bdd-a9d6-59ca6b158a57
---
> UUID=58d1f618-722a-4bdd-a9d6-59ca6b158a57
[root@host1 network-scripts]#

 

diffコマンドで確認したとおり元のifcfg-eth1はUUID無しで、Copyのifcfg-eth1-1がUUDI有りです。

 

[root@host1 network-scripts]#
[root@host1 network-scripts]# systemctl restart network.service
[root@host1 network-scripts]#
[root@host1 network-scripts]# nmcli con
NAME UUID TYPE DEVICE
eth0 c483566c-f533-4af5-8a7c-d59fadc321f1 802-3-ethernet ens192
eth1 9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04 802-3-ethernet ens224  ...①
virbr0 29f32794-10ea-46a2-9f37-08ff95153c69 bridge virbr0
eth1 58d1f618-722a-4bdd-a9d6-59ca6b158a57 802-3-ethernet -- ...②
[root@host1 network-scripts]#

Network ManagerのRestartのあとに、eth1のConnectionが2つ見えてきまして、①のConnectionにens224が割り当てられて、新たにUUIDが割り当てられています。②の方は、Configに記載されているUUIDで読み込まれていますが、Deviceは割り当てられていません。

Network ManagerはConfigのファイル名をABC順に読み込んでいって先に読み込んだeth1のCofigにUUIDがなかったので、新たにUUIDを発行したようです。

また、いらない方のConnectionはnmliコマンドからUUDIを指定して削除できます。

[root@host1 network-scripts]#
[root@host1 network-scripts]# nmcli con delete 58d1f618-722a-4bdd-a9d6-59ca6b158a57
Connection 'eth1' (58d1f618-722a-4bdd-a9d6-59ca6b158a57) successfully deleted.
[root@host1 network-scripts]#
[root@host1 network-scripts]# nmcli con
NAME UUID TYPE DEVICE
eth0 c483566c-f533-4af5-8a7c-d59fadc321f1 802-3-ethernet ens192
eth1 9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04 802-3-ethernet ens224
virbr0 29f32794-10ea-46a2-9f37-08ff95153c69 bridge virbr0
[root@host1 network-scripts]#

 

Connectionのエントリーが消えて、Configファイルのifcfg-eth1-1も削除されます。


[root@host1 network-scripts]# ls -l
total 236
-rw-r--r--. 1 root root 383 Oct 31 10:59 ifcfg-ens192
-rw-r--r--. 1 root root 363 Oct 31 13:05 ifcfg-eth1

 

検証とかでいろいろやりすぎて、Network ManagerがStartするときにErrorとかが出るときには、ConfigファイルのDevice名とUUIDを見直せばいいのかなぁと言うのがわかりました。。