如何在 CentOS 上配置 dhclient 以从特定的 DHCP 服务器获取 IP

xkc*_*kcd 3 dhcp centos dhclient

我有一种情况,我可以在子网上启动 CentOS 6.6 映像,以便 VM 实例从子网的虚拟网关获取其 IP 地址。现在这个网关已经坏了,我无权修复它,所以我在这个子网上设置了我自己的 DHCP 服务器。

所以现在这个子网上有 2 个 DHCP 服务器,我的虚拟机正在获取随机 IP 地址,有时来自一个 DHCP 服务器,有时来自另一个。我的问题是如何在我的虚拟机上配置 dhcp 客户端,以便它们只向我的 DHCP 服务器而不是有故障的服务器发出 DHCP 请求?man dhcp.conf帮助不大。

小智 8

在 CentOS 7 上,这可以通过创建文件/etc/dhcp/dhclient.conf并添加如下一行来实现

reject 192.168.56.0/24;
Run Code Online (Sandbox Code Playgroud)

拒绝来自一台服务器或另一台服务器(或在此示例中,来自特定子网上的所有 DHCP 服务器)的 DHCP 提议。

要仅在特定接口上过滤 DHCP 提供,请将reject指令放在interface块中:

interface "eth0" {
    reject 192.168.56.0/24;
}
Run Code Online (Sandbox Code Playgroud)

请注意,接口名称(此处为eth0)必须放在引号中,这与手册页中显示的示例不同dhclient.conf

在所有情况下,systemctl restart network.service以超级用户身份运行以使更改生效。


在 CentOS 6.7 上,同样的指令也能工作,但是

  • 每个接口为 dhclient 使用单独的配置文件。在上面的示例中,reject将添加规则的文件将是/etc/dhcp/dhclient-eth0.conf(并且显然不需要使用interface块)。
  • 重新初始化系统网络接口的命令是service network restart,必须再次以超级用户身份调用。