Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

1.3. 配置 DHCP 客户端行为

DHCP 客户端在每次连接到网络时都从 DHCP 服务器请求动态 IP 地址和对应配置信息。
请注意,NetworkManager 默认调用 DHCP 客户端,dhclient

请求 IP 地址

DHCP 连接启动时,dhcp 客户端会从 DHCP 服务器请求 IP 地址。默认情况下,dhcp 客户端等待此请求完成的时间为 60 秒。您可以使用 nmcli 工具或 /etc/sysconfig/network -scripts/ifcfg-ifname文件中的 IPV4_DHCP_TIMEOUT 选项来配置ipv4.dhcp- timeout 属性。例如,使用 nmcli:
~]# nmcli connection modify enp1s0 ipv4.dhcp-timeout 10
如果在这个间隔内无法获取地址,则 IPv4 配置会失败。整个连接也可能失败,这取决于 ipv4.may-fail 属性:
  • If ipv4.may-fail 被设置为 yes (默认),连接的状态取决于 IPv6 配置:
    1. 如果启用了 IPv6 配置并成功,连接将被激活,但无法再次重试 IPv4 配置。
    2. 如果禁用或未配置 IPv6 配置,连接会失败。
  • If ipv4.may-fail 设置为 没有 停用连接。在这种情况下:
    1. 如果启用了 连接的 autoconnect 属性,NetworkManager 会重试以激活连接次数,次数与 autoconnect-retries 属性中设置的次数相同。默认值为 4。
    2. 如果连接仍然无法获得 dhcp 地址,则自动激活会失败。
      请注意,5 分钟后,自动连接过程将再次启动,dhcp 客户端会尝试从 dhcp 服务器获取地址。

请求租用续订

当 dhcp 地址被获取并且 IP 地址租期无法续订时,dhcp 客户端每 2 分钟重启三次,以尝试从 dhcp 服务器获得租用。每次都配置它,方法是将 ipv4.dhcp-timeout 属性设置为秒(默认为 60)以获取租用。如果在尝试过程中收到回复,则进程将停止,并且您的租期续订。
三次尝试失败后:
  • If ipv4.may-fail 设置为 yes (默认)和 IPv6 配置成功,连接将被激活,dhcp 客户端每 2 分钟重新重新启动一次。
  • If ipv4.may-fail 设置为 no,则连接将被停用。在这种情况下,如果连接启用了 autoconnect 属性,则从头激活连接。

1.3.1. 使 DHCPv4 持久

要使 DHCPv4 在启动和租期续订过程中持久化,请将 ipv4.dhcp-timeout 属性设置为 32 位整数(MAXINT32)的最大值,即 2147483647infinity 值:
~]$ nmcli connection modify enps1s0 ipv4.dhcp-timeout infinity
因此,NetworkManager 永远不会停止尝试从 DHCP 服务器获取或续订租期,直到成功为止。
要确保仅在租期续订过程中有 DHCP 持久性行为,您可以在 /etc/sysconfig/network-scripts/ifcfg- enp1s0 配置文件中使用 nmcli 手动将静态 IP 添加到 /etc/sysconfig/network-scripts/ifcfg- enp1s0 配置文件中的 IPADDR 属性中:
~]$ nmcli connection modify enp1s0 ipv4.address 192.168.122.88/24
当 IP 地址租用到期时,静态 IP 会保留已配置或部分配置的 IP 状态(您可以拥有 IP 地址,但您未连接到互联网),确保 dhcp 客户端每 2 分钟重新启动一次。