Биллинговая система Nodeny

Главная категория => Общий раздел => Тема начата: Cell от 04 Августа 2012, 22:51:18



Название: Описываю баг (mpd+radius+mysql)
Отправлено: Cell от 04 Августа 2012, 22:51:18
Имеем 5 PPPoE серверов включенных в параллельную работу для балансировки нагрузки.
Ипы у юзеров серые, на саттелитах осуществляется NAT
Дальше поэма развивается следующим образом:
1) Юзер 1 рассказывает юзеру 2 свой логин и пароль
2) Юзер 1 коннектится и авторизуется
3) Юзер 2 коннектится на другой PPPoE сервер (рано или поздно ему повезет)  и тоже авторизуется
В результате имеем 2 рабочие сессии на 1 аккаунте.
Слегка подлечил это дело вот так:
Код:
DROP PROCEDURE IF EXISTS `radcheck`;
DELIMITER $$
CREATE PROCEDURE `radcheck` (IN login VARCHAR(64))
BEGIN
SELECT id,name,'Password' AS Attribute,AES_DECRYPT(passwd,'hardpass3') AS Value,'==' FROM users WHERE name=login AND auth='no';
END$$
DELIMITER;
но ИМХО не самое прямое решение.
Предлагайте варианты. Ну и в доку....


Название: Re: Описываю баг (mpd+radius+mysql)
Отправлено: 0xbad0c0d3 от 04 Августа 2012, 22:56:23
А чем это не прямое решение? Юзеру скажет - фак офф! И все...


Название: Re: Описываю баг (mpd+radius+mysql)
Отправлено: Cell от 04 Августа 2012, 22:57:27
А чем это не прямое решение? Юзеру скажет - фак офф! И все...
фак оф 691 а это не правильно!


Название: Re: Описываю баг (mpd+radius+mysql)
Отправлено: 0xbad0c0d3 от 04 Августа 2012, 23:02:57
Да, это действительно принципиально )) Ну тогда пробовать заставить радиус ответить другим сообщением. Но все равно...


Название: Re: Описываю баг (mpd+radius+mysql)
Отправлено: stix от 05 Августа 2012, 13:08:42
костыль в том, что если например оборвется сессия, то легальный юзер не сможет подключиться )


Название: Re: Описываю баг (mpd+radius+mysql)
Отправлено: Cell от 05 Августа 2012, 13:11:35
костыль в том, что если например оборвется сессия, то легальный юзер не сможет подключиться )
Какое-то непродолжительное время не сможет... это нормально, в утмовском радиусе такая же борода. Всеж лучше чем дырку оставлять, которую активно юзают.


Название: Re: Описываю баг (mpd+radius+mysql)
Отправлено: stix от 05 Августа 2012, 13:41:37
а может поставить условия сравнения мак адресов?
где-то на форуме я тут писал про выдергивание маков для радиуса


Название: Re: Описываю баг (mpd+radius+mysql)
Отправлено: Андрій от 05 Августа 2012, 15:49:29
Имеем 5 PPPoE серверов включенных в параллельную работу для балансировки нагрузки.
Ипы у юзеров серые, на саттелитах осуществляется NAT
Дальше поэма развивается следующим образом:
1) Юзер 1 рассказывает юзеру 2 свой логин и пароль
2) Юзер 1 коннектится и авторизуется
3) Юзер 2 коннектится на другой PPPoE сервер (рано или поздно ему повезет)  и тоже авторизуется
В результате имеем 2 рабочие сессии на 1 аккаунте.
Слегка подлечил это дело вот так:
Код:
DROP PROCEDURE IF EXISTS `radcheck`;
DELIMITER $$
CREATE PROCEDURE `radcheck` (IN login VARCHAR(64))
BEGIN
SELECT id,name,'Password' AS Attribute,AES_DECRYPT(passwd,'hardpass3') AS Value,'==' FROM users WHERE name=login AND auth='no';
END$$
DELIMITER;
но ИМХО не самое прямое решение.
Предлагайте варианты. Ну и в доку....

ця проблема вже була описана http://forum.nodeny.com.ua/index.php?topic=792.30


Название: Re: Описываю баг (mpd+radius+mysql)
Отправлено: Cell от 05 Августа 2012, 16:25:42
Точно ))) ну это где-то в процессе беседы на отвлеченные темы... поэтому видимо и не отложилось.


Название: Re: Описываю баг (mpd+radius+mysql)
Отправлено: Cell от 05 Августа 2012, 16:28:12
а может поставить условия сравнения мак адресов?
где-то на форуме я тут писал про выдергивание маков для радиуса
не подходит, т.к. имеются клиенты, использующие по разным причинам VPN а там caller_id - это ип хоста насколько я помню это дело.


Название: Re: Описываю баг (mpd+radius+mysql)
Отправлено: stix от 05 Августа 2012, 16:38:10
ага, просто ты написал

"Имеем 5 PPPoE серверов включенных в параллельную работу для балансировки нагрузки."


Название: Re: Описываю баг (mpd+radius+mysql)
Отправлено: ser970 от 05 Августа 2012, 18:24:28
А чем это не прямое решение? Юзеру скажет - фак офф! И все...
фак оф 691 а это не правильно!


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


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


Название: Re: Описываю баг (mpd+radius+mysql)
Отправлено: Cell от 05 Августа 2012, 21:37:18
Интересная идея, нужно будет подумать )


Название: Re: Описываю баг (mpd+radius+mysql)
Отправлено: Efendy от 05 Августа 2012, 21:49:37
я точно не знаю, но во Фрегате, кажется, pppoe сервера уже не НАТят, а этим занимается центральная цисковская железяка, т.е. все решается на уровне маршрутизации: клиент подконнектился - на него прописался маршрут. Конечно, это труднее в настройке, зато профит в том, что можно раскидать сервера по районам, а может у них там другой профит.. короче как вариант?


Название: Re: Описываю баг (mpd+radius+mysql)
Отправлено: stix от 05 Августа 2012, 21:58:44
с отдельным нат сервером напорядок лучше

но возникает проблема с маршрутизацией к нат серверу от роутеров агрегации.
пришлось на bgp с роутеров строить пару нейборов


Название: Re: Описываю баг (mpd+radius+mysql)
Отправлено: goletsa от 06 Августа 2012, 02:35:19
Я OSPF в ядре для этого поднимал.
Правда  не проверял что получается когда ип дважды в таблице вешается.
Надо будет проверить.


Название: Re: Описываю баг (mpd+radius+mysql)
Отправлено: VitalVas от 06 Августа 2012, 03:23:11
Я OSPF в ядре для этого поднимал.
Правда  не проверял что получается когда ип дважды в таблице вешается.
Надо будет проверить.

тогда сработает метод метрик
и работать будет тот, у которого приоритет выше....


Название: Re: Описываю баг (mpd+radius+mysql)
Отправлено: stix от 06 Августа 2012, 06:41:51
а OSPF у меня не подходит, неизвестно из какого роутера прийдет пакет.
ну то оффтоп, роутеры симметричны, потому префикс-листами вручную приходится


Название: Re: Описываю баг (mpd+radius+mysql)
Отправлено: Cell от 06 Августа 2012, 09:23:37
я точно не знаю, но во Фрегате, кажется, pppoe сервера уже не НАТят, а этим занимается центральная цисковская железяка, т.е. все решается на уровне маршрутизации: клиент подконнектился - на него прописался маршрут. Конечно, это труднее в настройке, зато профит в том, что можно раскидать сервера по районам, а может у них там другой профит.. короче как вариант?
В одной из контор, где я работал, делали такое, а разруливали при помощи BGP