作業環境
- 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
コネクションに対する操作
- デバイス(コネクション)の設定の流れは次のような感じ
- デバイスに対してコネクションを追加する(接続済みでない場合)
- 一般的にコネクション名はデバイス名と同じにする
- 追加したコネクションに対して、IP アドレス等のパラメータを設定する
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.id | string | コネクション表示名 |
ipv4.method | ・manual ・auto ・link-local ・shared ・disabed | アドレス設定方式 ・manual ⇒ 静的アドレス設定 ・auto ⇒ DHCP 利用 ・disabled ⇒ IPV4 を利用しない ※manual にするには先に ipv4.addresses が設定されている必要がある |
ipv4.addresses | xxx.xxx.xxx.xxx/prefix | IP アドレス |
ipv4.gateway | xxx.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.dns | xxx.xxx.xxx.xxx | DNS サーバ(プライマリ上書き) |
+ipv4.dns | xxx.xxx.xxx.xxx | DNS サーバ追加 |
-ipv4.dns | xxx.xxx.xxx.xxx | DNS サーバ削除 |
+ipv4.routes | ‘destination/prefix nexthop’ | スタティックルートの追加 |
-ipv4.routes | ‘destination/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 となっているデフォルトルートが追加されていることが確認できます。
以上です。
参考資料

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