Перейти к содержимому
Калькуляторы

переменные в isc-dhcpd

Собственно понадобилось запускать отдельный скрипт, когда клиент получает\продлевает аренду ип. В логах сервера конечно пишутся все нужные мне значения, но хотелось бы узнать, можно ли получить некоторые переменные, а именно IP, MAC, iface (интерфейс с которого пришел запрос, именно на сервере, а не порт свича с опт82). Получать их требуется в момент выдачи IP и передавать в внешний скрипт.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Собственно понадобилось запускать отдельный скрипт, когда клиент получает\продлевает аренду ип. В логах сервера конечно пишутся все нужные мне значения, но хотелось бы узнать, можно ли получить некоторые переменные, а именно IP, MAC, iface (интерфейс с которого пришел запрос, именно на сервере, а не порт свича с опт82). Получать их требуется в момент выдачи IP и передавать в внешний скрипт.

leased-address, hardware, option dhcp-server-identifier

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

dhcpd.leases отлично парсится.

 

подозреваю что можно сделать это и штатными средствами isc-dhcpd без костылей с парсером

 

leased-address, hardware, option dhcp-server-identifier

спасибо, получается. ип и мак корректно передается.

извините за глупый вопрос, но как правильно разобрать option dhcp-server-identifier чтобы получить название интерфейса к примеру vlan300 vlan400 etc ?

PS гугл говорит, - "The value of this option is the IP address of the server."

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

извините за глупый вопрос, но как правильно разобрать option dhcp-server-identifier чтобы получить название интерфейса к примеру vlan300 vlan400 etc ?

PS гугл говорит, - "The value of this option is the IP address of the server."

Подозреваю, что без своей заплатки никак. Передавайте в скрипт адрес и определяйте названия интерфейса уже там.

Хотя, номер *клиентского* влана можно найти в option agent.circuit-id; если они совпадают, можете использовать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Подозреваю, что без своей заплатки никак. Передавайте в скрипт адрес и определяйте названия интерфейса уже там.

Хотя, номер *клиентского* влана можно найти в option agent.circuit-id; если они совпадают, можете использовать.

 

если не ошибаюсь то agent.circuit-id добавляется с использованием опт82, которую я увы не использую.

клиентский влан конечно можно определять по арпу либо по последней записи в логе, но до последнего надеялся что раз в логи эта инфа пишется, знач и в конфиге его можно как то забрать.

спасибо за помощь, пожалуй все таки без костылей не обойтись )

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В dhcp есть штатный вызов внешних скриптов по событиям https://lists.isc.org/pipermail/dhcp-users/2008-September/007167.html https://lists.isc.org/pipermail/dhcp-users/2011-February/013119.html

Только тестируйте производительность, при неправильной архитектуре может замедлятся выдача айпи адресов и некоторые клиенты будут отваливаться по таймауту.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

именно этой конструкцией я и воспользовался, а запуск внешнего скрипта чтобы добавлять роуты для supervlan

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.