2020年8月22日土曜日

nmcliコマンドでネットワーク設定を行う手順まとめ【RHEL 7/CentOS7以降対応】

RHEL 7やCentOS 7以降では、NetworkManagerによるNIC設定が推奨されている。NetworkManagerではテキストベースではあるがGUI風に設定ができるnmtuiコマンドと、完全にコマンドベースで設定するためのnmcliコマンドの2種類が用意されている。

通常はnmtuiコマンドを使えば、必要な設定は問題なく実施できるのだが、今回は勉強のために、あえてnmcliコマンドを使ってNIC設定をおこなってみた

本記事ではnmcliコマンドに対して調べた結果を記載する

環境

  • OS : CentOS 8
  • NIC : ens224のデバイスに対してnmcliコマンドにて設定を実施

nmcliコマンドの使用方法

NICのデバイス確認

NICのデバイスを確認するコマンドは以下の通り。

# nmcli d s
DEVICE  TYPE      STATE     CONNECTION
ens192  ethernet  接続済み  ens192
ens224  ethernet  接続済み  有線接続 1
ens256  ethernet  接続済み  有線接続 2
lo      loopback  管理無し  --

簡易表示をする場合は以下コマンドとなる。

# nmcli -t d
ens192:ethernet:connected:ens192
ens224:ethernet:connected:有線接続 1
ens256:ethernet:connected:有線接続 2
lo:loopback:unmanaged:

NIC設定 (Connection) の確認

NIC設定 (Connectionと呼ばれる) を確認するコマンドは以下の通り。

# nmcli c s
NAME        UUID                                  TYPE      DEVICE
ens192      d218a6ca-5466-43af-a7a1-30a61fd832bb  ethernet  ens192
有線接続 1  52a1f691-0784-3b34-a0c3-5bf9dc8d798e  ethernet  ens224
有線接続 2  2d2d5b96-bf3a-3360-8b3e-b0d3dbdea206  ethernet  ens256

簡易表示をする場合は以下コマンドとなる。

# nmcli -t c
ens192:d218a6ca-5466-43af-a7a1-30a61fd832bb:802-3-ethernet:ens192
有線接続 1:52a1f691-0784-3b34-a0c3-5bf9dc8d798e:802-3-ethernet:ens224
有線接続 2:2d2d5b96-bf3a-3360-8b3e-b0d3dbdea206:802-3-ethernet:ens256

特定のNICに設定されているパラメータを一覧表示させる場合は、Connection名を指定する。

# nmcli c s ens224
connection.id:                          ens224
connection.uuid:                        a1089320-d4d8-4746-a3cd-fc0bd982e643
connection.stable-id:                   --
connection.type:                        802-3-ethernet
connection.interface-name:              ens224
connection.autoconnect:                 いいえ
connection.autoconnect-priority:        0
connection.autoconnect-retries:         -1 (default)
connection.multi-connect:               0 (default)
connection.auth-retries:                -1
connection.timestamp:                   1596897283
connection.read-only:                   いいえ
connection.permissions:                 user:root
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.autoconnect-slaves:          -1 (default)
connection.secondaries:                 --
connection.gateway-ping-timeout:        0
connection.metered:                     不明
connection.lldp:                        default
connection.mdns:                        -1 (default)
connection.llmnr:                       -1 (default)
connection.wait-device-timeout:         -1
802-3-ethernet.port:                    --
802-3-ethernet.speed:                   0
802-3-ethernet.duplex:                  --
802-3-ethernet.auto-negotiate:          いいえ
802-3-ethernet.mac-address:             --
802-3-ethernet.cloned-mac-address:      --
802-3-ethernet.generate-mac-address-mask:--
802-3-ethernet.mac-address-blacklist:   --
802-3-ethernet.mtu:                     自動
802-3-ethernet.s390-subchannels:        --
802-3-ethernet.s390-nettype:            --
802-3-ethernet.s390-options:            --
802-3-ethernet.wake-on-lan:             default
802-3-ethernet.wake-on-lan-password:    --
ipv4.method:                            auto
ipv4.dns:                               192.168.11.61
ipv4.dns-search:                        intrat.local
ipv4.dns-options:                       --
ipv4.dns-priority:                      0
ipv4.addresses:                         192.168.11.192/24
ipv4.gateway:                           192.168.11.31
ipv4.routes:                            { ip = 192.168.11.0/24, nh = 192.168.11>
ipv4.route-metric:                      -1
ipv4.route-table:                       0 (unspec)
ipv4.routing-rules:                     --
ipv4.ignore-auto-routes:                いいえ
ipv4.ignore-auto-dns:                   いいえ
ipv4.dhcp-client-id:                    --
ipv4.dhcp-timeout:                      0 (default)
ipv4.dhcp-send-hostname:                はい
ipv4.dhcp-hostname:                     --
ipv4.dhcp-fqdn:                         --
ipv4.never-default:                     いいえ
ipv4.may-fail:                          はい
ipv4.dad-timeout:                       -1 (default)

~(以下略)~

NIC設定を削除

NIC設定を削除するコマンドは以下の通り。OSがデフォルトで設定する名前が気に入らない場合や、一度設定をクリアして一から設定しなおしたい時などに利用する。

# nmcli c del "有線接続 1"
接続 '有線接続 1' (52a1f691-0784-3b34-a0c3-5bf9dc8d798e) が正常に削除されました 。

NIC設定を追加

NIC設定を新規追加するコマンドは以下の通り。

# nmcli c add type ethernet con-name ens224 ifname ens224
接続 'ens224' (d414ca42-62e5-4753-a04e-4df3088f347f) が正常に追加されました。

NIC設定にIPアドレス等の設定を追加

追加してNIC設定に詳細なパラメータを設定するコマンドは以下の通り。nmtuiコマンドで設定できる項目については、以下表に記載の通りとなる。設定不要な項目は省略できる。

パラメータ 設定例 説明
ipv4.method manual IPv4アドレス設定を選択。自動 (auto) または手動 (manual) で設定。
ipv4.addresses 192.168.11.192/24 IPアドレスを設定。
ipv4.gateway 192.168.11.31 デフォルトゲートウェイを設定。
ipv4.dns 192.168.11.61 DNSサーバを設定。
ipv4.dns-search intrat.local 「検索ドメイン」の設定。
ipv4.routes “192.168.33.0/24 192.168.11.31” スタティックルートの設定。「<ネットワークアドレス/プレフィックス> <ゲートウェイ>」で設定する。
ipv4.never-default no 「このネットワークはデフォルトのルートには使用しない」の設定。デフォルト「no」。
ipv4.ignore-auto-routes no 「自動的に取得されたルートを無視」の設定。デフォルト「no」。
ipv4.ignore-auto-dns no 「自動的に取得された DNS パラメーターを無視」の設定。デフォルト「no」。
ipv4.may-fail yes 「この接続には IPv4 アドレス設定が必要になります」の設定。デフォルト「yes」。
ipv6.method ignore IPv6アドレスの設定を選択。特にIPv6通信が不要であれば無視 (ignore) で設定。
autoconnect yes 「自動的に接続する」の設定。デフォルト「yes」。
connection.permissions “” 「全ユーザーに使用可能」の設定。デフォルト「""」。nmtuiでチェックを外した場合は「user:root」となる。

以下コマンド実行例となる。

# nmcli c mod ens224 ipv4.method manual ipv4.addresses 192.168.11.192/24 ipv4.gateway 192.168.11.31 ipv4.dns 192.168.11.61 ipv6.method ignore autoconnect yes ipv4.dns-search intrat.local ipv4.routes "192.168.33.0/24 192.168.11.31"

複数のスタティックルートを設定

スタティックルートを複数設定したい場合は+ipv4.routesのように頭に+を付けて設定を行う。なお、削除する場合は-ipv4.routesのようになる。

# nmcli c mod ens224 +ipv4.routes "192.168.11.0/24 192.168.11.31" +ipv4.routes "192.168.22.0/24 192.168.11.31"

設定反映 (アクティベート)

設定反映はアクティベートと呼ばれる作業が必要だが、これは以下コマンドを実行すればよい。インタフェースがUp状態でも本コマンドでアクティベートされる

# nmcli c up ens224
接続が正常にアクティベートされました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/15)

0 件のコメント:

コメントを投稿

人気の投稿