BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 28 мар 2024, 23:26

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 30 ] 
Автор Сообщение
 Заголовок сообщения: fake Radius поверх dhcp82
СообщениеДобавлено: 04 апр 2016, 18:32 
Не в сети
Клиент

Зарегистрирован: 06 апр 2013, 21:49
Сообщения: 152
Откуда: Глазов
Карма: 0
добрый день!
У нас версия 6.2, реализован InetDhcpListener с авторизацией по опции dhcp82 (авторизация = мак коммутатора + номер порта), при включении и отключении terminalserviceactivator шлет нужные комманды на коммутаторы и шейпер, все работает отлично!

Возможно ли как-то дополнительно к существующей конфигурации прикрутить фейковый Radius (думаю radiuslistener) в дополнение к текущей конфе, который бы не давал никаких комманд обработчика, не трогал сессии и не участвовал в логике биллинга и при этом при работе абонентов (появление сессии, обновление, завершение) слал пакетики биллинг<->аккаунтинг, вот такие Acct-Status-Type, User name, Framed-IP-Address, Acct-Session-Id, Calling-Station-ID, Acct-Terminate-Cause. ????

Кто-то может делал?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: fake Radius поверх dhcp82
СообщениеДобавлено: 04 апр 2016, 19:04 
Не в сети

Зарегистрирован: 16 ноя 2007, 16:11
Сообщения: 829
Карма: 49
.


Последний раз редактировалось vdd 04 апр 2016, 19:46, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: fake Radius поверх dhcp82
СообщениеДобавлено: 04 апр 2016, 19:25 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Обработчик протокола можно сделать который на каждый dhcp-запрос будет слать куда-то radius- запрос.

Пример работы с radius у нас есть в ru.bitel.bgbilling.modules.inet.dyn.device.radius.AbstractRadiusServiceActivator в динамическом коде. Там используется ru.bitel.bgbilling.kernel.network.radius.RadiusClient.
А можно самим вручную делать ru.bitel.bgbilling.kernel.network.radius.RadiusPacket и отправлять его через сокет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: fake Radius поверх dhcp82
СообщениеДобавлено: 04 апр 2016, 19:36 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
А что в Acct-Terminate-Cause передавать?

И что в User-Name?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: fake Radius поверх dhcp82
СообщениеДобавлено: 04 апр 2016, 22:28 
Не в сети
Клиент

Зарегистрирован: 12 фев 2007, 18:49
Сообщения: 335
Карма: 15
Доброе время суток,
В User-Name хотелось бы видеть cid + уникальный id сервиса типа: "12345/54321"
В Acct-Terminate-Cause не столь важно наверно, что-нить подходящее под окончание срока аренды адреса...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: fake Radius поверх dhcp82
СообщениеДобавлено: 05 апр 2016, 10:16 
Не в сети
Клиент

Зарегистрирован: 06 апр 2013, 21:49
Сообщения: 152
Откуда: Глазов
Карма: 0
С User name можно и пофантазировать! Тут главное, чтобы он был уникальным идентификатором пользователя, может быть как-то задавать с помощью переменных. Конечно же должен быть cid + (для нас полезно бы было) mac_коммутатора+порт, на котором сессия абонента.

Причем запросы радиуса должны слаться просто как дополнение к тому обработчику, который нормально функционирует.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: fake Radius поверх dhcp82
СообщениеДобавлено: 22 сен 2016, 17:03 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
UP


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: fake Radius поверх dhcp82
СообщениеДобавлено: 04 окт 2016, 18:39 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
ikoctya писал(а):
фейковый Radius, который бы слал пакетики биллинг<->аккаунтинг, вот такие Acct-Status-Type, User name, Framed-IP-Address, Acct-Session-Id, Calling-Station-ID, Acct-Terminate-Cause

Вам на СОРМ надо RADIUS сливать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: fake Radius поверх dhcp82
СообщениеДобавлено: 04 окт 2016, 18:48 
Не в сети
Клиент

Зарегистрирован: 12 фев 2007, 18:49
Сообщения: 335
Карма: 15
snark писал(а):
Вам на СОРМ надо RADIUS сливать?

Мне - да :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: fake Radius поверх dhcp82
СообщениеДобавлено: 04 окт 2016, 19:29 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
На самом деле этот функционал нужен 99,9% пользователей БГБ (0,1% - там где СОРМ этого не требует).
Просто тем, у кого IPoE через RADIUS (Cisco/Ericsson) с этим проще, а вот тем, у кого IPoE не через RADIUS, то им нужно нечто, что генерило бы Start/Stop (кажется СОРМ этого хватает) пакеты, где "User-Name = contractTitle и/или contractId" (уникальный идентификатор однозначно указывающий на договор), "Framed-IP-Address = IP адрес клиента" и обязательный Acct-Terminate-Cause.
Наверное есть смысл нам всем выслать в Бител те требования, которые предъявляют различные СОРМ к операторам, касательно того, что именно СОРМ хочет видеть в посланных ему RADIUS пакетах, чтобы Бител мог запилить в БГБ некий универсальный, отвечающий большинству требований генератор RADIUS пакетов для СОРМ.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: fake Radius поверх dhcp82
СообщениеДобавлено: 11 янв 2017, 16:58 
Не в сети
Клиент

Зарегистрирован: 12 фев 2007, 18:49
Сообщения: 335
Карма: 15
up


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: fake Radius поверх dhcp82
СообщениеДобавлено: 10 фев 2017, 18:26 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Выложим в понедельник ru.bitel.bgbilling.modules.inet.dyn.device.misc.RadiusFanoutServiceActivator для 6.2/7.0.
Должен работать нормально и для 5.2.

Нужно создать устройство с типом, у которого указан данный обработчик, и сделать, чтобы это устройство было предком для устройств-коммутаторов
(чтобы обработчик обрабатывал onAccountingStart/onAccountingStop DHCP-сессий коммутаторов).

Код:
# макрос для отправки старт-пакета
sa.radius.fanout.accountingStart.attributes.macros=User-Name=$contractTitle();Acct-Session-Id=$connectionId()-$acctSessionId();Acct-Status-Type=1;Framed-IP-Address=$ip();Calling-Station-Id=$callingStationId()

# макрос для отправки стоп-пакета
sa.radius.fanout.accountingStop.attributes.macros=User-Name=$contractTitle();Acct-Session-Id=$connectionId()-$acctSessionId();Acct-Status-Type=2;Framed-IP-Address=$ip();Calling-Station-Id=$callingStationId();Acct-Terminate-Cause=1

# ID сервисов, для которых не нужно отправлять, например, сервисы с dhcp.disable.servId (договор UNATH)
sa.radius.fanout.skipServIds=2


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: fake Radius поверх dhcp82
СообщениеДобавлено: 10 фев 2017, 18:32 
Не в сети
Клиент

Зарегистрирован: 06 апр 2013, 21:49
Сообщения: 152
Откуда: Глазов
Карма: 0
Отличная новость, будем прикручивать!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: fake Radius поверх dhcp82
СообщениеДобавлено: 19 сен 2018, 19:37 
Не в сети
Клиент

Зарегистрирован: 06 апр 2013, 21:49
Сообщения: 152
Откуда: Глазов
Карма: 0
Amir писал(а):
Выложим в понедельник ru.bitel.bgbilling.modules.inet.dyn.device.misc.RadiusFanoutServiceActivator для 6.2/7.0.
Должен работать нормально и для 5.2.

Нужно создать устройство с типом, у которого указан данный обработчик, и сделать, чтобы это устройство было предком для устройств-коммутаторов
(чтобы обработчик обрабатывал onAccountingStart/onAccountingStop DHCP-сессий коммутаторов).

Код:
# макрос для отправки старт-пакета
sa.radius.fanout.accountingStart.attributes.macros=User-Name=$contractTitle();Acct-Session-Id=$connectionId()-$acctSessionId();Acct-Status-Type=1;Framed-IP-Address=$ip();Calling-Station-Id=$callingStationId()

# макрос для отправки стоп-пакета
sa.radius.fanout.accountingStop.attributes.macros=User-Name=$contractTitle();Acct-Session-Id=$connectionId()-$acctSessionId();Acct-Status-Type=2;Framed-IP-Address=$ip();Calling-Station-Id=$callingStationId();Acct-Terminate-Cause=1

# ID сервисов, для которых не нужно отправлять, например, сервисы с dhcp.disable.servId (договор UNATH)
sa.radius.fanout.skipServIds=2



Описаные дейcтвия выполнил. Теперь непонятно, заработало ли!? Как провести диагностику, на чем проверить, что должно быть в логах?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: fake Radius поверх dhcp82
СообщениеДобавлено: 19 сен 2018, 19:44 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
ikoctya писал(а):
Описаные дейcтвия выполнил. Теперь непонятно, заработало ли!? Как провести диагностику, на чем проверить, что должно быть в логах?

- Указать в устройстве IP:port вашего компьютера.
- Запустить Wireshark на вашем компьютере.
- Увидеть трафик прилетающий от биллинга
- ...
- Profit!

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: fake Radius поверх dhcp82
СообщениеДобавлено: 19 сен 2018, 19:51 
Не в сети
Клиент

Зарегистрирован: 06 апр 2013, 21:49
Сообщения: 152
Откуда: Глазов
Карма: 0
Да с чего мне или клиенту должен прилетать траффик с биллинга?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: fake Radius поверх dhcp82
СообщениеДобавлено: 19 сен 2018, 21:12 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
ikoctya писал(а):
с чего мне или клиенту должен прилетать траффик с биллинга?

С чего трафик должен полететь к вам или к клиенту?
Трафик полетит на хост:
Код:
String nasHost = deviceConfig.get( "sa.radius.fanout.host", host != null ? host[0] : device.getHost() );

на порт:
Код:
int nasPort = deviceConfig.getInt( "sa.radius.fanout.port", Utils.parseInt( host != null ? host[1] : "1700" ) );


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: fake Radius поверх dhcp82
СообщениеДобавлено: 20 сен 2018, 15:05 
Не в сети
Клиент

Зарегистрирован: 06 апр 2013, 21:49
Сообщения: 152
Откуда: Глазов
Карма: 0
Спасибо!
Только вот в tcpdump по нулям, ниче никуда не летит


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: fake Radius поверх dhcp82
СообщениеДобавлено: 01 мар 2019, 12:25 
Не в сети
Клиент

Зарегистрирован: 04 авг 2007, 19:57
Сообщения: 157
Карма: 0
Удалось кому-нибудь настроить RadiusFanoutServiceActivator?
Ни в логах биллинга, ни в дампе трафика не видно, чтобы что-то отправлялось.
В документации никакой информации по настройке нет.

_________________
Клиент: вер. 7.2.198 / 19.08.2019 19:30:12
Сервер: вер. 7.2.1061 / 19.08.2019 19:32:26
card: вер. 7.2.201 / 24.07.2019 03:56:11
dialup: вер. 7.2.303 / 04.07.2019 17:11:44
inet: вер. 7.2.639 / 19.08.2019 19:32:59
ipn: вер. 7.2.232 / 19.08.2019 19:32:53
mps: вер. 7.2.177 / 08.08.2019 16:32:31
npay: вер. 7.2.174 / 25.07.2019 19:48:57
phone: вер. 7.2.260 / 08.08.2019 16:32:32
reports: вер. 7.2.203 / 12.08.2019 21:56:13
trayinfo: вер. 7.2.160 / 25.06.2019 16:47:08
voice: вер. 7.2.63 / 19.08.2019 19:33:01
voiceip: вер. 7.2.176 / 25.06.2019 16:46:56


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: fake Radius поверх dhcp82
СообщениеДобавлено: 01 мар 2019, 12:39 
Не в сети
Клиент

Зарегистрирован: 06 апр 2013, 21:49
Сообщения: 152
Откуда: Глазов
Карма: 0
Присоединяюсь!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: fake Radius поверх dhcp82
СообщениеДобавлено: 01 мар 2019, 14:44 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
В логах строчка
Send fanout request
есть?

Нужен скриншот дерева устройств


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: fake Radius поверх dhcp82
СообщениеДобавлено: 01 мар 2019, 15:41 
Не в сети
Клиент

Зарегистрирован: 06 апр 2013, 21:49
Сообщения: 152
Откуда: Глазов
Карма: 0
В каких логах именно нужно смотреть?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: fake Radius поверх dhcp82
СообщениеДобавлено: 01 мар 2019, 16:07 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
InetAccess/log/all.log, после
Invoking onAccountingStart
или искать по подстроке
RadiusFanoutServiceActivator


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: fake Radius поверх dhcp82
СообщениеДобавлено: 01 мар 2019, 16:17 
Не в сети
Клиент

Зарегистрирован: 06 апр 2013, 21:49
Сообщения: 152
Откуда: Глазов
Карма: 0
Есть такое
Код:
connection 03-01/14:14:56  INFO [sa-p-12-t-56] RadiusFanoutServiceActivator - Send fanout request:.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: fake Radius поверх dhcp82
СообщениеДобавлено: 01 мар 2019, 16:53 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Вроде должно тогда - следующими строчками должен быть распечатан пакет, потом еще строка
Sending to " + host + ":" + port + "\n" + packet


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: fake Radius поверх dhcp82
СообщениеДобавлено: 01 мар 2019, 16:57 
Не в сети
Клиент

Зарегистрирован: 06 апр 2013, 21:49
Сообщения: 152
Откуда: Глазов
Карма: 0
Да, заработало!
До этого не было ничего в логах.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: fake Radius поверх dhcp82
СообщениеДобавлено: 05 мар 2019, 13:55 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Цитата:
Удалось кому-нибудь настроить RadiusFanoutServiceActivator?
Ни в логах биллинга, ни в дампе трафика не видно, чтобы что-то отправлялось.
В документации никакой информации по настройке нет.
Чтобы не потерялось: у вас были сессии по трафику, для них раньше не генерировались события старта и стопа для ServiceActivator. Теперь можно указать в конфигурации типа сервиса:
Цитата:
sa.connection.auto.accountingEvent=1


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: fake Radius поверх dhcp82
СообщениеДобавлено: 06 мар 2019, 17:40 
Не в сети
Клиент

Зарегистрирован: 04 авг 2007, 19:57
Сообщения: 157
Карма: 0
Спасибо, после обновления заработало.
Но как выяснилось для СОРМа нужны в том числе access-пакеты.
Подскажите не планируете помимо аккуантинга сделать полноценный "фейковый радиус"?

_________________
Клиент: вер. 7.2.198 / 19.08.2019 19:30:12
Сервер: вер. 7.2.1061 / 19.08.2019 19:32:26
card: вер. 7.2.201 / 24.07.2019 03:56:11
dialup: вер. 7.2.303 / 04.07.2019 17:11:44
inet: вер. 7.2.639 / 19.08.2019 19:32:59
ipn: вер. 7.2.232 / 19.08.2019 19:32:53
mps: вер. 7.2.177 / 08.08.2019 16:32:31
npay: вер. 7.2.174 / 25.07.2019 19:48:57
phone: вер. 7.2.260 / 08.08.2019 16:32:32
reports: вер. 7.2.203 / 12.08.2019 21:56:13
trayinfo: вер. 7.2.160 / 25.06.2019 16:47:08
voice: вер. 7.2.63 / 19.08.2019 19:33:01
voiceip: вер. 7.2.176 / 25.06.2019 16:46:56


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: fake Radius поверх dhcp82
СообщениеДобавлено: 31 июл 2019, 18:39 
Не в сети
Клиент

Зарегистрирован: 04 авг 2007, 19:57
Сообщения: 157
Карма: 0
Сейчас RadiusFanoutServiceActivator настроен так:
sa.radius.fanout.accountingStart.attributes.macros=User-Name=$contractId();Acct-Session-Id=$connectionId();Acct-Status-Type=1;Framed-IP-Address=$ip();Calling-Station-Id=$ip()
Фейковые радиус-пакеты пересылаются.
Все другие сервисы биллинга выгружаются в сорм с идентификатором в поле User-Name в формате $servId, а здесь если прописать $servId вместо $contractId, то в радиус-пакет вставляется какая-то билиберда.
Еще для сорма нужно, чтобы периодически (например раз в час), пока жива сессия приходили update пакеты. Для этого есть настройки?

_________________
Клиент: вер. 7.2.198 / 19.08.2019 19:30:12
Сервер: вер. 7.2.1061 / 19.08.2019 19:32:26
card: вер. 7.2.201 / 24.07.2019 03:56:11
dialup: вер. 7.2.303 / 04.07.2019 17:11:44
inet: вер. 7.2.639 / 19.08.2019 19:32:59
ipn: вер. 7.2.232 / 19.08.2019 19:32:53
mps: вер. 7.2.177 / 08.08.2019 16:32:31
npay: вер. 7.2.174 / 25.07.2019 19:48:57
phone: вер. 7.2.260 / 08.08.2019 16:32:32
reports: вер. 7.2.203 / 12.08.2019 21:56:13
trayinfo: вер. 7.2.160 / 25.06.2019 16:47:08
voice: вер. 7.2.63 / 19.08.2019 19:33:01
voiceip: вер. 7.2.176 / 25.06.2019 16:46:56


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: fake Radius поверх dhcp82
СообщениеДобавлено: 01 авг 2019, 16:06 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Попробуйте $inetServId()

>Еще для сорма нужно, чтобы периодически (например раз в час), пока жива сессия приходили update пакеты. Для этого есть настройки?
Наверно сможем сделать, чтобы при получении DHCP-пакета по сессии отправлялся RADIUS-Update.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 30 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
POWERED_BY
Русская поддержка phpBB
[ Time : 0.147s | 78 Queries | GZIP : On ]