isc dhcp 类具有更多匹配

isc dhcp 类具有更多匹配

有没有办法用 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 );

这来自以下邮件列表消息

http://marc.info/?l=dhcp-server&m=102521117221954&w=2

答案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 声明子类,则客户端属于该类。

相关内容