RG-45 Posted April 26, 2016 Posted April 26, 2016 (edited) Привет! Обращение к тем юзает связку accel-ppp(radius)+lanbilling ,кто как кикает сессии pppoe . Может кто поделится скриптиком или поможет написать . Не бить ногами, никогда не писал скрипты ,получилась болванка : #!/bin/bash # # drop session pppoe by accel-ppp # # LOGIN=$1 nc 10.0.17.2 2001 terminate username LOGIN exit 0 Edited April 26, 2016 by RG-45 Вставить ник Quote
NiTr0 Posted April 26, 2016 Posted April 26, 2016 не занимайтесь скриптоонанизмом, юзайте DM (RFC3576)... Вставить ник Quote
kayot Posted April 26, 2016 Posted April 26, 2016 nc 10.0.17.2 2001 terminate username LOGIN exit 0 эквивалентно accel-cmd terminate username LOGIN Вставить ник Quote
RG-45 Posted April 26, 2016 Author Posted April 26, 2016 nc 10.0.17.2 2001 terminate username LOGIN exit 0 эквивалентно accel-cmd terminate username LOGIN Поясните пожста. Вчем? не занимайтесь скриптоонанизмом, юзайте DM (RFC3576)... Я не нашел атрибута в словаре биллинга . Вставить ник Quote
NiTr0 Posted April 26, 2016 Posted April 26, 2016 Я не нашел атрибута в словаре биллинга . какого? и добавить ручками - не (если биллинг действительно его шлет но разрабы включить забыли)? Вставить ник Quote
roysbike Posted April 27, 2016 Posted April 27, 2016 echo "User-Name=LOGIN" | radclient -x ip_bras:3799 disconnect пароль_accel Вставить ник Quote
RG-45 Posted April 27, 2016 Author Posted April 27, 2016 echo "User-Name=LOGIN" | radclient -x ip_bras:3799 disconnect пароль_accel Проясните что это ? Вставить ник Quote
s.lobanov Posted April 27, 2016 Posted April 27, 2016 RG-45 это PoD-запрос, о нём написано в первом же ответе в этом топике. вы вообще читаете, что вам пишут? Вставить ник Quote
RG-45 Posted April 27, 2016 Author Posted April 27, 2016 RG-45 это PoD-запрос, о нём написано в первом же ответе в этом топике. вы вообще читаете, что вам пишут? Нет не читаю !!!! Я понимаю только картинки !!!! .....Травишь .... Конечно читаю . Вставить ник Quote
hsvt Posted April 27, 2016 Posted April 27, 2016 (edited) Скрипт /usr/local/billing/handler, его логи в /usr/local/billing/srvctl.log COA - password - секрет для радиуса и DM. --action edit мы не используем, --action start мы тоже не используем, ip передается в --action start только один - тот который в sessionsradius в дебаг пишутся все действия, мы используем только --action stop: при смене скорости и блокировке. Первое: в действии —stop нужно сделать два крупных ветвления если —reason changed, ветка смена скорости иначе ветка остановки сессии, если остановка - тогда stop Как только работа будет отлажена, можно будет закомментировать строку log_error "DEBUG" внутри скрипта, уберутся строки содержащие DEBUG. #!/usr/bin/bash # # ###################################### ### Created by Vitaliy Razzhivin ### ### Network Solution, 2015 ### ### razzhivin@lanbilling.ru ### ### LB-base-2.0-007+ ### ### CentOS 5.x-6.x ### ### Accel-PPP ### ###################################### # # Prerequisites: # - netmask util (e.g: rpm -ivh http://pkgs.repoforge.org/netmask/netmask-2.3.7-3.2.el5.rf.x86_64.rpm) # - freeradius-utils (yum install freeradius-utils) PARAMS="$*" # all parameters for ./handler from billing LOG='/usr/local/billing/srvctl.log' # no comments COA_PORT='3799' # port is default COA_SECRET='YOURPASSWORD' # coa secret key RADCLIENT='/usr/bin/radclient -t1 -r1 -c1 -x' # use mega-special radius client that support CoA :) # flushing variables ACTION='' REASON='' SESSION='' LOGIN='' NAS='' IP='' SHAPE='' OLDSHAPE='' BNGNAME='' MAC='' GUEST='' PASSWORD='' OLDBLOCKED='' BLOCKED='' log() { echo "[`date +'%d-%m-%Y %H:%M:%S'`] (${SUBSCRIBER} ${IP}) - $1" >> $LOG # log regular events } log_error() { echo "[`date +'%d-%m-%Y %H:%M:%S'`] - $1 [$PARAMS]" >> $LOG # log error events } # parsing handler parameters while [ -n "$1" ] do case $1 in "--action") ACTION=$2 ;; "--reason") REASON=$2 ;; "--session") SESSION=$2 ;; "--login") LOGIN=$2 ;; "--nas") NAS=$2 ;; "--ip" | "--net") IP=$2 ;; "--shape") SHAPE=$2 ;; "--oldshape") OLDSHAPE=$2 ;; "--opt-bng-name") BNGNAME=$2 ;; "--mac") MAC=$2 ;; "--guest") GUEST=$2 ;; "--password") PASSWORD=$2 ;; "--oldblocked") OLDBLOCKED=$2 ;; "--blocked") BLOCKED=$2 ;; *) log_error "Unknown parameters: $1, $2" ;; esac shift 2 done log_error "DEBUG" case $ACTION in "stop") if [ -z ${LOGIN} ] then log_error "LOGIN is not defined" exit 1 fi if [ -z ${NAS} ] then log_error "NAS is not defined" exit 1 fi if [ -z ${IP} ] then log_error "IP is not defined" exit 1 fi if [ ${REASON} = 'changed' ] then if [ -z ${SHAPE} ] then log_error "SHAPE is not defined" exit 1 fi if [ -n ${OLDSHAPE} ] then log "Changing speed ${OLDSHAPE} => ${SHAPE}" echo "User-Name=${LOGIN}, Framed-IP-Address=${IP}, Filter-Id=${SHAPE}" | ${RADCLIENT} ${NAS}:${COA_PORT} coa ${COA_SECRET} >> ${LOG} fi else log "Logging off subscriber or blocked => ${REASON}" echo "User-Name=${LOGIN}, Framed-IP-Address=${IP}" | ${RADCLIENT} ${NAS}:${COA_PORT} disconnect ${COA_SECRET} >> ${LOG} fi ;; "isg-stop") echo "1" > /dev/null ;; "quota") echo "1" > /dev/null ;; "start") echo "1" > /dev/null ;; "edit") echo "1" > /dev/null ;; "off") echo "1" > /dev/null ;; "on") echo "1" > /dev/null ;; "create") echo "1" > /dev/null ;; "delete") echo "1" > /dev/null ;; *) log_error "Unknown action $action" ;; esac Edited April 27, 2016 by hsvt Вставить ник Quote
RG-45 Posted April 27, 2016 Author Posted April 27, 2016 (edited) В общем решили так : скрипт для ланбиллинга : #!/bin/bash # session pppoe by accel-ppp # # LOGIN=$2 echo terminate username ${LOGIN} | nc 10.0.17.2 2001 10.0.17.2 это IP acell-ppp не забываем прописать данный скрипт в настройках модуля радиуса. exit 0 Все работает !!! Пользуйтесь господа ! Edited April 27, 2016 by RG-45 Вставить ник Quote
s.lobanov Posted April 28, 2016 Posted April 28, 2016 RG-45 А чем вас традиционный способ(и даже можно сказать, универсальный) с PoD через radclient не устроил. Зачем нужно пользовать CLI-команды? Ну реально, PoD по User-Name будет работать не только с accel, но и со многими другим BRAS (хотя некоторые хотят чётко session-id вместо user-name) Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.