1.3. DHCP クライアントの動作の設定
DHCP (Dynamic Host Configuration Protocol) クライアントは、クライアントがネットワークに接続するたびに、動的 IP アドレスと対応する設定情報を DHCP サーバーに要求します。
NetworkManager はデフォルトで
DHCP
クライアントである dhclient を呼び出すことに注意してください。
IP アドレスの要求
DHCP
接続が開始すると、dhcp クライアントは DHCP
サーバーから IP アドレスを要求します。dhcp クライアントがこの要求を完了するのを待つ時間は、デフォルトで 60 秒です。nmcli ツールを使用して ipv4.dhcp-timeout
プロパティーを設定するか、/etc/sysconfig/network-scripts/ifcfg-ifname
ファイルの IPV4_DHCP_TIMEOUT
オプションを設定できます。たとえば、nmcli を使用します。
~]# nmcli connection modify enp1s0 ipv4.dhcp-timeout 10
この間にアドレスを取得できないと、IPv4 設定は失敗します。接続全体が失敗する場合もあり、これは ipv4.may-fail
プロパティーにより異なります。
ipv4.may-fail
がyes
(デフォルト)に設定されている場合、接続の状態は IPv6 設定に依存します。- IPv6 設定が有効であり、これが成功すると、接続はアクティブになりますが、IPv4 設定は再試行できません。
- IPv6 設定が無効であるか、または設定されていないと、接続は失敗します。
ipv4.may-fail
がno
に設定されている場合、接続は非アクティブになります。この場合は、以下のようになります。- 接続の
autoconnect
プロパティーが有効になっている場合、NetworkManager は、autoconnect-retries
プロパティーに設定された回数だけ接続のアクティブ化を再試行します。デフォルトでは 4 回です。 - それでも接続が dhcp アドレスを取得できないと、自動アクティベーションは失敗します。5 分後に自動接続プロセスが再開されて、dhcp クライアントが dhcp サーバーからのアドレスの取得を再試行することに注意してください。
リース更新の要求
dhcp アドレスを取得し、IP アドレスのリースを更新できない場合、dhcp クライアントは 2 分ごとに 3 下位再起動して、dhcp サーバーからリースを取得しようとします。毎回、リースを取得するために
ipv4.dhcp-timeout
プロパティーを秒単位(デフォルトは 60)で設定して設定されます。試行時に応答を得ると、プロセスは停止し、リースが更新されます。
3 回失敗した後:
ipv4.may-fail
がyes
(デフォルト)に設定され、IPv6 が正常に設定されている場合、接続はアクティブになり、dhcp クライアントは 2 分ごとに再起動します。ipv4.may-fail
をno
に設定すると、接続は非アクティブになります。この場合、接続のautoconnect
プロパティーが有効になっている場合、接続は最初からアクティブになります。
1.3.1. DHCPv4 の永続化
起動時とリース更新プロセス時に DHCPv4 を永続化するには、
ipv4.dhcp-timeout
プロパティーを 32 ビットの整数(MAXINT32)の最大値 2147483647
または infinity
値に設定します。
~]$ nmcli connection modify enps1s0 ipv4.dhcp-timeout infinity
その結果、NetworkManager は、成功するまで DHCP サーバーからのリースの取得または更新の試行を停止しません。
リース更新プロセス中にのみ DHCP の永続的な動作を保証するには、
/etc/sysconfig/network-scripts/ifcfg-enp1s0
設定ファイルまたは nmcli を使用して、IPADDR
プロパティーに静的 IP を手動で追加します。
~]$ nmcli connection modify enp1s0 ipv4.address 192.168.122.88/24
IP アドレスのリース期限が切れると、静的 IP は、設定済みあるいは一部設定済みの IP 状態を保持します。IP アドレスを持つことはできますが、インターネットには接続されていません。dhcp クライアントが 2 分ごとに再起動することを確認してください。