Интеграция заключается в следующих шагах:
# Настройка сервисов / политик / профилей на оборудовании
# Настройка скрипта event_inc.sh на Ideco ACP для пересылки нужных команд
# Создание и настройка RADIUS-атрибутов в тарифах для пользователей
h2. Внимание\!
Все предоставленные примеры не обязательно являются рабочими, использовать их для настройки своего оборудования без понимания принципа действия - категорически запрещено.
Примеры предоставлены исключительно для понимания принципов работы Ideco ACP с сторонним оборудованием.
h2. Настройка оборудования
{code}
policy-map policy_in512kb
class class-default
police cir 528000 bc 96000 be 192000
conform-action transmit
exceed-action drop
policy-map policy_out512kb
class class-default
shape average 528000 5000 5000
policy-map policy_in1024kb
class class-default
police cir 1096000
conform-action transmit
exceed-action drop
policy-map policy_out1024kb
class class-default
shape average 1096000 10000 10000
policy-map policy_out2m
class class-default
shape average 2560000 20000 20000
policy-map policy_in2ml
class class-default
police cir 2096000 bc 393000 be 786000
conform-action transmit
exceed-action drop
policy-map policy_out2ml
class class-default
shape average 2096000 20000 20000
policy-map policy_in2m
class class-default
police cir 2560000
conform-action transmit
exceed-action drop
policy-map policy_in5m
class class-default
police cir 5120000
conform-action transmit
exceed-action drop
policy-map policy_in1024kb
class class-default
police cir 1096000
conform-action transmit
exceed-action drop
policy-map policy_in25m
class class-default
police cir 25600000
conform-action transmit
exceed-action drop
policy-map policy_out1024kb
class class-default
shape average 1096000 10000 10000
policy-map policy_in15m
class class-default
police cir 15360000
conform-action transmit
exceed-action drop
policy-map policy_in50M
class class-default
police cir 50000000
conform-action transmit
exceed-action drop
policy-map policy_out50M
class class-default
shape average 50000000 200000 200000
policy-map policy_out15m
class class-default
shape average 15360000 150000 150000
policy-map policy_in100M
class class-default
police cir 102400000
conform-action transmit
exceed-action drop
policy-map policy_in10m
class class-default
police cir 10240000
conform-action transmit
exceed-action drop
policy-map policy_out10m
class class-default
shape average 10240000 100000 100000
policy-map policy_out5m
class class-default
shape average 5120000 50000 50000
policy-map policy_out512kb
class class-default
shape average 528000 5000 5000
policy-map policy_out100M
class class-default
shape average 102500000 500000 500000
policy-map policy_out25m
class class-default
shape average 25600000 200000 200000
policy-map policy_in512kb
class class-default
police cir 528000 bc 96000 be 192000
conform-action transmit
exceed-action drop
{code}
h2. Настройка АСР (event_inc.sh)
{code}
#radius пример
selfkiller -30:TERM -50:KILL & disown -a
LOG_LEVEL=ALL
SENDER=$1; shift
EVENT=$1; shift
DATA=$@
for VAR in $DATA; do
[[ "$VAR" = *"="* ]] && eval ${VAR%%=*}=\'${VAR#*=}\'
done
LOG INFO "$SENDER $EVENT $DATA"
case "$EVENT" in
"balance_negative")
if [ "$nas_ip" != "0.0.0.0" ]; then
echo "User-Name=\"$login\",Cisco-Account-Info=\"S$ip\",Cisco-AVPair=\"subscriber:command=account-logoff\"" | radclient -x $nas_ip:1700 coa 322223
fi
true
;;
"balance_positive")
true
;;
"login")
true
;;
"logout")
if [ "$nas_ip" != "0.0.0.0" ]; then
echo "User-Name=\"$login\",Cisco-Account-Info=\"S$ip\",Cisco-AVPair=\"subscriber:command=account-logoff\"" | radclient -x $nas_ip:1700 coa 322223
fi
true
;;
"try_double_login")
if [ "$nas_ip" != "0.0.0.0" ]; then
echo "User-Name=\"$login\",Cisco-Account-Info=\"S$ip\",Cisco-AVPair=\"subscriber:command=account-logoff\"" | radclient -x $nas_ip:1700 coa 322223
fi
true
;;
"user_data_changed_before")
if [ "$nas_ip" != "0.0.0.0" ]; then
usleep 200
echo "User-Name=\"$login\",Cisco-Account-Info=\"S$ip\",Cisco-AVPair=\"subscriber:command=account-logoff\"" | radclient -x $nas_ip:1700 coa 322223
fi
true
;;
"period_closed")
true
;;
"user_data_changed")
true
;;
"rate_set")
if [ "$nas_ip" != "0.0.0.0" -a "$ceil_in" != "-1" -a "$ceil_out" != "-1" ]; then
echo "User-Name=\"$login\",Cisco-Account-Info=\"S$ip\",Cisco-AVPair+=\"ip:sub-qos-policy-in=policy_in${ceil_in}kb\",Cisco-AVPair+=\"ip:sub-qos-policy-out=policy_out${ceil_out}kb\"" | radclient -x $nas_ip:1700 coa 322223
fi
true
;;
*)
:
;;
esac
{code}
h2. Настройка тарифов
\#TODO
# Настройка сервисов / политик / профилей на оборудовании
# Настройка скрипта event_inc.sh на Ideco ACP для пересылки нужных команд
# Создание и настройка RADIUS-атрибутов в тарифах для пользователей
h2. Внимание\!
Все предоставленные примеры не обязательно являются рабочими, использовать их для настройки своего оборудования без понимания принципа действия - категорически запрещено.
Примеры предоставлены исключительно для понимания принципов работы Ideco ACP с сторонним оборудованием.
h2. Настройка оборудования
{code}
policy-map policy_in512kb
class class-default
police cir 528000 bc 96000 be 192000
conform-action transmit
exceed-action drop
policy-map policy_out512kb
class class-default
shape average 528000 5000 5000
policy-map policy_in1024kb
class class-default
police cir 1096000
conform-action transmit
exceed-action drop
policy-map policy_out1024kb
class class-default
shape average 1096000 10000 10000
policy-map policy_out2m
class class-default
shape average 2560000 20000 20000
policy-map policy_in2ml
class class-default
police cir 2096000 bc 393000 be 786000
conform-action transmit
exceed-action drop
policy-map policy_out2ml
class class-default
shape average 2096000 20000 20000
policy-map policy_in2m
class class-default
police cir 2560000
conform-action transmit
exceed-action drop
policy-map policy_in5m
class class-default
police cir 5120000
conform-action transmit
exceed-action drop
policy-map policy_in1024kb
class class-default
police cir 1096000
conform-action transmit
exceed-action drop
policy-map policy_in25m
class class-default
police cir 25600000
conform-action transmit
exceed-action drop
policy-map policy_out1024kb
class class-default
shape average 1096000 10000 10000
policy-map policy_in15m
class class-default
police cir 15360000
conform-action transmit
exceed-action drop
policy-map policy_in50M
class class-default
police cir 50000000
conform-action transmit
exceed-action drop
policy-map policy_out50M
class class-default
shape average 50000000 200000 200000
policy-map policy_out15m
class class-default
shape average 15360000 150000 150000
policy-map policy_in100M
class class-default
police cir 102400000
conform-action transmit
exceed-action drop
policy-map policy_in10m
class class-default
police cir 10240000
conform-action transmit
exceed-action drop
policy-map policy_out10m
class class-default
shape average 10240000 100000 100000
policy-map policy_out5m
class class-default
shape average 5120000 50000 50000
policy-map policy_out512kb
class class-default
shape average 528000 5000 5000
policy-map policy_out100M
class class-default
shape average 102500000 500000 500000
policy-map policy_out25m
class class-default
shape average 25600000 200000 200000
policy-map policy_in512kb
class class-default
police cir 528000 bc 96000 be 192000
conform-action transmit
exceed-action drop
{code}
h2. Настройка АСР (event_inc.sh)
{code}
#radius пример
selfkiller -30:TERM -50:KILL & disown -a
LOG_LEVEL=ALL
SENDER=$1; shift
EVENT=$1; shift
DATA=$@
for VAR in $DATA; do
[[ "$VAR" = *"="* ]] && eval ${VAR%%=*}=\'${VAR#*=}\'
done
LOG INFO "$SENDER $EVENT $DATA"
case "$EVENT" in
"balance_negative")
if [ "$nas_ip" != "0.0.0.0" ]; then
echo "User-Name=\"$login\",Cisco-Account-Info=\"S$ip\",Cisco-AVPair=\"subscriber:command=account-logoff\"" | radclient -x $nas_ip:1700 coa 322223
fi
true
;;
"balance_positive")
true
;;
"login")
true
;;
"logout")
if [ "$nas_ip" != "0.0.0.0" ]; then
echo "User-Name=\"$login\",Cisco-Account-Info=\"S$ip\",Cisco-AVPair=\"subscriber:command=account-logoff\"" | radclient -x $nas_ip:1700 coa 322223
fi
true
;;
"try_double_login")
if [ "$nas_ip" != "0.0.0.0" ]; then
echo "User-Name=\"$login\",Cisco-Account-Info=\"S$ip\",Cisco-AVPair=\"subscriber:command=account-logoff\"" | radclient -x $nas_ip:1700 coa 322223
fi
true
;;
"user_data_changed_before")
if [ "$nas_ip" != "0.0.0.0" ]; then
usleep 200
echo "User-Name=\"$login\",Cisco-Account-Info=\"S$ip\",Cisco-AVPair=\"subscriber:command=account-logoff\"" | radclient -x $nas_ip:1700 coa 322223
fi
true
;;
"period_closed")
true
;;
"user_data_changed")
true
;;
"rate_set")
if [ "$nas_ip" != "0.0.0.0" -a "$ceil_in" != "-1" -a "$ceil_out" != "-1" ]; then
echo "User-Name=\"$login\",Cisco-Account-Info=\"S$ip\",Cisco-AVPair+=\"ip:sub-qos-policy-in=policy_in${ceil_in}kb\",Cisco-AVPair+=\"ip:sub-qos-policy-out=policy_out${ceil_out}kb\"" | radclient -x $nas_ip:1700 coa 322223
fi
true
;;
*)
:
;;
esac
{code}
h2. Настройка тарифов
\#TODO