NIC を追加して nmcli コマンドを駆使してIPアドレスを割り当てる
みなさん、こんにちは!Linux 学習すすんでいますか?
この記事では nmcli コマンドに焦点をあてます。LinuC でも LPIC でもレベル1(102 試験)の試験範囲ですし、サーバーをスタンドアロンで使用することって少なくて、基本的に何かしら 1つは IPアドレスを持たせて通信させて使うので実務で大変重要です。
今回の作業環境も以前の記事で使用した CentOS です。
それでは早速やっていきまっしょう!
まずは下準備
NIC(ネットワークアダプタ)を追加
ESXi の Web 管理画面から今回使用する CentOS に対して NIC を追加し、「接続済み」な状態にしました。
追加された 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 9月 25 23:12 /etc/sysconfig/network-scripts/ifcfg-ens161 👈設定ファイルが作成された
-rw-r--r--. 1 root root 364 5月 9 2019 /etc/sysconfig/network-scripts/ifcfg-ens192
-rw-r--r-- 1 root root 361 9月 12 14:30 /etc/sysconfig/network-scripts/ifcfg-ens256
-rw-r--r-- 1 root root 254 8月 19 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関連)📌
もしこの記事が何かの参考になったもしくは面白かったという方は、応援していただけると大変嬉しいです😊 これからもよろしくお願いします。