соответствие класса dhcpd по имени хоста или MAC-адресу

Мы запускаем DHCPD 4.1.1-P1 на сервере RHEL 6. В настоящее время у нас есть 1 класс, определенный для целей отказа. Теперь у нас есть потребность в сопоставлении классов, чтобы разрешить все устройства, соответствующие переменной, и запретить все остальное. Наша текущая конфигурация класса выглядит следующим образом, и мы сопоставляем MAC-адрес:

## Define denied

class "denied" {
match if substring (hardware,1,3) = 00:54:36;
}

И в объявлении пула мы запрещаем класс:

 pool {
            deny members of "denied";
            range 192.168.100.100 192.168.100.200;
    }

Наша новая конфигурация класса будет следующей:

## Define denied

class "denied" {
match if substring (hardware,1,3) = 00:54:36;
}

class "allowed" {
match if substring (hardware,1,3) = 00:42:12;
)

С объявлением пула:

 pool {
            allow members of "allowed";
            deny members of "denied";
            range 192.168.100.100 192.168.100.200;
    }

Мой первый вопрос: нужен ли нам класс deny после того, как мы добавим класс allow? Насколько я понимаю, allow неявно отрицает все остальное. Кроме того, как мы могли бы сопоставить класс с нашим разрешенным классом по имени хоста, а не по MAC-адресу? В своем исследовании мне не удалось выяснить, как на самом деле будут выглядеть утверждения на примерах, которые я видел. В /var/lib/dhcp/dhcpd.leases у нас есть 2 строки возможных процентов для каждой записанной аренды.

hardware ethernet xx:xx:xx:xx:xx:xx;
client-hostname "hostname";

Я предполагаю, что если бы мы хотели сопоставить класс по имени хоста, это выглядело бы примерно так:

class "allowed" {
match if substring (client-hostname) = "hostname";
}

А объявление пула выглядело бы так:

pool {
            allow members of "allowed";
            deny members of "denied";
            range 192.168.100.100 192.168.100.200;
    }

Итак, резюмируя мои 2 вопроса еще раз.

1) неявно ли запрещает оператор «разрешающий член» в объявлении пула все остальное, и мне больше не нужен мой оператор deny?

2) Каков правильный синтаксис сопоставления классов для сопоставления по имени хоста?

0
задан 24 May 2016 в 17:03
1 ответ

На первый вопрос:

неявно ли запрещает оператор "allow member" все остальное?

Ответ на этот вопрос можно найти на странице руководства dhcpd.conf:

  • If у пула есть список разрешений, тогда только те клиенты, которые соответствуют определенным записям в списке разрешений, будут иметь право на получение адресов из пула.
  • Если у пула есть список запретов, то допускаются только те клиенты, которые не соответствуют ни одной записи в списке запретов.
  • Если для пула существуют списки разрешений и запретов, то доступ будет разрешен только клиентам, которые соответствуют списку разрешений и не соответствуют списку запретов.

Для второго вопроса совпадение по имени хоста

Вы имеете в виду имя хоста запроса или имя хоста, настроенное на вашем DHCP-сервере?

Чтобы отреагировать на отправленное имя хоста, оно должно быть просто

match if (option host-name = “foobar”);

или для частичного:

match if substring(option host-name,0,2) = “foo”;

Соответствие в параметре конфигурации не соответствует ' похоже, не работает

1
ответ дан 4 December 2019 в 16:36

Теги

Похожие вопросы