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

Есть ли совпадение по входящему интерфейсу в классах DHCPd?

(Обратите внимание, заголовок вопроса Есть ли способ классифицировать запросы DHCP на основе интерфейса, из которого они поступают? это то, что я хочу получить, но на самом деле он не задает этот вопрос для ситуации с ретранслятором, отличным от DHCP, и ответ здесь не помогает, поскольку я не могу полагаться на реле, чтобы установить для меня параметры).

У меня есть гипервизор (KVM) с isc-dhcpd на dom0, и мне нужно иметь возможность загружать клиентские виртуальные машины PXE. Это отлично работает для любого один интерфейс, но я не могу заставить его работать для нескольких интерфейсов - у меня есть следующий класс для PXE:

class "pxeclients" {
  match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
  filename "pxelinux.0";
  next-server 10.71.0.1;
}

Проблема в том, что мне нужно выбрать, какой интерфейс tftp я хочу использовать для next-server. Мне нужно, чтобы клиенты выбирали tftp-сервер в своей собственной подсети, иначе они не могут загрузиться (но в остальном они все выглядят одинаково, если я не могу найти какой-либо дискриминант совпадения). Есть ли способ создать класс, который соответствует как PXE, так и подсети, которую я собираюсь арендовать, или интерфейсу, через который пришел пакет?

Почему бы не указать tftp-сервер, который находится на расстоянии одного прыжка? Пока ваши клиенты получают соответствующий шлюз по умолчанию, это может быть самым простым способом.

Тем не менее, если вам необходимо поддерживать несколько интерфейсов -

Можно запустить несколько экземпляров dhcpd. У каждого будет своя собственная конфигурация, которая будет включать записи для конкретной привязки указанного экземпляра к определенному интерфейсу. Чтобы упростить администрирование, в каждый файл конфигурации можно включить дополнительный файл конфигурации, который может содержать другие общие параметры. Это, вероятно, было бы хорошо для относительно небольшого количества интерфейсов (т.е. <= 10-20), но если ему нужно масштабировать намного больше, я бы посмотрел на подходящую инфраструктуру L3 с вспомогательными адресами / реле.