Jump to content
Калькуляторы

DHCP server with SQL support on Perl DHCP сервер с базой SQL на Perl, с опцией 82, маршрутами и прочим

А FreeRadius dhcp научился в броадкаст? Он же тоже только через релей умел.

Отнюдь.. Он давно уж умел. Только были какие то нарекания о сырости, и не полноценности решения. Но это было давно оч. Сам такой метод не использовал.

Alex/AT GrandPr1de

Кто пользовался FreeRadius в роли dhcp? Поделитесь впечатлениями, реализацией.

Share this post


Link to post
Share on other sites
если не ошибаюсь, версия данного DHCP сервера, по прежнему работает через релей, нет ли в планах у автора доработки с возможностью работы без релея. Или я что то упустил?

Именно.

Нет, в планах нет.

Если что и будет в планах такой же только с перламутровым IPv6.

Но мне нынче нет времени и мотивации это делать, фидбэка от вас (провайдеров) не дождёшься пока сам к вам не устроишься.

 

Напомню, изначально оно писалось для провайдера, там этих релеев ну просто завались с коммутаторов, а заодно они нужную опцию 82 добавляют.

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

Да, такая конструкция выглядит немного громоздко когда это офисный роутер в сетке на 2-50 компов, но зато и кода сильно меньше и он легче понимается: вот тут пакет пришёл из этого сокета, мы его прожевали, посовещались вон там с базой и вот тут отправим ответ. Никакой магии.

 

 

А FreeRadius dhcp научился в броадкаст? Он же тоже только через релей умел.

Кажется он на фре его не умел.

Но это по моим данным года 2011 :)

 

 

Отнюдь.. Он давно уж умел. Только были какие то нарекания о сырости, и не полноценности решения. Но это было давно оч. Сам такой метод не использовал. Alex/AT GrandPr1de Кто пользовался FreeRadius в роли dhcp? Поделитесь впечатлениями, реализацией.

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

Я же начинал это всё именно с фрирадиуса, и у меня был в общем рабочий конфиг который делал тоже самое, потом я посмотрел на него и выкинул лишнее - фрирадиус.

Share this post


Link to post
Share on other sites

Если что и будет в планах такой же только с перламутровым IPv6.

Вот это совсем не плохо было бы.

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

Вот и я о том же, когда говорил о нареканиях и сырости решения. Но наивно пологал, что времени от первого релиза прошло достаточно, чтоб избавиться от perl-овых костылей. Хатя... Как я понял, разрабочики реализовали DHCP там по стольку, по скольку, в классическом варианте, дабы показать возможность работы этого протокола совместно с RADIUS, и реализовали возможность отдавать опции атрибутами. Большего никто и не обещал. Как где то слышал "FreeRADIUS - это фреймворк для протокола RADIUS." (с) Отсюда и костыли, для нужной логики работы. Да и провайдеру мало такая реализация подойдёт в том виде, в котором оно реализовано там, особенно, когда нужно ещё из пакета получить нужные опции, кроме 82й (на сколько я помню это было возможно там), как например номер vlan-а опцией. Для этих целей accel вполне, как по мне.

Share this post


Link to post
Share on other sites

Но мне нынче нет времени и мотивации это делать, фидбэка от вас (провайдеров) не дождёшься пока сам к вам не устроишься.

Ну какой фидбек, если оно из серии: сконфигурил БД, перепилил логику выдачи адресов под себя, и оно работает годами безперебойно?

 

ПЫСЫ. Реквестирую ипв6, донат опять же за свой счёт, начальство стало ещё более жадным (((

Share this post


Link to post
Share on other sites
А FreeRadius dhcp научился в броадкаст? Он же тоже только через релей умел.

Мммм... может очень давно не умел. Я на нём на броадкаст респондил ещё 3 с лишним года назад :)

 

Насчёт поделиться опытом - сейчас покопаюсь, может найду старые скрипты и конфиги - в связи со сменой места деятельности стали не актуальны и свалены в архив.

С тех пор FR, правда, сильно доработали - возможно, можно сделать гораздо проще.

 

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

Share this post


Link to post
Share on other sites

Вот, собрал то, что работало как раз под броадкаст (там и релеи были, но отличия только в части конфига "сайта" FR).

Собственно разбором и форматированием протокола занимается FreeRADIUS, PHP'шник же реализует исключительно логику выдачи/регистрации адресов и параметров.

Для меня основным подвигом в сторону FR+PHP стало то, что благодаря FR не нужно самостоятельно реализовывать собственно DHCP, только логику отдачи адресов.

Возможно сейчас и логику можно на унланге в FR реализовать или на хранимках в (whatever)SQL, не знаю, давно не требовалось.

 

Нужно учесть, что это всё конкретное старьё, работало на FR 2.2.0, сейчас могут быть отличия. Конфиг FR очевиден, схема БД должна быть очевидна, пример заполнения тоже.

Если что-то не совсем очевидно или нужно понять, как написать своё - смотрите собственно в PHP'шник (который как раз логика выдачи адресов/параметров в связке с БД).

 

Что по части разбора FR протокола и сбора его обратно из вывода скрипта - никаких особых проблем не возникало, всякие октетстринги типа opt82 в скрипт уходят в hex-виде, кастомные атрибуты вполне себе добавляются через словарь.

 

fr-dhcp-example.zip

Share this post


Link to post
Share on other sites

Благодарю, обязательно погляжу как там сделано.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this