Pa4ka
|
|
« Ответ #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
|
|
« Ответ #31 : 14 Ноября 2016, 12:11:18 » |
|
Я до сегодня из самого noserver.pl делал что бы выдирались все пользователи изменял где было state='on'.) Проблема была только если услуга замораживалась, сессию убивал coa_disconnect. С ключами тоже норма)
А с какими радиус процедурами? Выложите вариант как у вас настроено. Спасибо. Вы имели ввиду mysql процедурами?
|
|
|
Записан
|
|
|
|
dimonous
Пользователь
Карма: 0
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
Сообщений: 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
Сообщений: 82
|
|
« Ответ #34 : 25 Ноября 2016, 18:47:38 » |
|
А если несколько НАС-ов В конфигах как-то можно это указать в coa.cfg.pm?? $host = 'x.x.x.1:3799'; $host = 'x.x.x.2:3799'; Или нужно только запускать несколько модулей СОА, каждый из которых будет обрабатывать свой собственный НАС?
|
|
|
Записан
|
|
|
|
Efendy
|
|
« Ответ #35 : 25 Ноября 2016, 23:59:57 » |
|
не вникая в суть, сразу говорю в таком коде: переменная = значение; переменная = значение; принимается только последний вариант всегда
|
|
|
Записан
|
|
|
|
sever
Пользователь
Карма: 1
Offline
Сообщений: 82
|
|
« Ответ #36 : 28 Ноября 2016, 09:15:51 » |
|
Это пример был. Понятно что можно заморочиться с циклом ещё или в массив упаковать хосты. Но если есть встроенный функционал... в общем возможности такой нет не пиляя код? Было бы круто указать сразу все насы, если их несколько запустив при этом один экземпляр модуля coa.
|
|
|
Записан
|
|
|
|
Efendy
|
|
« Ответ #37 : 28 Ноября 2016, 11:51:32 » |
|
Попробуй запустить несколько копий с разными конфигами
|
|
|
Записан
|
|
|
|
fet4
|
|
« Ответ #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
|
|
« Ответ #39 : 08 Февраля 2018, 22:53:58 » |
|
Если я хочу по coa передать какой-то меняющийся параметр клиента, который будет записываться внешне в базу т.к. в радиусе его нет. Правильно ли будет создать допустим столбец type в auth_now и добавлять туда значение, а потом в конфиге coa вытягивать например так User-type={{type}}, будет ли так работать?
|
|
|
Записан
|
|
|
|
Efendy
|
|
« Ответ #40 : 08 Февраля 2018, 23:57:14 » |
|
Лучше самостоятельно не создавать поля в таблицах. Причин много, но я приведу первую попавшуюся. Зачастую в коде идет вставка записей в виде INSERT INTO tbl VALUES (val1, val2, val3). Здесь я точно знаю, что в таблице 3 поля. Если вы сами добавите 4-е, то запрос не будет выполнен. Если я в дальнейшем добавлю поле, то может произойти смещение полей. Короче не надо.
Важный вопрос по поводу "меняющийся параметр клиента" - необходимо мониторить этот параметр и при его изменение запускать coa либо же не надо менять логику и просто слать его дополнительным параметром? Если надо первый случай - необходимо править noserver.
Что это за параметр type? Он от радиуса приходит? Т.е это параметр авторизации? Его можно загнать в поле properties - оно для этого и создано, а потом я могу сделать правила в модуле coa для парсинга этого поля.
|
|
|
Записан
|
|
|
|
fet4
|
|
« Ответ #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
|
|
« Ответ #42 : 10 Февраля 2018, 09:41:30 » |
|
Если это не параметр авторизации, то он должен храниться в data0 (дополнительных полях абонентов). В модуле noserver2 уже эта фича используется - там можно указать имя допполя, в котором будет указываться скорость. Правда там жостко принято, что это скорость, поэтому нужно слегка переделать. При этом не обязательно, чтобы все параметры, которые мониторятся были в sql, который указан в начале файла noserver. noserver еще периодически делает выборку из таблицы users (и других), после чего формирует сигнатуру данных, которые мониторятся. Единственное, такие параметры мониторятся реже чем sql в начале файла.
Кроме того, не забывай, что при изменении данных noserver всегда выключает абона, затем сразу включает
|
|
|
Записан
|
|
|
|
fet4
|
|
« Ответ #43 : 15 Февраля 2018, 18:44:46 » |
|
noserver2 это я так понял - "Модуль noserver (управления фаерволом), который может брать скорость из допданных абонента" в личке? Вообщем если возможность создать доп. поле и по нему отсылать coa если изменилось? Если да то как в кратце?
|
|
|
Записан
|
|
|
|
tom
|
|
« Ответ #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 разу думаєш, чи не буде подібних проблем.. Якщо є - де їх купити, в списку, нічого схожого не знайшов. Тобто чи реалізовано стандартними засобами авторизація по влану? Чи потрібно допилювати? Якщо потрібно, то є рекоментації по безпечному допилюваню? ))
|
|
|
Записан
|
|
|
|
|