У нас есть большое количество клиентов, которые подключаются к нашей машине DHCP. Мы хотим назначить некоторые из них другому IP-блоку, который маршрутизируется с более низким приоритетом. При каждом продлении аренды DHCP мы хотели бы проверить базу данных и решить, на какой IP-блок мы бы хотели назначить клиента.
Есть ли способ заставить DHCP-сервер выполнять сценарий, просматривать базу данных или выполнять какой-либо динамический код при принятии решения, какой адрес назначать в каком пуле? Каждый клиент уникально идентифицируется опцией 82, также называемой «Опция информации агента ретрансляции DHCP».
Ответы:
В идеале вы должны модифицировать dhcpd для поддержки назначения адресов на основе Option82, эквивалентного «аппаратным» строкам в хост-объектах. Я сделал это с OpenBSD dhcpd, когда работал с провайдером, который имеет более простую внутреннюю структуру, чем isc-dhcpd.
Если вы не можете этого сделать, посмотрите на omapi (3) и omshell (1); вы бы использовали OMAPI для динамического создания объектов "class" и "pool", чтобы реализовать предложение Zypher. Я только что проверил,
dhcpd.h
иclass
структура имеетOMAPI_OBJECT_PREAMBLE
, так что это должно быть возможно. Помните, что документация по OMAPI может быть немного ... скудной.источник
Так что я не сделал этого с опцией 82, но лучше всего было бы использовать классификацию в isc dhcpd.
Что бы вы сделали, это настроить класс, как:
Тогда в вашем заявлении пула:
Ссылка: dhcpd.conf
Это должно, по крайней мере, привести вас на правильный путь, у меня нет игрового сервера, чтобы проверить его, но я сделал нечто подобное с другими вариантами.
источник
Может быть, вы можете начать отсюда:
http://blog.nominet.org.uk/tech/2005/12/21/using-omapi-object-management-application-programming-interface/
Никогда не использовал, но с небольшим количеством сценариев я думаю, что это могло бы работать.
РЕДАКТИРОВАТЬ
man omshell (1) привел бы еще несколько примеров
источник
Один из способов сделать это - назначить этих клиентов отдельной VLAN, тогда DHCP-адрес, который эти клиенты получат, будет автоматически находиться в другом пуле.
источник