网络中有 DHCP 服务器(FreeBSD 7.2 上的 isc-dhcpd-server-3.0)比通过选项 82 为每个用户提供每个交换机端口一个 IP
当用户断开他的一台计算机并连接另一台计算机(即具有不同 MAC 地址的笔记本电脑)然后 DHCPD 记录“...网络 net1:没有免费租约”时,就会出现问题,因为租约文件中有记录表明该 IP 已经是由另一个 MAC 拥有。只有在默认租用时间(即 IIRC 最少 10 分钟,3 分钟后他通常会致电支持)或删除 dhcpd.leases 文件并重新启动 dhcpd 后,第二台计算机才会拥有他的 IP。
有没有办法完全关闭租约,因为我们在 switch-port-ip 之间有严格的绑定?
在 $former_employer,我修改了 OpenBSD dhcpd 以了解选项 82 并直接在其上进行地址分配。作为一个政策问题,“如果你进入连接 X,你有分配给 X 的地址,如果你使用交换机连接多台计算机,那是你自己的问题”,然后根据它直接分配。
如果您开始认真地处理 Option 82 分配,那么这样做可能是值得的。不是太难,但也不是微不足道的。
我唯一能想到的就是将租赁时间设置得非常低。您尝试做的事情本质上与 DHCP 打算做的事情完全相反,所以不要指望有任何简单而轻松的答案可以真正起作用。
一种选择是鼓励您的用户在断开连接之前释放 DHCP 租约。我意识到这是一种解决方法,而不是解决方案,并且可能需要一些用户培训才能生效!
在 Windows 上,您可以使用命令“ipconfig /release”——尽管这需要提升权限,所以像 CPAU 这样的工具可能会很有用。
在 FreeBSD 或 Linux 下,“dhclient -r”(必须运行 ISC dhclient)是发布命令。如果您使用的是 dhcpcd,“dhcpcd -k”应该发送释放数据包。不过,在运行 NetworkManager 时,我还没有让它工作。同样,这些命令是特权操作。
找到的解决方案:
不是微不足道的,但也不是不可能的。