在Debian Jessie上使用isc-dhcp-server ,我想根据部分主机名来阻止DHCP请求 – 特别是,如果主机名包含“iPhone | android-”某处的RegExstring。 我目前的解决scheme是等到他们有租约,并监视这些设备,并手动添加到黑名单文件的MAC地址。
这个黑名单方法变得相当大(近256条),而且越来越难以维护。
我明白如何检查主机名的开始以确定类,但是如何从主机名的任何部分检查以确定将哪个类分配给它?
这听起来像你是在dhcp-client-identifier字段,这可能是也可能不是你所说的主机名。 根据dhcp-eval(5) ,可能有一个正则expression式选项。 如果是这样,
class "iBan" { match if option dhcp-client-identifier ~= "iPhone"; } class "bandroid" { match if option dhcp-client-identifier ~= "andriod-"; }
然后在其他地方deny这些类的成员在适当的pool声明。 (或者使用更复杂的正则expression式在一个类中进行。)