RG-45 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 Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
NiTr0 Posted April 26, 2016 не занимайтесь скриптоонанизмом, юзайте DM (RFC3576)... Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
kayot Posted April 26, 2016 nc 10.0.17.2 2001 terminate username LOGIN exit 0 эквивалентно accel-cmd terminate username LOGIN Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
RG-45 Posted April 26, 2016 nc 10.0.17.2 2001 terminate username LOGIN exit 0 эквивалентно accel-cmd terminate username LOGIN Поясните пожста. Вчем? не занимайтесь скриптоонанизмом, юзайте DM (RFC3576)... Я не нашел атрибута в словаре биллинга . Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
NiTr0 Posted April 26, 2016 Я не нашел атрибута в словаре биллинга . какого? и добавить ручками - не (если биллинг действительно его шлет но разрабы включить забыли)? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
roysbike Posted April 27, 2016 echo "User-Name=LOGIN" | radclient -x ip_bras:3799 disconnect пароль_accel Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
RG-45 Posted April 27, 2016 echo "User-Name=LOGIN" | radclient -x ip_bras:3799 disconnect пароль_accel Проясните что это ? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted April 27, 2016 RG-45 это PoD-запрос, о нём написано в первом же ответе в этом топике. вы вообще читаете, что вам пишут? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
RG-45 Posted April 27, 2016 RG-45 это PoD-запрос, о нём написано в первом же ответе в этом топике. вы вообще читаете, что вам пишут? Нет не читаю !!!! Я понимаю только картинки !!!! .....Травишь .... Конечно читаю . Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
hsvt 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 Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
RG-45 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 Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted April 28, 2016 RG-45 А чем вас традиционный способ(и даже можно сказать, универсальный) с PoD через radclient не устроил. Зачем нужно пользовать CLI-команды? Ну реально, PoD по User-Name будет работать не только с accel, но и со многими другим BRAS (хотя некоторые хотят чётко session-id вместо user-name) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...