【RHEL 7】IP アドレスの設定方法(NetworkManager)

インフラサーバ

作業環境

  • Red Hat Enterprise Linux 7.3

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

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

  • 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 show デバイス名

nmcli d 出力例

# nmcli d
デバイス  タイプ    状態      接続
ens33     ethernet  接続済み  ens33
ens38     ethernet  接続済み  ens38
lo        loopback  管理無し  --

nmcli d show デバイス名 出力例

# nmcli d show ens38
GENERAL.デバイス:                       ens38
GENERAL.タイプ:                         ethernet
GENERAL.ハードウェアアドレス:           00:0C:29:08:E1:E9
GENERAL.MTU:                            1500
GENERAL.状態:                           100 (接続済み)
GENERAL.接続:                           ens38
GENERAL.CON パス:                       /org/freedesktop/NetworkManager/ActiveConnection/1
WIRED-PROPERTIES.キャリア:              オン
IP4.アドレス[1]:                        10.1.10.111/24
IP4.アドレス[2]:                        10.1.10.7/24
IP4.ゲートウェイ:                       10.1.10.1
IP4.DNS[1]:                             192.168.179.1
IP6.アドレス[1]:                        fe80::bada:7045:8b10:3e6e/64
IP6.アドレス[2]:                        fe80::cafa:787f:df56:aae5/64
IP6.アドレス[3]:                        fe80::f268:b4e7:f44f:f5a3/64

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

  • デバイス(コネクション)の設定の流れは次のような感じ
    1. デバイスに対してコネクションを追加する(接続済みでない場合)
      • 一般的にコネクション名はデバイス名と同じにする
    2. 追加したコネクションに対して、IP アドレス等のパラメータを設定する
    3. nmcli c up コマンドで設定変更を反映させる
  • コネクションの設定ファイル
    • /etc/sysconfig/network-scripts/ifcfg-<Connection名>
    • nmcli コマンドで実施した設定変更がこのファイルに反映される
項目コマンド
一覧表示nmcli c
追加nmcli c add type ethernet ifname デバイス名 con-name コネクション名
削除nmcli c delete コネクション名
個別詳細表示nmcli c show コネクション名
パラメータ設定nmcli c modify コネクション名 パラメータ名
設定変更反映
(アクティブ化)
nmcli c up コネクション名
非アクティブ化nmcli c down コネクション名

nmcli c 出力例

# nmcli c
名前   UUID                                  タイプ          デバイス
ens33  d33a4f1c-6199-401d-ad9e-1d730c7421fd  802-3-ethernet  ens33
ens38  6cc72dbf-14c2-47dc-98ed-75096211dd1d  802-3-ethernet  ens38

nmcli c show Connection名 出力例

# nmcli c show ens38
connection.id:                          ens38
connection.uuid:                        6cc72dbf-14c2-47dc-98ed-75096211dd1d
#略
ipv4.method:                            auto
ipv4.dns:
ipv4.dns-search:
ipv4.dns-options:                       (デフォルト)
ipv4.dns-priority:                      0
ipv4.addresses:
ipv4.gateway:                           --
ipv4.routes:
#略
ipv6.method:                            auto
ipv6.dns:
ipv6.dns-search:
ipv6.dns-options:                       (デフォルト)
ipv6.dns-priority:                      0
ipv6.addresses:
ipv6.gateway:                           --
ipv6.routes:
#略

  • コネクションの主なパラメータ
項目値の選択肢説明
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
  • 以下のように複数の項目を一行で設定することも可能
    • nmcli c modify コネクション名 ipv4.method manual ipv4.addresses x.x.x.x/prefix
  • コネクションのその他のパラメータ
    • 多分ほとんど使わない
項目値の選択肢説明
ipv4.dnsxxx.xxx.xxx.xxxDNS サーバ(プライマリ上書き
+ipv4.dnsxxx.xxx.xxx.xxxDNS サーバ追加
-ipv4.dnsxxx.xxx.xxx.xxxDNS サーバ削除
+ipv4.routesdestination/prefix nexthop’スタティックルートの追加
-ipv4.routesdestination/prefix nexthop’スタティックルートの削除

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 となっているデフォルトルートが追加されていることが確認できます。

以上です。

参考資料

第3章 IP ネットワークの設定 Red Hat Enterprise Linux 7 | Red Hat Customer Portal
Access Red Hat’s knowledge, guidance, and support through your subscription.

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

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