Назад | Перейти на главную страницу

«Сопоставить оборудование» в dhcpd.conf не работает

Я пытался получить MAC-адреса с определенным OUI в определенный пул адресов. Мне вообще не удалось заставить его работать. Вот фрагмент моего файла dhcpd.conf и того, как он применяется.

class "testphones" {
        match hardware;
}
subclass "testphones" 1:00:07:3b:cb:c9:cf; 

class "avaya-9630" {
   match if substring(hardware,1,3) = "00:07:3b"; 
}

subnet 172.18.16.0 netmask 255.255.248.000 {
    option subnet-mask 255.255.248.000;
    option broadcast-address 172.18.23.255;
    option routers  172.18.16.1;
    option avaya-242 "OPTIONS"

    pool {
        range  172.18.18.1  172.18.23.254;
        deny members of "testphones";
        deny members of "avaya-9630";
    }

}

subnet 10.X.128.0 netmask 255.255.248.000 {
    option subnet-mask 255.255.248.000;
    option broadcast-address 10.X.135.255;
    option routers  10.X.128.5;
    option avaya-242 "OPTIONS";
    pool {
            range  10.X.129.1  10.X.134.255;
            allow members of "testphones";
            allow members of "avaya-9630";
    }
}

У меня нет MAC-адресов, соответствующих классу avaya-9630. Все они получают IP-адреса из первой (172.18.16.0/21) подсети. Однако "тестовый телефон" работает. Уходит в подсеть 10.X.

Почему работает класс "testphone", а класс "avaya-9630" - нет?

Одна вещь, которая может вызвать проблему, - это то, что я использую мелкую старую версию ISC DHCP (3.0.1). Я не знаю, отличается ли синтаксис от этой старой версии. Страницы руководства, кажется, указывают на то, что я все делаю правильно.

Я пробовал разные варианты «спички». Я тестировал следующее:

match if substring(hardware,1,3) = "1:00:07:3b";
match if substring(hardware,0,3) = "1:00:07:3b";
match if substring(hardware,1,4) = "1:00:07:3b";

Ни один не работал.

Ваши мысли ценятся.

Работает без кавычек. Например, в этом случае:

match if substring(hardware,1,3) = 00:07:3b;

Таким образом, это работает в моей производственной среде.