Биллинговая система Nodeny
25 Ноября 2024, 07:02:58 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: 1 2 [3] 4 5 ... 9
  Печать  
Автор Тема: Модуль RADIUS Change of Authorization  (Прочитано 60112 раз)
Pa4ka
Старожил
****

Карма: 4
Offline Offline

Сообщений: 281

591884591
Просмотр профиля Email
« Ответ #30 : 14 Ноября 2016, 12:08:19 »

Добрый день, коллеги.

Просьба помочь советом.

Использую модуль таким образом:
Код:
$coa_disconnect = {
        type     => 'disconnect',
        template => 'Framed-IP-Address={{ip}}',
    };

С той стороны - Accel-ppp. Проблема же в том, что в момент автопродления услуги inet_unlim, длительностью 24 часа, абоненты жалуется что роутер не может получить адрес в течение нескольких минут. Поскольку такое проявляется у единиц (но у самых назойливых, как всегда), то возможно связано с некорректной работой роутера абона с "coa". В момент смены услуги баланс положительный. Поэтому возникла идея пропатчить noserver.pl, чтобы он не посылал при автопродлении команду "fw_user_off" если баланс остается положительным. Чтобы посылался дисконнект на аксель только в тех случая когда абонента действительно нужно отключить.
Насколько верен такой путь и кто как борется иначе с описанной проблемой?
Получаеться выдаеться гостевой IP абоненту или как?
Если я вас верно понял то у нас так - гостевые пулы используем только для не зарегистрированных юзеров, всё остальное ipset l4-redirect. Тогда при изменении чего либо у абонента(доступ/скорость) он попадает в ipset list только на мгновение и сразу удаляеться если доступ разрешен.
Записан
Pa4ka
Старожил
****

Карма: 4
Offline Offline

Сообщений: 281

591884591
Просмотр профиля Email
« Ответ #31 : 14 Ноября 2016, 12:11:18 »

Я до сегодня из самого noserver.pl делал что бы выдирались все пользователи изменял где было state='on'.)
Проблема была только если услуга замораживалась, сессию убивал coa_disconnect.
С ключами тоже норма)

А с какими радиус процедурами? Выложите вариант как у вас настроено. Спасибо.
Вы имели ввиду mysql процедурами?
Записан
dimonous
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 34


Просмотр профиля
« Ответ #32 : 15 Ноября 2016, 10:30:12 »

Добрый день, коллеги.

Просьба помочь советом.

Использую модуль таким образом:
Код:
$coa_disconnect = {
        type     => 'disconnect',
        template => 'Framed-IP-Address={{ip}}',
    };

С той стороны - Accel-ppp. Проблема же в том, что в момент автопродления услуги inet_unlim, длительностью 24 часа, абоненты жалуется что роутер не может получить адрес в течение нескольких минут. Поскольку такое проявляется у единиц (но у самых назойливых, как всегда), то возможно связано с некорректной работой роутера абона с "coa". В момент смены услуги баланс положительный. Поэтому возникла идея пропатчить noserver.pl, чтобы он не посылал при автопродлении команду "fw_user_off" если баланс остается положительным. Чтобы посылался дисконнект на аксель только в тех случая когда абонента действительно нужно отключить.
Насколько верен такой путь и кто как борется иначе с описанной проблемой?
Получаеться выдаеться гостевой IP абоненту или как?
Если я вас верно понял то у нас так - гостевые пулы используем только для не зарегистрированных юзеров, всё остальное ipset l4-redirect. Тогда при изменении чего либо у абонента(доступ/скорость) он попадает в ipset list только на мгновение и сразу удаляеться если доступ разрешен.

Нет. Гостевой выдается только когда обращается за адресом а там явно услуга "inet" не подключена/нет денег/отключен.

Проблема в том что услуга  выдается на 24 часа (тарифы с посуточным снятием) и по истечению времени   на accel  приходит пакет coa  и  рвет сессию.
В этот момент у  клиента обрывается сессия и  по истечению лизы (10минут)  клиент сам переполучает адрес.
Так вот, можно ли что бы пакет coa  приходил только тогда когда услуга заморожена или клиент заблокирован  ну или баланс стал отрицателен ?
L4 редирект не используем.
Проблема не в гостевом адресе, а в том что по истечению срока действия услуги рвется сессия даже если баланс положительный.

Я так понимаю, в noserver.pl :

sub proc_fw
...
        if( $old_fingerprint )
        {
            $new_fingerprint eq $old_fingerprint && next;
            debug("Данные uid $uid изменились - переподключаем");
            $M->fw_usr_off($uid);
        }

Записан
sever
Пользователь
**

Карма: 1
Offline Offline

Сообщений: 82


Просмотр профиля
« Ответ #33 : 25 Ноября 2016, 18:09:54 »

А если несколько НАС-ов
В конфигах как-то можно это указать в coa.cfg.pm??
$host = 'x.x.x.1:3799';
                    2
             
Или нужно только запускать несколько модулей СОА, каждый из которых будет обрабатывать свой собственный НАС?
« Последнее редактирование: 25 Ноября 2016, 18:47:14 от sever » Записан
sever
Пользователь
**

Карма: 1
Offline Offline

Сообщений: 82


Просмотр профиля
« Ответ #34 : 25 Ноября 2016, 18:47:38 »

А если несколько НАС-ов
В конфигах как-то можно это указать в coa.cfg.pm??
Код:
$host = 'x.x.x.1:3799';
$host = 'x.x.x.2:3799';
             
Или нужно только запускать несколько модулей СОА, каждый из которых будет обрабатывать свой собственный НАС?
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #35 : 25 Ноября 2016, 23:59:57 »

не вникая в суть, сразу говорю в таком коде:
Код:
переменная = значение;
переменная = значение;
принимается только последний вариант всегда
Записан
sever
Пользователь
**

Карма: 1
Offline Offline

Сообщений: 82


Просмотр профиля
« Ответ #36 : 28 Ноября 2016, 09:15:51 »

Это пример был.
Понятно что можно заморочиться с циклом ещё или в массив упаковать хосты.
Но если есть встроенный функционал... в общем возможности такой нет не пиляя код?
Было бы круто указать сразу все насы, если их несколько запустив при этом один экземпляр модуля coa.
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #37 : 28 Ноября 2016, 11:51:32 »

Попробуй запустить несколько копий с разными конфигами
Записан
fet4
Старожил
****

Карма: 2
Offline Offline

Сообщений: 326


Просмотр профиля Email
« Ответ #38 : 16 Января 2018, 15:50:18 »

Хочу в темплейте coa передать в произвольном атрибуте uid пользователя как это сделать?

Код:
$coa_connect__state_on = {
    type     => 'coa',
    template => 'User-Id=uid',
};

UPD. нашел User-Id={{id}}
« Последнее редактирование: 16 Января 2018, 16:18:45 от fet4 » Записан
fet4
Старожил
****

Карма: 2
Offline Offline

Сообщений: 326


Просмотр профиля Email
« Ответ #39 : 08 Февраля 2018, 22:53:58 »

Если я хочу по coa передать какой-то меняющийся параметр клиента, который будет записываться внешне в базу т.к. в радиусе его нет. Правильно ли будет создать допустим столбец type в auth_now и добавлять туда значение, а потом в конфиге coa вытягивать например так User-type={{type}}, будет ли так работать?
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #40 : 08 Февраля 2018, 23:57:14 »

Лучше самостоятельно не создавать поля в таблицах. Причин много, но я приведу первую попавшуюся. Зачастую в коде идет вставка записей в виде INSERT INTO tbl VALUES (val1, val2, val3). Здесь я точно знаю, что в таблице 3 поля. Если вы сами добавите 4-е, то запрос не будет выполнен. Если я в дальнейшем добавлю поле, то может произойти смещение полей. Короче не надо.

Важный вопрос по поводу "меняющийся параметр клиента" - необходимо мониторить этот параметр и при его изменение запускать coa либо же не надо менять логику и просто слать его дополнительным параметром? Если надо первый случай - необходимо править noserver.

Что это за параметр type? Он от радиуса приходит? Т.е это параметр авторизации? Его можно загнать в поле properties - оно для этого и создано, а потом я могу сделать правила в модуле coa для парсинга этого поля.
Записан
fet4
Старожил
****

Карма: 2
Offline Offline

Сообщений: 326


Просмотр профиля Email
« Ответ #41 : 09 Февраля 2018, 21:08:01 »

Цитировать
Лучше самостоятельно не создавать поля в таблицах. Причин много, но я приведу первую попавшуюся. Зачастую в коде идет вставка записей в виде INSERT INTO tbl VALUES (val1, val2, val3). Здесь я точно знаю, что в таблице 3 поля. Если вы сами добавите 4-е, то запрос не будет выполнен. Если я в дальнейшем добавлю поле, то может произойти смещение полей. Короче не надо.
Хорошо не буду.

Цитировать
Важный вопрос по поводу "меняющийся параметр клиента" - необходимо мониторить этот параметр и при его изменение запускать coa либо же не надо менять логику и просто слать его дополнительным параметром?
Да нужен первый вариант, если параметр поменялся отправить coa.

Цитировать
Что это за параметр type? Он от радиуса приходит? Т.е это параметр авторизации? Его можно загнать в поле properties - оно для этого и создано, а потом я могу сделать правила в модуле coa для парсинга этого поля.
type это просто для примера, это даже не параметр авторизации, а просто информация в каком адрес листе находится  src клиента на бордере, согласно этих листов выполняется маршрутизация по нескольким аплинкам. Мне просто нужна эта инфа на брасе для построения шейперов. Вот и думаю как ее передать?

coa высылается по изменению поля properties ? Если да, каким образом я могу добавить свой параметр в конец это поля в sql запросе?

Вообще было бы удобно если модуль мог мониторить указанный мной параметр.
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #42 : 10 Февраля 2018, 09:41:30 »

Если это не параметр авторизации, то он должен храниться в data0 (дополнительных полях абонентов). В модуле noserver2 уже эта фича используется - там можно указать имя допполя, в котором будет указываться скорость. Правда там жостко принято, что это скорость, поэтому нужно слегка переделать. При этом не обязательно, чтобы все параметры, которые мониторятся были в sql,  который указан в начале файла noserver. noserver еще периодически делает выборку из таблицы users (и других), после чего формирует сигнатуру данных, которые мониторятся. Единственное, такие параметры мониторятся реже чем sql в начале файла.

Кроме того, не забывай, что при изменении данных noserver всегда выключает абона, затем сразу включает 
Записан
fet4
Старожил
****

Карма: 2
Offline Offline

Сообщений: 326


Просмотр профиля Email
« Ответ #43 : 15 Февраля 2018, 18:44:46 »

noserver2 это я так понял - "Модуль noserver (управления фаерволом), который может брать скорость из допданных абонента" в личке?
Вообщем если возможность создать доп. поле и по нему отсылать coa если изменилось? Если да то как в кратце?
Записан
tom
Постоялец
***

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #44 : 16 Февраля 2018, 03:04:49 »

Лучше самостоятельно не создавать поля в таблицах. Причин много, но я приведу первую попавшуюся. Зачастую в коде идет вставка записей в виде INSERT INTO tbl VALUES (val1, val2, val3). Здесь я точно знаю, что в таблице 3 поля. Если вы сами добавите 4-е, то запрос не будет выполнен. Если я в дальнейшем добавлю поле, то может произойти смещение полей. Короче не надо.

Важный вопрос по поводу "меняющийся параметр клиента" - необходимо мониторить этот параметр и при его изменение запускать coa либо же не надо менять логику и просто слать его дополнительным параметром? Если надо первый случай - необходимо править noserver.

Что это за параметр type? Он от радиуса приходит? Т.е это параметр авторизации? Его можно загнать в поле properties - оно для этого и создано, а потом я могу сделать правила в модуле coa для парсинга этого поля.
Вітаю.
В звязку з вище описаним, хочу запитати чи є стандартний модуль, що буде відправцьовувати ситему qinq-accel-radius-coa-nodeny+? Бо постійне допилювання вручну, не то що б напрягало, але 300 разу думаєш, чи не буде подібних проблем.. Якщо є - де їх купити, в списку, нічого схожого не знайшов. Тобто чи реалізовано стандартними засобами авторизація по влану? Чи потрібно допилювати? Якщо потрібно, то є рекоментації по безпечному допилюваню? ))
Записан
Страниц: 1 2 [3] 4 5 ... 9
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!