为什么 dhclient 忽略了 dhclient.conf?

为什么 dhclient 忽略了 dhclient.conf?

我有以下问题需要解决:

  • 我有运行 Linux 的多宿主系统,具有三个接口。所有接口均由 dhcp 配置。DHCP 客户端是 ISC dhcp 4.2.5
  • DHCP 服务器在所有网络上提供默认路由。
  • 我希望仅为第一个接口设置默认路由。

因此,基本上我想指示 dhclient 不要在所有接口上请求路由器,除了一个接口。我在互联网上找到的文档和示例表明这是可行的。但是我无法让它工作。

我可以手动完成。如果我这样做:

sudo dhclient -d -1  -R subnet-mask,broadcast-address eth1

然后我看到 dhcp 请求仅包含对子网掩码和广播地址的请求。我使用 wireshark 验证了这一点,这样做后,eth1 上不会设置默认路由。这正是我所期望的。

然后我创建了以下 dhclient.conf 文件:

request subnet-mask, broadcast-address;

interface "eth0" {
  also request routers, domain-name, domain-name-servers, domain-search, host-name, interface-mtu, rfc3442-classless-static-routes, ntp-servers, time-offset;
}

据我所知,这应该只导致请求 ubnet-mask、广播地址,但 eth1 除外,在那里应该请求更多内容。

我测试过:

sudo dhclient -d -1  -cf dhclient.conf  eth1

然后我再次使用 wireshark 查看了网络。我发现,无论配置如何,dhclient 请求的都是默认选项列表,而不仅仅是我配置的两个选项。

为什么会这样?这是个 bug 吗?我的配置文件有错误吗?

相关内容