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

Идентифицировать PPPoE-абонента PPPoE-снупинг?

Есть сеть, в которой абоненты получают доступ по PPPoE.

Есть веб-сайты, на которых я бы хотел автоматически авторизовывать абонента (веб-сайты внутренние, например личный кабинет).

Не подскажите, как это можно сделать?

Навскидку это можно сделать, проверив список активных сессий (с BRAS или с биллинга) и найдя в нем IP-адрес посетителя. Но дергать на каждый запрос БД биллинга или BRAS по SNMP я бы не хотел.

Есть способ проще?

В голову также приходит способ завести второй радиус-сервер, который будет использоваться исключительно для отслеживания сессий, но это как-то сложновато.

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


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

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

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


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

Если брас cisco, то с помощью PBHK можно получить инфу о сессии прямо с браса через CoA.

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


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

делаете онлайн-репликацию таблицы сессий бд радиуса на другой сервер

Тут минусом будет не столько то, что нужно БД дергать, сколько то, что информация не будет оперативной.

Даже если синхронизацию делать раз в 5 минут, за эти 5 минут один пользователь может отключиться, а на его IP-адрес подключится другой.

Не говоря уж о том, что иногда сессия подвисает, terminate не приходит и из БД запись удалится только по таймауту.

 

Если брас cisco, то с помощью PBHK можно получить инфу о сессии прямо с браса через CoA.

У меня SE100. Что такое РВНК? Возможно на Эриксоне есть аналог?

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


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

У вас, как мне кажется, только один вариант - ходить за информацией о логине с указанным IP на сам БРАС(нужно курить CoA для SE100). Но это не избавляет вас от необходимости иметь где-то кэш базы с информацией о том какой логин в какому лицевому счету привязан.

И если рассуждать далеее, оказывается, что все равно придется кого-то дергать, либо БД, либо БРАС, что тоже достаточно "дорого", если дергать его при каждом обращении к странице, на которой требуется авторизация. Так что, кэш сессий все равно просится.

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


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

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

Но я такого не делал и это мне кажется сложноватым.

Поэтому спрашиваю, может быть уже есть проверенное решение.

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


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

делаете онлайн-репликацию таблицы сессий бд радиуса на другой сервер

Тут минусом будет не столько то, что нужно БД дергать, сколько то, что информация не будет оперативной.

Даже если синхронизацию делать раз в 5 минут, за эти 5 минут один пользователь может отключиться, а на его IP-адрес подключится другой.

Не говоря уж о том, что иногда сессия подвисает, terminate не приходит и из БД запись удалится только по таймауту.

 

 

почитайте что такое ОНЛАЙН репликация

 

по поводу повисших сессий - вообще пофиг, всё равно этот ip никто другой не займёт(а если ip раздаёт брас, а не радиус, то инфа в сессиях бд обновиться по acct start)

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


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

почитайте что такое ОНЛАЙН репликация

Где можно прочитать про онайлн-репликацию Оракла?

Желательно за вменяемую цену.

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


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

блин ну вы флудеры:

на пхп элементарно из $ip = $_SERVER['REMOTE_ADDR'] получаем ипешник пришедшего и 1 единственным запросом из БД биллинга выдираем что за абон, я так баланс абона на определённой страничке сайта показываю, на которой если зайти из сети провайдера он и отображается. писанины ровно на пару чашек кофе/сигарет...

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


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

на пхп элементарно из $ip = $_SERVER['REMOTE_ADDR'] получаем ипешник пришедшего и 1 единственным запросом из БД биллинга выдираем что за абон

То есть у абонента в личном кабинете есть возможность подключиться в БД биллинга?

Прелестно.

А если абонент переподключился и этот IP назначен уже другому абоненту?

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


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

почитайте что такое ОНЛАЙН репликация

Где можно прочитать про онайлн-репликацию Оракла?

Желательно за вменяемую цену.

 

Так как вам вся база ни к чему, то можно обойтись триггером к необходимой таблице, а дальше уже вызывать процедуру, которая будет писать в БД на другой машине. С Oracle не работал, так что, это всего лишь мои фантазии на тему. :)

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


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

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

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


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

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

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

Как сделать репликацию в реальном времени без GoldenGate — я не представляю. Может быть srg555 расскажет.

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


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

да и вообще если СУБД нормальная, а оракл много что умеет, то делается вьюха и из неё элементарно по айпишнику сразу хоть как звать хоть баланс хоть что угодно вытащить можно, даже триггеры не понадобятся

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


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

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

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

Как сделать репликацию в реальном времени без GoldenGate — я не представляю. Может быть srg555 расскажет.

 

Мы где-то друг друга не понимаем. О какой периодичности идет речь, если имеет место быть триггер, который выставляется на событие?

Пришел от БРАСа start - событие, update - событие, stop - событие, ну а дальше вам думать что с ними делать. Но это все опять же, если вдруг между Radius и БД нет кэша.

А подвисшие на БРАСе сессии не страшны, выше был комент по этому поводу.

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


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

нужна прослойка между бд где хранить соотвествия ип-баланс ) и раз в 30 минут рефрешить инфу.

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


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

Такие костыли есть потенциальная security-hole. Именно по этому серьезные проекты всегда спрашивают свою авторизацию.

Тут реальный риск потерять контроль над персональными данными. Не делайте этого.

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


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

Именно по этому серьезные проекты всегда спрашивают свою авторизацию.

А почему тогда серьезные проекты не боятся делать сквозную авторизацию (OpenID и др.)?

Я не планирую предоставлять какую-то особо секретную информацию.

Это будет сводка (тариф, баланс) и связь с тех.поддержкой.

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


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

А что мешает собссно сделать view, к которому дать доступ другому пользователю (ну чтобы не пускать сйты в БД биллинга напрямую)?

Или, если хочется - вариации на тему *RPC делать. С кешированием результата в memcached чтобы БД меньше напрягать (если она у вас нагружена).

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


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

Join the conversation

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

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

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

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

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

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

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