Jump to content
Калькуляторы

FreeRADIUS + Oracle

Кто-нибудь использовал FreeRADIUS с БД Oracle? Не поделитесь конфигурацией (схемой и SQL-запросами)?

А то в исходном состоянии он совершенно неработоспособен.

Share this post


Link to post
Share on other sites

Исходное кривоватое и для Oracle не самое оптимальное.

Насчет «совершенно неработоспособен» я погорячился, но когда логи просматриваешь, просто руки чешутся в порядок привести.

Share this post


Link to post
Share on other sites

Ну, для начала я бы убрал нафиг триггеры и sequence (вы ведь не занимаетесь некрофилией с 11 версией?) и заменил все колонки ID в CREATE TABLE на что-то вроде:

 

id INT NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1)

 

(да, в 12 версии Oracle набралась мужества скопировать IDENTITY, которое у MSSQL было еще в 2000). PRIMARY KEY для ID указывать в таком случае не надо - автоматом им станет.
 

Share this post


Link to post
Share on other sites

У меня Oracle 10g, но я вообще не об этом.

Я про то, что для числовых столбцов FreeRADIUS подставляет '0' вместо 0.

Или использует TO_TIMESTAMP('%S','YYYY-MM-DDHH24:MI:SS') — хотя между DD и HH24 нужен пробел, а в конце нужен и часовой пояс.

Или что вообще используется to_date/to_timestamp вместо литералов (например DATE'2019-07-01').

Или страшные индексы.

Или странные типы данных (varchar вместо varchar2 или int вместо number).

Или нестыкующиеся размерности полей (в одной таблице у username длина 64 символа, в другой таблице 30 символов, в третьей 32 символа).

На этом фоне sequence и триггеры это мелочь.

Share this post


Link to post
Share on other sites
2 минуты назад, alibek сказал:

У меня Oracle 10g, но я вообще не об этом.

Ну это печально, EOS с 2010 года. Там из актуальных ништяков только онлайн-реиндексация, и то работала плёхо (надо было после нее ручками зачищать отходы жизнедеятельности). 

Share this post


Link to post
Share on other sites

Так мне и не нужны особо новые фичи.

То что я перечислил — это не какой-то особо сложный тюнинг, а просто неаккуратность и неряшливость.

Причем неаккуратность универсальная, '0' вместо 0 вообще с диалектом БД не связан, это везде косяк.

Или такой фрагмент:

AcctSessionTime = round((TO_DATE('%S','yyyy-mm-dd hh24:mi:ss') - \
  TO_DATE(TO_CHAR(acctstarttime, 'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss'))*86400)

Его даже на слабое знание особенностей Oracle не спишешь, оно на логическом уровне ущербное, иначе не понять, зачем дату нужно перегонять в строку, а затем снова в дату.

 

41 минуту назад, jffulcrum сказал:

в 12 версии Oracle набралась мужества скопировать IDENTITY, которое у MSSQL было еще в 2000

Если уж холиварить, то sequence гораздо универсальнее и удобнее, чем identity.

Share this post


Link to post
Share on other sites

Вы не поверите, но sequence в итоге и создастся для указанного формата INDENTITY как скрытый объект БД, просто его больше не надо руками создавать.

Share this post


Link to post
Share on other sites

Может быть, я Oracle других версий не пользовался.

Но это к теме не относится, как раз sequence в исходной схеме мне не мешают и к ним у меня претензий нет.

 

Share this post


Link to post
Share on other sites

Я правильно понимаю, что у вас биллинг на оракл? Не гидра, случайно?

Share this post


Link to post
Share on other sites

Нет, Гидра меня разочаровала.

У нас Билл-Мастер.

Share this post


Link to post
Share on other sites

А зачем Вам тогда freeradius?, если не секрет?

Share this post


Link to post
Share on other sites

Поэкспериментировать. Может быть использовать как аварийный байпас-радиус в случае остановки или поломки биллинга, чтобы абоненты все равно получали сервисы. Или для каких-нибудь других сервисов, где нужен RADIUS (хотспот, igmp auth и т.д.).

Но первопричиной было то, что хотим перейти с Ericsson SE100 на СКАТ (в качестве BRAS). СКАТ не умеет управлять адресным пространством (выделять IP-адреса из пула), полагаясь в этом на биллинг, а в биллинге у нас это не реализовано (это дополнительная лицензируемая фича в составе OSS, поэтому мы просто отдаем имя пула адресов, а SE100 сам распределяет адреса из этого пула). Малой кровью этот вопрос можно решить, используя прокладку-прокси (она будет добавлять в ответ Framed-IP-Address), а доступ к БД нужен, чтобы не городить костыли с синхронизацией конфигурации и некоторых параметров, назначенных абоненту в биллинге.

Share this post


Link to post
Share on other sites
26 минут назад, alibek сказал:

Может быть использовать как аварийный байпас-радиус в случае остановки или поломки биллинга, чтобы абоненты все равно получали сервисы.

Такой функционал у Билл-Мастер есть :)

 

27 минут назад, alibek сказал:

хотим перейти с Ericsson SE100 на СКАТ (в качестве BRAS).

Напрасно.....

 

Share this post


Link to post
Share on other sites
7 минут назад, NewUse сказал:

Такой функционал у Билл-Мастер есть

Ну он там не автоматический, в такой режим его переключать нужно вручную.

К тому же он в аварийном режиме всем клиентам дает один и тот же сервис, вообще никак не взаимодействуя с БД.

А на самодельном можно использовать данные из БД (тарифы, выделенные IP-адреса и т.д.).

 

7 минут назад, NewUse сказал:

Напрасно.....

Уж очень заманчиво выглядит, к тому же позволяет использовать существующий биллинг.

В любом случае все необходимое для теста есть и проверить будет интересно.

Share this post


Link to post
Share on other sites
3 минуты назад, alibek сказал:

Ну он там не автоматический, в такой режим его переключать нужно вручную.

К тому же он в аварийном режиме всем клиентам дает один и тот же сервис, вообще никак не взаимодействуя с БД.

А на самодельном можно использовать данные из БД (тарифы, выделенные IP-адреса и т.д.).

Этот режим специально для случая, если БД полетела, именно по этому он с ней и не взаимодействует :)

Ну и по скольку БД летит не часто, делать переход в него автоматическим, по меньшей мере странно, хотя, возможно, это реализовано, надо спрашивать разрабов....

 

Share this post


Link to post
Share on other sites

Всякое бывает, например БД работает нормально, а проблема именно с сервером, на котором работает АСР.

Или нужно перегрузить сервер с АСР, в этом случае байпас поможет это сделать малозаметно для пользователей.

Share this post


Link to post
Share on other sites
15 часов назад, alibek сказал:

Или нужно перегрузить сервер с АСР

не используйте эту порочную практику, Linux, это не винда перезагрузок не требует, почти. аптайм по 10 лет это хорошая практика...

 

15 часов назад, alibek сказал:

Или нужно перегрузить сервер с АСР, в этом случае байпас поможет это сделать малозаметно для пользователей. 

Ну перезагрузка и так проходит малозаметно, ибо не идёт только авторизация, ну пусть 10 минут, но работающие пользователи продолжают работать....

 

С тестами -- удачи, поделитесь, потом результатами, научился ли фриирадиус нормально с пулами работать....

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this