CentOS 8 で IP アドレスを設定する方法(NetworkManager)

インフラサーバ

作業環境

  • CentOS 8.0

IP アドレス設定方法について

CentOS 8 においてネットワークインターフェースを設定する方法としては以下のような方法があります。

  • NetworkManager を使用
    • テキスト形式のユーザーインターフェースツール nmtui
    • コマンドラインツール nmcli
    • グラフィカルユーザーインターフェースツール GNOME GUI
  • ifcfg ファイルを手動で編集
  • ip コマンドを使用

ここでは NetworkManager の nmcli を使用した設定方法について記載します。

IP アドレスの設定方法(忙しい人向け)

対象のコネクションの確認(コネクション一覧の表示)

  • nmcli c

IP アドレスの設定変更

  • nmcli c modify コネクション名 ipv4.method manual ipv4.addresses x.x.x.x/prefix
    • IP アドレス設定方式を静的(手動)にした上で IP アドレスを設定する場合
  • nmcli c modify コネクション名 ipv4.addresses x.x.x.x/prefix
    • IP アドレス設定のみ行う場合
  • nmcli c modify コネクション名 ipv4.method auto
    • DHCP を利用するよう設定する場合

デフォルトゲートウェイの設定

  • nmcli c modify コネクション名 ipv4.gateway x.x.x.x ipv4.never-default no
    • ゲートウェイ設定と同時にipv4.never-default no を設定することでルーティングテーブルに掲載されるようにする

設定変更の反映

  • nmcli c up コネクション名

NetworkManager でのネットワーク設定について

NetworkManager では、操作対象としてデバイスとコネクションの 2 つがあります。

  • デバイス
    • 物理 NIC または論理 NIC のこと
    • デバイスに対するコマンドは nmcli d [オプション]
      • d は device の略で、d の代わりに device や dev でも同じ意味になる
  • コネクション
    • デバイスに対応するネットワーク接続のこと
    • IP アドレス、デフォルトゲートウェイなどはコネクションに対して設定する
    • コネクションに対するコマンドは nmcli c [オプション]
      • c は connection の略で、c の代わりに connection や con でも同じ意味になる

デバイスに対する操作

デバイス一覧の表示

  • nmcli d
# nmcli d
DEVICE      TYPE      STATE     CONNECTION
ens33       ethernet  接続済み  ens33
virbr0      bridge    接続済み  virbr0
lo          loopback  管理無し  --
virbr0-nic  tun       管理無し  --

個別のデバイスの詳細情報を表示

  • nmcli d show デバイス名
# nmcli d show ens33
GENERAL.DEVICE:                         ens33
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         00:0C:29:CD:83:54
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (接続済み)
GENERAL.CONNECTION:                     ens33
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/1
WIRED-PROPERTIES.CARRIER:               オン
IP4.ADDRESS[1]:                         192.168.139.145/24
IP4.GATEWAY:                            192.168.139.2
IP4.ROUTE[1]:                           dst = 192.168.139.0/24, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 192.168.139.2, mt = 100
IP4.DNS[1]:                             192.168.139.2
IP4.DOMAIN[1]:                          localdomain
IP6.ADDRESS[1]:                         fe80::e780:5b7f:218d:cc/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 100
IP6.ROUTE[2]:                           dst = ff00::/8, nh = ::, mt = 256, table=255

IP4.ADDRESS[1]: の行で現在の IP アドレスを確認できます。

コネクションに対する操作

コネクション一覧の表示

  • nmcli c
# nmcli c
NAME    UUID                                  TYPE      DEVICE
ens33   bf21e9b0-f371-4615-90ec-057e409ef0ff  ethernet  ens33
virbr0  b5c2570f-5ea6-480c-87f7-1a6d078950bc  bridge    virbr0

個別のコネクションの詳細情報を表示

  • nmcli c show コネクション名
# nmcli c show ens33
connection.id:                          ens33
connection.uuid:                        bf21e9b0-f371-4615-90ec-057e409ef0ff
connection.stable-id:                   --
connection.type:                        802-3-ethernet
connection.interface-name:              ens33
connection.autoconnect:                 はい
(略)
ipv4.method:                            auto
ipv4.dns:                               --
ipv4.dns-search:                        --
ipv4.dns-options:                       ""
ipv4.dns-priority:                      0
ipv4.addresses:                         --
ipv4.gateway:                           --
ipv4.routes:                            --
(略)

コネクションの追加

nmcli d コマンドの出力結果で STATE が「切断済み」となっているデバイスについては、まずデバイスに対してコネクションを追加する必要があります。

設定コマンドは以下の通りです。

  • nmcli c add type ethernet ifname デバイス名 con-name コネクション名

追加するコネクション名については、一般的にはデバイス名と同じにします。

コネクションの削除

  • nmcli c delete コネクション名

コネクションの設定

  • nmcli c modify コネクション名 項目名 値

項目名は nmcli c show コネクション名 コマンドで表示される項目の中から指定します。主な項目は以下の通りです。

項目値の選択肢説明
connection.idstringコネクション表示名
ipv4.method・manual
・auto
・link-local
・shared
・disabed
アドレス設定方式
・manual ⇒ 静的アドレス設定
・auto ⇒ DHCP 利用
・disabled ⇒ IPV4 を利用しない
※manual にするには先に ipv4.addresses が設定されている必要がある
ipv4.addressesxxx.xxx.xxx.xxx/prefixIP アドレス
ipv4.gatewayxxx.xxx.xxx.xxxデフォルトゲートウェイ
※ルーティングテーブルに追加されるようにするには
ipv4.never-default を no と設定する
ipv4.never-default・yes
・no
デフォルトゲートウェイとして使用しないかどうか
・yes ⇒ 使用しない
・no ⇒ 使用する
  • コマンドテンプレート
項目コマンド
コネクション名nmcli c modify コネクション名 connection.id 新コネクション名
アドレス設定方式nmcli c modify コネクション名 ipv4.method manual|auto
IP アドレスnmcli c modify コネクション名 ipv4.addresses x.x.x.x/prefix
ゲートウェイnmcli c modify コネクション名 ipv4.gateway x.x.x.x
ゲートウェイ使用有無nmcli c modify コネクション名 ipv4.never-default no|yes

以下のように複数の項目を一行で設定することも可能です。

  • アドレス設定方式を手動にして、IP アドレスを設定する場合
    • nmcli c modify コネクション名 ipv4.method manual ipv4.addresses x.x.x.x/prefix

コネクションの設定変更の反映およびアクティブ化

コネクションの設定変更は即座には反映されず、以下コマンドを実行することで反映されます。

  • nmcli c up コネクション名

コネクションの非アクティブ化

  • nmcli c down コネクション名

IP アドレス設定例

新規に接続した外付け USB NIC の IP アドレスを設定する例です。

USB NIC を接続した直後のデバイス一覧は以下の通りです。

# nmcli d
DEVICE      TYPE      STATE     CONNECTION
ens33       ethernet  接続済み  ens33
virbr0      bridge    接続済み  virbr0
ens35u1     ethernet  切断済み  --
lo          loopback  管理無し  --
virbr0-nic  tun       管理無し  --

ens35u1 が接続した USB NIC です。STATE が切断済みになっていることが確認できます。

まずデバイスに対してコネクションを追加します。

# nmcli c add type ethernet ifname ens35u1 con-name ens35u1
接続 'ens35u1' (3eda9d46-e138-47c9-8619-bd4b8e4791c3) が正常に追加されました。
# nmcli c
NAME     UUID                                  TYPE      DEVICE
ens33    bf21e9b0-f371-4615-90ec-057e409ef0ff  ethernet  ens33
virbr0   b5c2570f-5ea6-480c-87f7-1a6d078950bc  bridge    virbr0
ens35u1  3eda9d46-e138-47c9-8619-bd4b8e4791c3  ethernet  ens35u1

コネクションが追加されました。コネクションのデフォルトの設定を確認します。

# nmcli c show ens35u1
connection.id:                          ens35u1
(略)
ipv4.method:                            auto
(略)
ipv4.addresses:                         --
ipv4.gateway:                           --
(略)

DHCP を利用する設定になっていることが分かります。ここで以下の通りコネクションの設定を行います。

  • アドレス設定方式: manual (手動)
  • IP アドレス: 10.100.1.5/24
# nmcli c modify ens35u1 ipv4.method manual ipv4.addresses 10.100.1.5/24
# nmcli c show ens35u1
(略)
ipv4.method:                            manual
(略)
ipv4.addresses:                         10.100.1.5/24

設定変更ができました。nmcli c up コマンドで設定変更を反映させます。

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

デバイスの設定を確認します。

# nmcli d show ens35u1
GENERAL.DEVICE:                         ens35u1
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         1C:C0:35:03:54:68
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (接続済み)
GENERAL.CONNECTION:                     ens35u1
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/11
WIRED-PROPERTIES.CARRIER:               オン
IP4.ADDRESS[1]:                         10.100.1.5/24
IP4.GATEWAY:                            --
IP4.ROUTE[1]:                           dst = 10.100.1.0/24, nh = 0.0.0.0, mt = 101
IP6.ADDRESS[1]:                         fe80::6692:58ea:aaff:d47b/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 101
IP6.ROUTE[2]:                           dst = ff00::/8, nh = ::, mt = 256, table=255

設定した通り IP4.ADDRESS[1]: 10.100.1.5/24 となっていることが確認できます。

10.100.1.0/24セグメントとの疎通確認を行います。

# ping 10.100.1.254
PING 10.100.1.254 (10.100.1.254) 56(84) bytes of data.
64 bytes from 10.100.1.254: icmp_seq=1 ttl=255 time=4.46 ms
64 bytes from 10.100.1.254: icmp_seq=2 ttl=255 time=3.19 ms
64 bytes from 10.100.1.254: icmp_seq=3 ttl=255 time=3.16 ms
64 bytes from 10.100.1.254: icmp_seq=4 ttl=255 time=3.01 ms
^C
--- 10.100.1.254 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 8ms
rtt min/avg/max/mdev = 3.013/3.454/4.460/0.585 ms

疎通が取れることを確認できました。

必要に応じてデフォルトゲートウェイも設定します。以下の通り設定します。

  • デフォルトゲートウェイ: 10.100.1.254
  • デフォルトゲートウェイとして利用する
# nmcli c modify ens35u1 ipv4.gateway 10.100.1.254 ipv4.never-default no
# nmcli c up ens35u1
接続が正常にアクティベートされました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/12)

デバイスの設定を確認します。

# nmcli dev show ens35u1
GENERAL.DEVICE:                         ens35u1
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         1C:C0:35:03:54:68
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (接続済み)
GENERAL.CONNECTION:                     ens35u1
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/12
WIRED-PROPERTIES.CARRIER:               オン
IP4.ADDRESS[1]:                         10.100.1.5/24
IP4.GATEWAY:                            10.100.1.254
IP4.ROUTE[1]:                           dst = 10.100.1.0/24, nh = 0.0.0.0, mt = 101
IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 10.100.1.254, mt = 101
IP6.ADDRESS[1]:                         fe80::6692:58ea:aaff:d47b/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 101
IP6.ROUTE[2]:                           dst = ff00::/8, nh = ::, mt = 256, table=255

設定した通り IP4.GATEWAY: 10.100.1.254 となっていることが確認できます。

ルーティングテーブルも確認してみます。

# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         _gateway        0.0.0.0         UG    100    0        0 ens33
default         _gateway        0.0.0.0         UG    101    0        0 ens35u1
10.100.1.0      0.0.0.0         255.255.255.0   U     101    0        0 ens35u1
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
192.168.139.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33

Use Iface が ens35u1 となっているデフォルトルートが追加されていることが確認できます。

以上です。

―――――――――――――

CentOS 8 でユーザおよびグループを作成する方法

CentOS 8 でファイアウォールを設定する方法

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