在 Debian Jessie 上使用时isc-dhcp-server
,我想根据主机名的部分内容阻止 DHCP 请求 - 具体来说,如果主机名在某处包含 RegEx 字符串“iPhone|android-”。我当前的解决方案是等到它们有租约,然后监视这些设备,并手动将 MAC 地址添加到黑名单文件中。
这个黑名单方法变得相当大(几乎有 256 个条目),并且越来越难以维护。
我知道如何检查开始主机名来确定类别,但我如何检查任何主机名的一部分来确定为其分配哪个类?
答案1
听起来你正在寻找这个dhcp-client-identifier
字段,它可能是也可能不是你所说的主机名。根据dhcp-eval(5)
,可能有正则表达式选项可用。如果是这样,
class "iBan" {
match if option dhcp-client-identifier ~= "iPhone";
}
class "bandroid" {
match if option dhcp-client-identifier ~= "andriod-";
}
然后deny
在适当的pool
语句下的其他位置使用这些类的成员。(或者使用更复杂的正则表达式在一个类中执行此操作。)