forum.bitel.ru http://forum.bitel.ru/ |
|
fake Radius поверх dhcp82 http://forum.bitel.ru/viewtopic.php?f=44&t=11493 |
Страница 1 из 1 |
Автор: | ikoctya [ 04 апр 2016, 18:32 ] |
Заголовок сообщения: | fake Radius поверх dhcp82 |
добрый день! У нас версия 6.2, реализован InetDhcpListener с авторизацией по опции dhcp82 (авторизация = мак коммутатора + номер порта), при включении и отключении terminalserviceactivator шлет нужные комманды на коммутаторы и шейпер, все работает отлично! Возможно ли как-то дополнительно к существующей конфигурации прикрутить фейковый Radius (думаю radiuslistener) в дополнение к текущей конфе, который бы не давал никаких комманд обработчика, не трогал сессии и не участвовал в логике биллинга и при этом при работе абонентов (появление сессии, обновление, завершение) слал пакетики биллинг<->аккаунтинг, вот такие Acct-Status-Type, User name, Framed-IP-Address, Acct-Session-Id, Calling-Station-ID, Acct-Terminate-Cause. ???? Кто-то может делал? |
Автор: | vdd [ 04 апр 2016, 19:04 ] |
Заголовок сообщения: | Re: fake Radius поверх dhcp82 |
. |
Автор: | stark [ 04 апр 2016, 19:25 ] |
Заголовок сообщения: | Re: fake Radius поверх dhcp82 |
Обработчик протокола можно сделать который на каждый 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 и отправлять его через сокет. |
Автор: | Amir [ 04 апр 2016, 19:36 ] |
Заголовок сообщения: | Re: fake Radius поверх dhcp82 |
А что в Acct-Terminate-Cause передавать? И что в User-Name? |
Автор: | Victor [ 04 апр 2016, 22:28 ] |
Заголовок сообщения: | Re: fake Radius поверх dhcp82 |
Доброе время суток, В User-Name хотелось бы видеть cid + уникальный id сервиса типа: "12345/54321" В Acct-Terminate-Cause не столь важно наверно, что-нить подходящее под окончание срока аренды адреса... |
Автор: | ikoctya [ 05 апр 2016, 10:16 ] |
Заголовок сообщения: | Re: fake Radius поверх dhcp82 |
С User name можно и пофантазировать! Тут главное, чтобы он был уникальным идентификатором пользователя, может быть как-то задавать с помощью переменных. Конечно же должен быть cid + (для нас полезно бы было) mac_коммутатора+порт, на котором сессия абонента. Причем запросы радиуса должны слаться просто как дополнение к тому обработчику, который нормально функционирует. |
Автор: | Amir [ 22 сен 2016, 17:03 ] |
Заголовок сообщения: | Re: fake Radius поверх dhcp82 |
UP |
Автор: | snark [ 04 окт 2016, 18:39 ] |
Заголовок сообщения: | Re: fake Radius поверх dhcp82 |
ikoctya писал(а): фейковый Radius, который бы слал пакетики биллинг<->аккаунтинг, вот такие Acct-Status-Type, User name, Framed-IP-Address, Acct-Session-Id, Calling-Station-ID, Acct-Terminate-Cause Вам на СОРМ надо RADIUS сливать? |
Автор: | Victor [ 04 окт 2016, 18:48 ] |
Заголовок сообщения: | Re: fake Radius поверх dhcp82 |
snark писал(а): Вам на СОРМ надо RADIUS сливать? Мне - да |
Автор: | snark [ 04 окт 2016, 19:29 ] |
Заголовок сообщения: | Re: fake Radius поверх dhcp82 |
На самом деле этот функционал нужен 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 пакетов для СОРМ. |
Автор: | Victor [ 11 янв 2017, 16:58 ] |
Заголовок сообщения: | Re: fake Radius поверх dhcp82 |
up |
Автор: | Amir [ 10 фев 2017, 18:26 ] |
Заголовок сообщения: | Re: fake Radius поверх dhcp82 |
Выложим в понедельник 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 |
Автор: | ikoctya [ 10 фев 2017, 18:32 ] |
Заголовок сообщения: | Re: fake Radius поверх dhcp82 |
Отличная новость, будем прикручивать! |
Автор: | ikoctya [ 19 сен 2018, 19:37 ] |
Заголовок сообщения: | Re: fake Radius поверх dhcp82 |
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твия выполнил. Теперь непонятно, заработало ли!? Как провести диагностику, на чем проверить, что должно быть в логах? |
Автор: | Phricker [ 19 сен 2018, 19:44 ] |
Заголовок сообщения: | Re: fake Radius поверх dhcp82 |
ikoctya писал(а): Описаные дейcтвия выполнил. Теперь непонятно, заработало ли!? Как провести диагностику, на чем проверить, что должно быть в логах? - Указать в устройстве IP:port вашего компьютера. - Запустить Wireshark на вашем компьютере. - Увидеть трафик прилетающий от биллинга - ... - Profit! |
Автор: | ikoctya [ 19 сен 2018, 19:51 ] |
Заголовок сообщения: | Re: fake Radius поверх dhcp82 |
Да с чего мне или клиенту должен прилетать траффик с биллинга? |
Автор: | snark [ 19 сен 2018, 21:12 ] |
Заголовок сообщения: | Re: fake Radius поверх dhcp82 |
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" ) );
|
Автор: | ikoctya [ 20 сен 2018, 15:05 ] |
Заголовок сообщения: | Re: fake Radius поверх dhcp82 |
Спасибо! Только вот в tcpdump по нулям, ниче никуда не летит |
Автор: | Alex-XXI [ 01 мар 2019, 12:25 ] |
Заголовок сообщения: | Re: fake Radius поверх dhcp82 |
Удалось кому-нибудь настроить RadiusFanoutServiceActivator? Ни в логах биллинга, ни в дампе трафика не видно, чтобы что-то отправлялось. В документации никакой информации по настройке нет. |
Автор: | ikoctya [ 01 мар 2019, 12:39 ] |
Заголовок сообщения: | Re: fake Radius поверх dhcp82 |
Присоединяюсь! |
Автор: | Amir [ 01 мар 2019, 14:44 ] |
Заголовок сообщения: | Re: fake Radius поверх dhcp82 |
В логах строчка Send fanout request есть? Нужен скриншот дерева устройств |
Автор: | ikoctya [ 01 мар 2019, 15:41 ] |
Заголовок сообщения: | Re: fake Radius поверх dhcp82 |
В каких логах именно нужно смотреть? |
Автор: | Amir [ 01 мар 2019, 16:07 ] |
Заголовок сообщения: | Re: fake Radius поверх dhcp82 |
InetAccess/log/all.log, после Invoking onAccountingStart или искать по подстроке RadiusFanoutServiceActivator |
Автор: | ikoctya [ 01 мар 2019, 16:17 ] |
Заголовок сообщения: | Re: fake Radius поверх dhcp82 |
Есть такое Код: connection 03-01/14:14:56 INFO [sa-p-12-t-56] RadiusFanoutServiceActivator - Send fanout request:.
|
Автор: | Amir [ 01 мар 2019, 16:53 ] |
Заголовок сообщения: | Re: fake Radius поверх dhcp82 |
Вроде должно тогда - следующими строчками должен быть распечатан пакет, потом еще строка Sending to " + host + ":" + port + "\n" + packet |
Автор: | ikoctya [ 01 мар 2019, 16:57 ] |
Заголовок сообщения: | Re: fake Radius поверх dhcp82 |
Да, заработало! До этого не было ничего в логах. |
Автор: | Amir [ 05 мар 2019, 13:55 ] |
Заголовок сообщения: | Re: fake Radius поверх dhcp82 |
Цитата: Удалось кому-нибудь настроить RadiusFanoutServiceActivator? Чтобы не потерялось: у вас были сессии по трафику, для них раньше не генерировались события старта и стопа для ServiceActivator. Теперь можно указать в конфигурации типа сервиса: Ни в логах биллинга, ни в дампе трафика не видно, чтобы что-то отправлялось. В документации никакой информации по настройке нет. Цитата: sa.connection.auto.accountingEvent=1
|
Автор: | Alex-XXI [ 06 мар 2019, 17:40 ] |
Заголовок сообщения: | Re: fake Radius поверх dhcp82 |
Спасибо, после обновления заработало. Но как выяснилось для СОРМа нужны в том числе access-пакеты. Подскажите не планируете помимо аккуантинга сделать полноценный "фейковый радиус"? |
Автор: | Alex-XXI [ 31 июл 2019, 18:39 ] |
Заголовок сообщения: | Re: fake Radius поверх dhcp82 |
Сейчас 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 пакеты. Для этого есть настройки? |
Автор: | Amir [ 01 авг 2019, 16:06 ] |
Заголовок сообщения: | Re: fake Radius поверх dhcp82 |
Попробуйте $inetServId() >Еще для сорма нужно, чтобы периодически (например раз в час), пока жива сессия приходили update пакеты. Для этого есть настройки? Наверно сможем сделать, чтобы при получении DHCP-пакета по сессии отправлялся RADIUS-Update. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |