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

Поэкспериментировать. Может быть использовать как аварийный байпас-радиус в случае остановки или поломки биллинга, чтобы абоненты все равно получали сервисы. Или для каких-нибудь других сервисов, где нужен 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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.