![isc dhcp 类具有更多匹配](https://linux22.com/image/702965/isc%20dhcp%20%E7%B1%BB%E5%85%B7%E6%9C%89%E6%9B%B4%E5%A4%9A%E5%8C%B9%E9%85%8D.png)
有没有办法用 OR 来定义更多匹配?
我想创建一个带有 mac 地址检查的类,例如
class "fixVms" {
match if substring (hardware, 1, 4) = 00:15:5d:aa;
}
但我想添加另外一台 Mac,例如
subclass "fixVms" 1:00:15:5d:bb:00:00;
我尝试添加
match pick-first-value (option dhcp-client-identifier, hardware);
到类主体,但它不起作用。 这两个东西分开确实有效。
答案1
我自己还没有能够测试它,并且 DHCPD.conf 手册页也不是很好,但您可以尝试以下命令:
match if ( substring(hardware,1,3) = 00:01:e6 ) or
( substring(hardware,1,3) = 00:60:b0 ) or
( substring(hardware,1,3) = 00:10:83 );
这来自以下邮件列表消息
答案2
在类声明中,“match if”和“match”语句将作为 AND (交集)连接起来,因此类可以重写为:
class "fixVms" {
match if substring(hardware, 1, 4) = 00:15:5d:aa or substring(hardware, 1, 6) = 00:15:5d:bb:00:00;
}
如果需要 MAC 前缀 00:15:5d:aa 和 00:15:5d:bb 的静态 MAC 列表:
class "fixVms" {
match if substring(hardware, 1, 4) = 00:15:5d:aa or substring(hardware, 1, 4) = 00:15:5d:bb;
match hardware;
}
subclass "fixVms" 1:00:15:5d:aa:00:00;
subclass "fixVms" 1:00:15:5d:aa:01:01;
subclass "fixVms" 1:00:15:5d:bb:00:00;
subclass "fixVms" 1:00:15:5d:bb:0a:0a;
. . .
在这种情况下,如果 mac 与前缀匹配并且使用此 mac 声明子类,则客户端属于该类。