选项82和dhcpd。 第二台电脑“没有免费租赁”

networking中有一台DHCP服务器(FreeBSD 7.2上的isc-dhcpd-server-3.0),通过Option 82为每个用户提供一个IP

当用户断开他的一台计算机并且连接另一台计算机(即具有不同MAC地址的笔记本)时,则出现问题,则DHCPD放入日志“… network net1:no free leases”,因为在租约文件中存在这个IP已经存在的logging由另一个MAC所拥有。 第二台计算机只有在默认租用时间(即IIRC最小10分钟,3分钟后他通常呼叫支持)之后或者在删除dhcpd.leases文件并重新启动dhcpd之后才会有他的IP。

有什么方法可以closures租约,因为我们有严格的交换机端口IP绑定?

在$ former_employer,我修改了OpenBSD的dhcpd来理解Option 82,并直接进行地址分配。 作为一个政策问题,“如果你进入连接X,你的地址分配给X,如果你使用交换机连接多台计算机,这是你自己的问题”,然后就直接分配的基础上。

如果你开始认真考虑使用Option 82的话,这可能是值得的。 不是太难,但也不是微不足道的。

我唯一能想到的就是把租赁时间设定得极低。 你所要做的事情本质上与DHCP意图完全相反,所以不要指望实际上有任何简单和无痛的答案。

一种select是鼓励用户在断开连接之前释放DHCP租约。 我意识到这是一个解决方法,而不是一个解决scheme,可能需要一些用户培训才有效!

在Windows上,你可以使用命令“ipconfig / release” – 虽然这需要提升权限,所以像CPAU这样的工具可能是有用的。

在FreeBSD或Linux下,“dhclient -r”(必须运行ISC dhclient)是release命令。 如果你使用dhcpcd,“dhcpcd -k”应该发送释放数据包。 不过,我还没有在运行NetworkManager时得到这个工作。 同样,这些命令是特权操作。

解决scheme发现

  1. 安装程序切换到端口下生成snmp陷阱。
  2. 在陷阱服务器上捕获它们并调用删除旧租约的omshell脚本。

不是微不足道的,也不是不可能的。