blizz Posted June 19, 2013 Posted June 19, 2013 Собственно понадобилось запускать отдельный скрипт, когда клиент получает\продлевает аренду ип. В логах сервера конечно пишутся все нужные мне значения, но хотелось бы узнать, можно ли получить некоторые переменные, а именно IP, MAC, iface (интерфейс с которого пришел запрос, именно на сервере, а не порт свича с опт82). Получать их требуется в момент выдачи IP и передавать в внешний скрипт. Вставить ник Quote
ixi Posted June 19, 2013 Posted June 19, 2013 Собственно понадобилось запускать отдельный скрипт, когда клиент получает\продлевает аренду ип. В логах сервера конечно пишутся все нужные мне значения, но хотелось бы узнать, можно ли получить некоторые переменные, а именно IP, MAC, iface (интерфейс с которого пришел запрос, именно на сервере, а не порт свича с опт82). Получать их требуется в момент выдачи IP и передавать в внешний скрипт. leased-address, hardware, option dhcp-server-identifier Вставить ник Quote
blizz Posted June 19, 2013 Author Posted June 19, 2013 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." Вставить ник Quote
ixi Posted June 19, 2013 Posted June 19, 2013 извините за глупый вопрос, но как правильно разобрать option dhcp-server-identifier чтобы получить название интерфейса к примеру vlan300 vlan400 etc ?PS гугл говорит, - "The value of this option is the IP address of the server." Подозреваю, что без своей заплатки никак. Передавайте в скрипт адрес и определяйте названия интерфейса уже там. Хотя, номер *клиентского* влана можно найти в option agent.circuit-id; если они совпадают, можете использовать. Вставить ник Quote
blizz Posted June 19, 2013 Author Posted June 19, 2013 Подозреваю, что без своей заплатки никак. Передавайте в скрипт адрес и определяйте названия интерфейса уже там. Хотя, номер *клиентского* влана можно найти в option agent.circuit-id; если они совпадают, можете использовать. если не ошибаюсь то agent.circuit-id добавляется с использованием опт82, которую я увы не использую. клиентский влан конечно можно определять по арпу либо по последней записи в логе, но до последнего надеялся что раз в логи эта инфа пишется, знач и в конфиге его можно как то забрать. спасибо за помощь, пожалуй все таки без костылей не обойтись ) Вставить ник Quote
anix Posted June 20, 2013 Posted June 20, 2013 В dhcp есть штатный вызов внешних скриптов по событиям https://lists.isc.org/pipermail/dhcp-users/2008-September/007167.html https://lists.isc.org/pipermail/dhcp-users/2011-February/013119.html Только тестируйте производительность, при неправильной архитектуре может замедлятся выдача айпи адресов и некоторые клиенты будут отваливаться по таймауту. Вставить ник Quote
blizz Posted June 20, 2013 Author Posted June 20, 2013 именно этой конструкцией я и воспользовался, а запуск внешнего скрипта чтобы добавлять роуты для supervlan Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.