使用 busybox udhcpd 的 P2P DHCP 的合理配置是什么?

使用 busybox udhcpd 的 P2P DHCP 的合理配置是什么?

我有两台计算机通过以太网直接连接,其中一台用作 dhcp 服务器,另一台用作客户端
我的配置:

interface   eth0
lease_file  /var/lib/udhcpd/udhcpd.leases
remaining   no

start   192.168.1.2
end 192.168.1.16

option dns  9.9.9.9
option dns  192.168.1.1
option subnet   255.255.255.255
option router   192.168.1.1
option domain   local
option lease    864000

我混合和匹配了选项,甚至尝试不使用这些选项,但结果大多相同:我仍然必须在两台机器上手动添加路线。
我预期的行为是 udhcpd 在 PC_0 上运行,udhcpc 在 PC_1 上运行,PC_1 通过 dhcp 从 PC_0 获取地址和路由,我可以从另一个 ping 一个,反之亦然。但事实并非如此,因为ip route add remote_ip/subnet_mask via local_ip dev eth0每当我连接它们时我仍然需要这样做。我还必须在运行 udhcpd 的 PC_0 上手动分配 IP 地址。我该如何解决?

答案1

您指定:

option subnet   255.255.255.255

这意味着当客户端创建地址时,它将具有 /255.255.255.255 网络掩码,即 CIDR 表示法中的 /32 。例如,租用 192.168.1.10/32 的 LAN 中有多少台主机?有只有一个。对于一台主机,无需添加路由即可到达此类 LAN:这就是 Linux 内核不会添加自动 LAN 路由的原因(通常使用命令ip routeas来查看proto kernel scope link)。

通过发布更宽的网络掩码来解决此问题,该网络掩码将允许包含从 192.168.1.1(路由器具有最低地址)到 192.168.1.16(范围结束:最高地址)的所有范围。 /28 将位于 192.168.1.0 和 192.168.1.15 之间:不够。因此 /27 <=> 255.255.255.224 就足够了,或者您也可以选择通常的 /24 (255.255.255.0)。任何更广泛的内容都有与其他内容冲突的风险,考虑到 DHCP 服务器也可能充当互联网的路由器(例如:到达 9.9.9.9 处的 DNS 服务器),即使此处未公开此信息,因此也有一个对方。这样就解决了DHCP客户端的配置问题。

至于服务器端,应该配置一个匹配的网络掩码:因此使用 192.168.1.1 加上上面选择的相同网络掩码,介于 192.168.1.1/27 和 192.168.1.1/24 之间。同样的情况也会发生:内核将自动proto kernel为配置了此类地址的 LAN 添加一条类型的路由。

相关内容