根据主机名中的字符串阻止 DHCP 客户端

根据主机名中的字符串阻止 DHCP 客户端

在 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语句下的其他位置使用这些类的成员。(或者使用更复杂的正则表达式在一个类中执行此操作。)

相关内容