Jump to content

Recommended Posts

Posted (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 by RG-45
Posted

nc 10.0.17.2 2001

 

terminate username LOGIN

 

exit 0

эквивалентно

accel-cmd terminate username LOGIN

Поясните пожста. Вчем?

 

не занимайтесь скриптоонанизмом, юзайте DM (RFC3576)...

Я не нашел атрибута в словаре биллинга .

Posted

Я не нашел атрибута в словаре биллинга .

какого? и добавить ручками - не (если биллинг действительно его шлет но разрабы включить забыли)?

Posted

RG-45

это PoD-запрос, о нём написано в первом же ответе в этом топике. вы вообще читаете, что вам пишут?

Нет не читаю !!!! Я понимаю только картинки !!!! .....Травишь .... Конечно читаю .

Posted (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 by hsvt
Posted (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 by RG-45
Posted

RG-45

А чем вас традиционный способ(и даже можно сказать, универсальный) с PoD через radclient не устроил. Зачем нужно пользовать CLI-команды?

 

Ну реально, PoD по User-Name будет работать не только с accel, но и со многими другим BRAS (хотя некоторые хотят чётко session-id вместо user-name)

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.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.