本ページでは、DHCP利用によるCentOSのIPアドレスを設定する方法を説明します。

IPアドレスの設定方法は、大きく分けてDHCPによる動的IPアドレス取得と、固定IPアドレス指定の2種類があります。
特にOSのIPアドレスを指定する必要がないときは、DHCPを利用した動的IPアドレス取得を使用します。利用シーンとしては、DHCPサーバの役割を兼ねているブロードバンドルータが設置されている自宅LAN環境でCentOSをクライアントPCとして使用したい場合などです。

Connectionの設定

まず、現在のConnectionの設定を確認します。nmcliコマンドに-f <フィールド名>オプションを付けることで、ipv4に関するパラメータのみ確認可能です。
設定前の状態例として、設定対象のenp0s3は固定IPやデフォルトゲートウェイ、DNSサーバの情報が設定されています。

# nmcli -f ipv4 con show enp0s3
ipv4.method:                            manual
ipv4.dns:                               8.8.8.8 #DNSサーバ
ipv4.dns-search:
ipv4.addresses:                         192.168.1.1/24 #IPアドレス
ipv4.gateway:                           192.168.1.254 #デフォルトゲートウェイ
ipv4.routes:
ipv4.route-metric:                      -1
ipv4.ignore-auto-routes:                no
ipv4.ignore-auto-dns:                   no
ipv4.dhcp-client-id:                    --
ipv4.dhcp-send-hostname:                yes
ipv4.dhcp-hostname:                     --
ipv4.never-default:                     no
ipv4.may-fail:                          yes

以下コマンドを実行し、enp0s3でIPアドレスを自動取得できるようにします。なお、事前に固定IPアドレス、デフォルトゲートウェイ、DNSサーバが設定されている場合は、空文字(“”)を入れてパラメータを削除する必要があるので注意してください。

# nmcli con mod enp0s3 ipv4.method auto
# nmcli con mod enp0s3 ipv4.addresses ""
# nmcli con mod enp0s3 ipv4.gateway ""
# nmcli con mod enp0s3 ipv4.dns ""
# nmcli con down enp0s3 ; nmcli con up enp0s3

設定を変更したところで、再度Connectionの状態を確認してみます。設定前の状態と異なり、ipv4.methodがautoへ変更され、固定値が設定されていたipv4.addressesipv4.gatewayipv4.dnsが空になっていることがわかります。

# nmcli -f ipv4 con show enp0s3
ipv4.method:                            auto
ipv4.dns:
ipv4.dns-search:
ipv4.addresses:
ipv4.gateway:                           --
ipv4.routes:
ipv4.route-metric:                      -1
ipv4.ignore-auto-routes:                no
ipv4.ignore-auto-dns:                   no
ipv4.dhcp-client-id:                    --
ipv4.dhcp-send-hostname:                yes
ipv4.dhcp-hostname:                     --
ipv4.never-default:                     no
ipv4.may-fail:                          yes

IPアドレスの確認

現在使用されているIPアドレスを確認するには、ip addrコマンドを使用します。以下の表示例では、3つのインターフェース(Device)が表示されています。今回DHCPによる動的IPアドレス設定を指定したenp0s3に対して、inetの項目で10.0.2.15/24がIPアドレスとして割り当てられていることがわかります。

# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:7d:ce:7d brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3
       valid_lft 86368sec preferred_lft 86368sec
    inet6 fe80::a00:27ff:fe7d:ce7d/64 scope link
       valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:17:a3:9c brd ff:ff:ff:ff:ff:ff
    inet 192.168.56.102/24 brd 192.168.56.255 scope global dynamic enp0s8
       valid_lft 929sec preferred_lft 929sec
    inet6 fe80::a00:27ff:fe17:a39c/64 scope link
       valid_lft forever preferred_lft forever

個別のインターフェース情報のみ表示したい場合は、ip addr show <Device名>を実行することで表示する情報の絞込みが可能です。
なお、ipコマンドもnmcliコマンドと同様にオプション文字の省略が可能です。ip addrの場合はip aでも同じ実行結果を得られるので覚えておくと良いでしょう。