nmcli(NetworkManager)で CONNECTION名を変更する手順メモ

Linux
Linux
スポンサーリンク

Linuxマシンの有線LANのポートを増やすために NIC(ネットワーク・インターフェース・カード)を追加することがあります。NetworkManagerが採用されている Linux OS では、nmcli というコマンドラインユーティリティーなどで追加したNICを設定するのですが、追加したNICの DEVICE名と、自動で設定される CONNECTION名 が異なってしまうため、NICの設定が少し面倒なことになります。そこで今回は、CONNECTION名 を変更して DEVICE名と同じにする手順をまとめてみました。

CONNECTION名の変更手順

DEVICE名と CONNECTION名 を同じにする手順です。

まず DEVICE名と CONNECTION名 を nmcli コマンドで確認します。見ての通りですが DEVICE の列に表示されているのが DEVICE名、CONNECTION の列に表示されているのが CONNECTION名です。

nmcli d s

DEVICE  TYPE      STATE           CONNECTION         
enp0s3  ethernet  connected       enp0s3             
enp0s8  ethernet  connected       enp0s8             
enp0s9  ethernet  connected       Wired connection 1 ←DEVICE名と違う! 

上の例では DEVICE名「enp0s9」のNICの CONNECTION名は「Wired connection 1」となり異なっています。

これを以下のコマンドで DEVICE名と同じ「enp0s9」に変更します。「Wired connection 1」には、スペースが含まれていますので必ずクォートしてください。(シングルクォート、ダブルクォートどちらでも構いません)

nmcli c mod 'Wired connection 1' connection.id enp0s9

コマンドを実行して、DEVICE名と CONNECTION名 が同じになっていることを確認できれば作業完了です。

nmcli d s

DEVICE  TYPE      STATE           CONNECTION         
enp0s3  ethernet  connected       enp0s3             
enp0s8  ethernet  connected       enp0s8             
enp0s9  ethernet  connected       enp0s9 ←DEVICE名と同じ 

なぜ DEVICE名 と CONNECTION名 を同じにするのか?

DEVICE名 と CONNECTION名 を同じにする理由は、NIC の設定は、DEVICE名 ではなく CONNECTION名(もしくはUUID)を指定する必要があるためです。

先ほどの変更手順を例にすると、CONNECTION名が「Wired connection 1」の状態のままで、DEVICE名「enp0s9」の NIC に、DEVICE名を指定してIPアドレスを設定すると、「そんな CONNECTIONは無いよ!」と言われてエラーになります。

nmcli c mod enp0s9 ipv4.addresses 192.0.2.1/24

Error: unknown connection 'enp0s9'. ←エラーになる、、

正しくは、以下のように CONNECTION名 の「Wired connection 1」を指定してあげる必要があります。

nmcli c mod 'Wired connection 1' ipv4.addresses 192.0.2.1/24

もちろん DEVICE名 と CONNECTION名 が違っていても CONNECTION名 を正しく指定すればNICの設定はできますが、DEVICE名 と CONNECTION名が違うことによりミスが発生したり、いちいちクォートしたりと色々と面倒なため、DEVICE名と CONNECTION名 は同じにすることをオススメします。

NetworkManager の「接続プロファイル」

NetworkManagerには、「接続プロファイル」という仕組みがあり、この接続プロファイルの名前をこの記事では、CONNECTION名と呼んでいます。

NetworkManagerでは、NICなどのデバイスを直接設定をするのではなく、デバイスに「接続プロファイル」を紐づけ、「接続プロファイル」対して、IPアドレスなどのネットワーク設定を行います。そのため DEVICE名 と CONNECTION名(接続プロファイルの名前)は、当然ながら異なってくるはずなのですが、OSのインストール時にNICが認識している場合は、気を効かせて DEVICE名 と CONNECTION名 が同じになるように設定してくれるようです。

参考資料:3.3. nmcli を使用する IP ネットワークの設定 Red Hat Enterprise Linux 7

1つのNICに複数の「接続プロファイル」を紐づけることもできるため、用途によっては便利な仕組みではあるのですが、一般的には、DEVICE名 と CONNECTION名 は、同じにしておいた方が便利でしょう。

おわりに

NetworkManagerの接続プロファイルを理解していなかったため、とあるサーバーにNICを追加した時にネットワークの設定ができず小一時間あたふたと悩みました、、、仕組みをしっかり理解しておくことは大切ですね。

コメント

タイトルとURLをコピーしました