Juniper MX

Данная механика появилась начиная с релиза 0.8.4 и предназначена для удобной и полностью автоматической работы с Juniper MX в роли IPoE NAS. Для подсчета трафика все так же используется NetFlow, Radius Accounting в свою очередь используется для визуального контроля жизни пользовательских сессий.

Предварительная настройка

Мы надеемся, что вы устанавливали Ubilling при помощи инсталлятора, и все нужное у вас уже есть. Для начала включаем Free Radius в /etc/rc.conf

radiusd_enable="YES"

Далее заменим стандартные конфигурационные файлы заготовками

# cd /usr/local/www/apache24/data/billing
# cp -R ./docs/jungen/raddb/* /usr/local/etc/raddb/

Вливаем нужный нам дамп базы

# mysql -u root -p stg < ./docs/jungen/dump.sql

Потом приступаем к конфигурированию соединения FreeRADIUS с БД Ubilling, редактируя следующие параметры в /usr/local/etc/raddb/sql.conf

Параметр Описание
server Хост/IP сервера базы данных
port Порт сервера базы данных
login Пользователь
password Пароль
radius_db Имя базы данных

Если все закончили, можно попробовать запустить FreeRADIUS, но пока в debug-режиме:

# radiusd -X

И если вы увидели нечто похожее на код ниже - можно продолжать дальше.

... adding new socket proxy address * port 10049
Listening on authentication address * port 1812
Listening on accounting address * port 1813
Listening on command file /var/run/radiusd/radiusd.sock
Listening on authentication address 127.0.0.1 port 18120 as server inner-tunnel
Listening on proxy address * port 1814
Ready to process requests.

Включение поддержки в Ubilling

Включаем соответствующую опцию в alter.ini

; Поддержка Juniper MX включена?
JUNGEN_ENABLED=1
;Следующая опция необязательна и выставляет пароль по-умолчанию для авторизации IPoE пользователей
;JUNGEN_KEY="mxBras"
;Эта опция тоже не обязательна и включает логирование jungen. Возможные значения 0 - disabled, 1 - enabled, 2 - debug. 
;Может уменьшить быстродействие. Рекомендуется включать только на время отладки.
;JUNGEN_LOGGING=1
;Если требуется - устанавливает альтернативные путь и опции для radclient.
;JUNGEN_RADCLIENT="/usr/local/bin/radclient -r 3 -t 1"

Использование

ubapi "jungen" - регенерация данных всех пользователей, естественно только изменившихся либо отсутствующих.
ubapi "juncast&run=block&login=userlogin" - блокирование пользователя 
ubapi "juncast&run=unblock&login=userlogin" - разблокирование пользователя
ubapi "juncast&run=terminate&login=userlogin" - принудительное убиваниие сессии пользователя

Куда это засовывать?

crontab -e

*/1 * * * *  /bin/ubapi "jungen"

OnConnect

#Juniper NAS unblock
/bin/ubapi "juncast&run=unblock&login=${LOGIN}"

OnDisconnect

#Juniper NAS block
/bin/ubapi "juncast&run=block&login=${LOGIN}"

Если у вас используются NAS разных типов, можно сделать это как-то так:

#Juniper NAS interaction
NASTYPE=`/etc/stargazer/GetNasType ${LOGIN}`
if [ "$NASTYPE" = "radius" ]
then
/bin/ubapi "juncast&run=unblock&login=${LOGIN}"
fi

Вот в общем то и все. Дальше все должно работать в полностью автоматическом режиме без какого-либо специального вмешательства. Для контроля за пользовательскими сессиями, можно использовать соответствующий модуль находящийся в «черной магии». Два клика, да. Также есть общий отчет по сессиям все пользователей, и возможность просмотреть лог (если включено логирование) регенерации данных необходимых для ААА, с целью оценки производительности.

junmxgen.txt · Последние изменения: 2017/08/21 13:07 — nightfly
 
За исключением случаев, когда указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki