В общем додумался до такого вот консенсуса
Абоненты ходят через микротик, как по РРТР так и на простой НАТ.
Микротиком рулит НоДени.
Работает авторизаторЛ2
Работает авторизатор через веб
Работает просто постоянный доступ
(это для тех кто без РРТР)
Ну и собственно РРТР то там авторизатор не нужен.
TODO: (точнее почти получается)
Крутится немного допиленный напильником стыренный отсюда http :/ /netpatch. ru/db2dhcp .html (без пробелов) DHCP сервер, данные берет из базы НоДени. Соответственно база немого подправленна в соосветствии с примером на указаном сайте и в конфиг засунут вложенный запрос. Сам ДХЦП умеет выводить в файл либо тех юзеров что получили от него адрес, либо (мне больше нравится, привычка делать семафоры, создавать в указанной директории пустые файлы с названиями соответствующими тем кто получил от него адрес опять же).
Что не могу сделать: не могу понять как написать простейшую функцию типа auth($ip,$state) где $ip - айпишник абонента, а $state - соответственно включить его или выключить.
Что получится: в итоге получаем фичу, не затрагивающую (не затраХивающую
)))) основной функционал биллинга, но позволяющую работать абонентам полностью без авторизаторов в случае прозрачной по L2 сети.
(Да, время лизинга дхцп можно сделать пару минут, и тогда если абонент "внезапно умер" тоесть не перезапрашивает свой ИП то биллинг его отключает от инета.)
Кроме того, через АПИ микротика можно подправлять АРП таблицу (ИМХО для параноиков, но если прет то почему не прикрутить, ее вообще раз в полчаса обновлять, если конечно провайдер не жадный:-))))
Что осталось: дописать демона следящего за состоянием лизингов по дхцп, и соответственно вкл-откл доступ абонента в сеть.
Что уже работает: на данный момент отлично работает сам дхцп, работает локальный днс с кешированием инет адресов, ну и собсно НоДени.
Все данные типа там маки, имена хостов и ип вносятся в допфилдсы на самой НоДени.
ЗЫЖ Ребят, подскажите решение кому не трудно, а то я с перлом так себе, а с БД вообще никак, мне простейший запрос намалевать это просто ужасть какой-то %-(