我有以下问题需要解决:
- 我有运行 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 吗?我的配置文件有错误吗?