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/