見出し画像

NIC を追加して nmcli コマンドを駆使してIPアドレスを割り当てる

みなさん、こんにちは!Linux 学習すすんでいますか?

この記事では nmcli コマンドに焦点をあてます。LinuC でも LPIC でもレベル1(102 試験)の試験範囲ですし、サーバーをスタンドアロンで使用することって少なくて、基本的に何かしら 1つは IPアドレスを持たせて通信させて使うので実務で大変重要です。

今回の作業環境も以前の記事で使用した CentOS です。

それでは早速やっていきまっしょう!

まずは下準備

NIC(ネットワークアダプタ)を追加

ESXi の Web 管理画面から今回使用する CentOS  に対して NIC を追加し、「接続済み」な状態にしました。

画像1

追加された NIC の状態を確認する

root で CentOS にログインし、ネットワークを管理するサブシステム NetworkManager による nmcli コマンドを使って現状を確認します。

少々ややこしいのは、物理インターフェース DEVICE に対して紐づく論理インターフェース CONNECTION です。IP アドレスの設定は CONNECTION にしていくことになります。

// 書式
nmcli オブジェクト [コマンド]

// デバイスの一覧を表示
// 'd'はオブジェクト'device'の省略形
[root@CENT03 ~]# nmcli d 
DEVICE      TYPE      STATE                 CONNECTION 
ens256      ethernet  接続済み                ens256 
ens192      ethernet  接続済み                ens192 
virbr0      bridge    接続済み                virbr0 
ens161      ethernet  接続中 (IP 設定を取得中)  有線接続 1 👈追加されたNIC
docker0     bridge    管理無し                -- 
lo          loopback  管理無し                -- 
virbr0-nic  tun       管理無し                -- 

// 接続の一覧を表示
// 'c'はオブジェクト'connection'の省略形
// コマンド'show'の省略形
[root@CENT03 ~]# nmcli c 
NAME        UUID                                  TYPE      DEVICE 
ens256      7fe4ea32-3be6-4955-a156-c5bc5b951f84  ethernet  ens256 
ens192      b07a85e0-1627-46fb-9448-9995c0c11ac1  ethernet  ens192 
virbr0      b9fc5fa5-93ff-4bd2-950e-a623e25dbfc0  bridge    virbr0 
有線接続 1    573b3320-88ba-3713-9bca-89d5354479a0  ethernet  -- 👈追加されたNIC

追加された NIC に接続(CONNECTION)を追加

// DEVICE:ens161 に対して、CONNECTION:ens161(ethernet) を追加
[root@CENT03 ~]# nmcli c add type ethernet ifname ens161 con-name ens161 
接続 'ens161' (42a721ed-f3d3-4273-b8b3-5dedf4a0a72f) が正常に追加されました。 

[root@CENT03 ~]# nmcli d 
DEVICE      TYPE      STATE                 CONNECTION 
ens256      ethernet  接続済み                ens256 
ens192      ethernet  接続済み                ens192 
virbr0      bridge    接続済み                virbr0 
ens161      ethernet  接続中 (IP 設定を取得中)  ens161 👈'有線接続 1'から'ens161'に変わった
docker0     bridge    管理無し                -- 
lo          loopback  管理無し                -- 
virbr0-nic  tun       管理無し                -- 

設定ファイルの確認

ネットワークインターフェースに関する定義が記述されたファイル(ifcfg-ネットワークインターフェース名)が作成されたか、そしてその中身を確認します。

[root@CENT03 ~]# ls -l /etc/sysconfig/network-scripts/ifcfg-* 
-rw-r--r--  1 root root 282  925 23:12 /etc/sysconfig/network-scripts/ifcfg-ens161 👈設定ファイルが作成された
-rw-r--r--. 1 root root 364  59  2019 /etc/sysconfig/network-scripts/ifcfg-ens192 
-rw-r--r--  1 root root 361  912 14:30 /etc/sysconfig/network-scripts/ifcfg-ens256 
-rw-r--r--  1 root root 254  819  2019 /etc/sysconfig/network-scripts/ifcfg-lo 

[root@CENT03 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens161 
TYPE=Ethernet 
PROXY_METHOD=none 
BROWSER_ONLY=no 
BOOTPROTO=dhcp 
DEFROUTE=yes 
IPV4_FAILURE_FATAL=no 
IPV6INIT=yes 
IPV6_AUTOCONF=yes 
IPV6_DEFROUTE=yes 
IPV6_FAILURE_FATAL=no 
IPV6_ADDR_GEN_MODE=stable-privacy 
NAME=ens161 
UUID=42a721ed-f3d3-4273-b8b3-5dedf4a0a72f 
DEVICE=ens161 
ONBOOT=yes 

// すべてのインタフェースについて詳細な情報を見るコマンド
// 今回はens161以外のところは省略
[root@CENT03 ~]# nmcli d show 
・
・
・ 
GENERAL.DEVICE:                         ens161 
GENERAL.TYPE:                           ethernet 
GENERAL.HWADDR:                         00:0C:29:B1:75:A7 
GENERAL.MTU:                            1500 
GENERAL.STATE:                          30 (切断済み) 
GENERAL.CONNECTION:                     -- 
GENERAL.CON-PATH:                       -- 
WIRED-PROPERTIES.CARRIER:               オン 
・
・
・ 

IP アドレスを設定

今回追加した NIC に IPアドレスを設定

今回追加した NIC(ens161)は、192.168.7.0/24 のネットワーク用に使用していました。第四オクテットの値は、空いている任意の値で良いので、今回は 4 を割り当てました。

// CONNECTION:ens161に、IPアドレス:192.168.7.4/24を割り当て
// 'mod'はオブジェクト'modify'の省略形
[root@CENT03 ~]# nmcli c mod ens161 ipv4.addresses 192.168.7.4/24 

// IPアドレスを割り当てた値で固定する
[root@CENT03 ~]# nmcli c mod ens161 ipv4.method manual 

// インターフェースの自動接続設定も行う(もし設定されていなければ)
// OSが起動すると同時に自動的にインターフェースが接続されるようにする
[root@CENT03 ~]# nmcli c mod ens161 connection.autoconnect yes 
[root@CENT03 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens161 | grep "ONBOOT" 
ONBOOT=yes 

設定変更の反映

今回設定したインターフェースの 切断 / 接続 を行うことで、加えた変更を反映させます。

[root@CENT03 ~]# nmcli c down ens161 && nmcli c up ens161 
接続 'ens161' が正常に非アクティブ化されました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/20) 
接続が正常にアクティベートされました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/21) 

設定変更反映の確認

[root@CENT03 ~]# nmcli d show ens161 
GENERAL.DEVICE:                         ens161 
GENERAL.TYPE:                           ethernet 
GENERAL.HWADDR:                         00:0C:29:B1:75:A7 
GENERAL.MTU:                            1500 
GENERAL.STATE:                          100 (接続済み) 
GENERAL.CONNECTION:                     ens161 
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/21 
WIRED-PROPERTIES.CARRIER:               オン 
IP4.ADDRESS[1]:                         192.168.7.4/24 👈設定したIPアドレス
IP4.GATEWAY:                            -- 
IP4.ROUTE[1]:                           dst = 192.168.7.0/24, nh = 0.0.0.0, mt = 103 
IP6.ADDRESS[1]:                         fe80::5273:8a5:638d:47c4/64 
IP6.GATEWAY:                            -- 
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 103 
IP6.ROUTE[2]:                           dst = ff00::/8, nh = ::, mt = 256, table=255 

[root@CENT03 ~]# nmcli c show 
NAME    UUID                                  TYPE      DEVICE 
ens256  7fe4ea32-3be6-4955-a156-c5bc5b951f84  ethernet  ens256 
ens161  42a721ed-f3d3-4273-b8b3-5dedf4a0a72f  ethernet  ens161 👈元々設定されていた他のethernet同様に接続が確立されている
ens192  b07a85e0-1627-46fb-9448-9995c0c11ac1  ethernet  ens192 
virbr0  50c407c6-5d13-4984-a61c-a4b5ef51bd96  bridge    virbr0 

(別に不要だが)念のため再起動

[root@CENT03 ~]# shutdown -r now

再起動後に念のため確認

自動的にインターフェースが接続されて、設定したIPアドレスも割り当てられていた。めでたしめでたし。

[root@CENT03 ~]# nmcli d show ens161 
GENERAL.DEVICE:                         ens161 
GENERAL.TYPE:                           ethernet 
GENERAL.HWADDR:                         00:0C:29:B1:75:A7 
GENERAL.MTU:                            1500 
GENERAL.STATE:                          100 (接続済み) 
GENERAL.CONNECTION:                     ens161 
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/1 
WIRED-PROPERTIES.CARRIER:               オン 
IP4.ADDRESS[1]:                         192.168.7.4/24 
IP4.GATEWAY:                            -- 
IP4.ROUTE[1]:                           dst = 192.168.7.0/24, nh = 0.0.0.0, mt = 100 
IP6.ADDRESS[1]:                         fe80::5273:8a5:638d:47c4/64 
IP6.GATEWAY:                            -- 
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 100 
IP6.ROUTE[2]:                           dst = ff00::/8, nh = ::, mt = 256, table=255 

いかがだったでしょうか?

今回は追加の話でしたが、IPアドレスを変更したりも同様に nmcli connection modify で実施します。

最後までお読みいただきましてありがとうございます。
それでは皆さん、すてきな Linux ライフを!

🔽 LinuC 学習関連記事マガジンはこちら 🔽

🔽 LinuC 学習関連記事まとめはこちら 🔽

📌おススメ学習書籍(Linux関連)📌


もしこの記事が何かの参考になったもしくは面白かったという方は、応援していただけると大変嬉しいです😊 これからもよろしくお願いします。