我需要为针对特定网络硬件(被测硬件)定制的测试工具提供 DHCP 请求。
只要您一次传递一个设备,测试工具(我的服务器 + 简单的 netgear 5 端口交换机)似乎就可以工作。当您同时开始使用 2 个设备时,第二个设备插入系统后不久,两个设备都会失败。
症状让我想到两个设备使用相同的 IP 地址。查看 wireshark 跟踪后,似乎确实如此。
测试中的这些设备始终显示相同的 mac 地址:4e:42:46:76:30:32(ascii 格式的 NBFv02)。因此,我认为 isc-dhcp-server 观察到此 mac 地址已分配租约,并将其返回给其他设备。
我如何配置 isc-dhcp-server 以便它只提供新的租约,而不管客户端 mac 地址如何?
(在 Ubuntu 12.04 上观察)
谢谢
[编辑] 我已经制作了自己的自定义 DHCP 守护程序。哦,它确实有效。它提供租约,而不管客户端 mac 地址如何。但是,我后来似乎在 ARP 解析方面遇到了其他问题。我陷入困境
答案1
虽然您看到的是正确的行为,但最好的选择可能是更改设备中的客户端标识符或其 MAC 地址。如果服务器收到具有相同 MAC 和客户端标识符的 DHCPDISCOVER,它还有什么其他方法来区分机器?
在服务器端,您可以检查并查看duplicates
dhcpd.conf 中的密钥设置为何,您应该拒绝重复,并设置多个 DHCP 服务器(可能authoritative
设置为关闭)。然后为每个服务器分配不同的池,这样第一台机器将向 DHCP 服务器发出请求,并应获取 IP,然后当下一台机器发出请求时,第一台服务器将忽略该请求,但第二台服务器应该回复,并分配不同的 IP(可能需要在第二台服务器上设置 min sec
为非 0 数字)。
这重复关键词
允许重复;拒绝重复;
主机声明可以根据 DHCP 客户端标识符选项或客户端的网络硬件类型和 MAC 地址匹配客户端消息。如果使用 MAC 地址,主机声明将匹配具有该 MAC 地址的任何客户端 - 即使是具有不同客户端标识符的客户端。这种情况通常不会发生,但当一台计算机上安装了多个操作系统时,例如 Microsoft Windows 和 NetBSD 或 Linux,这种情况是可能的。
重复标记会告知 DHCP 服务器,如果收到来自客户端的请求,该请求与主机声明的 MAC 地址相匹配,则服务器应丢弃与该 MAC 地址相匹配的任何其他租约,即使 UID 不同。这违反了 DHCP 协议,但可以防止客户端标识符定期更改的客户端同时持有多个租约。默认情况下,允许重复。
PS:这只是我通过阅读理解的,我个人从来没有遇到过这样的情况。