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を追加した時にネットワークの設定ができず小一時間あたふたと悩みました、、、仕組みをしっかり理解しておくことは大切ですね。
コメント