Cisco ISG (IPoE)

по сравнению с
Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (33)

просмотр истории страницы
Интеграция заключается в следующих шагах:
# Настройка сервисов / политик / профилей на оборудовании
# Настройка скрипта event_inc.sh на Ideco ACP для пересылки нужных команд
# Создание и настройка RADIUS-атрибутов в тарифах для пользователей

h2. Внимание\!

Все предоставленные примеры не обязательно являются рабочими, использовать их для настройки своего оборудования без понимания принципа действия - категорически запрещено. не рекомендуется.

Примеры предоставлены исключительно для понимания принципов работы Ideco ACP Carbon Billing с сторонним оборудованием.

*Примечание.* Загрузка сервисов через RADIUS также возможна через псевдопользователей, но мы не рекомендуем ей пользоваться тк в случае ошибки или потери радиус пакета пользователь может оказаться подключенным без сервиса и без ограничения скорости. Поэтому мы всегда рекомендуем использовать статические сервисы.

Оборудование нельзя считать запущенным в эксплуатацию, если не все пункты [плана внедрения|http://asrdoc.ideco.ru/pages/viewpage.action?pageId=29033016] завершены успешно



h2. Настройка оборудования (Cisco 7204 с модулем ISG)
{code}
  service-policy output 512OUT
!
policy-map type service SERVICE1000
service-policy input IN1000
service-policy output OUT1000
!
policy-map type service SERVICE1500
service-policy input IN1500
service-policy output OUT1500
!
policy-map type service SERVICE2000
service-policy input IN2000
service-policy output OUT2000
!
policy-map type control RULEISG
 class type control USER_DROP event timed-policy-expiry
  2 service-policy type service name 512k_DEF
!
policy-map 2000kOUT IN2000
  class NOT_SHAPE_TRF
    police cir 2000000 bc 375000 be 750000 conform-action transmit exceed-action drop violate-action drop
!
policy-map 2200kIN OUT2000
  class NOT_SHAPE_TRF
    police cir 2200000 bc 412500 be 825000 conform-action transmit exceed-action drop violate-action drop
policy-map 300kOUT
  class NOT_SHAPE_TRF
    police cir 300000 bc 56250 be 112500 conform-action transmit exceed-action drop violate-action drop
policy-map 8000kIN
  class NOT_SHAPE_TRF
    police cir 8000000 bc 1500000 be 3000000 conform-action transmit exceed-action drop violate-action drop
policy-map 1000kOUT
  class NOT_SHAPE_TRF
    police cir 1000000 bc 187500 be 375000 conform-action transmit exceed-action drop violate-action drop
policy-map 500kIN
  class NOT_SHAPE_TRF
    police cir 500000 bc 93750 be 187500 conform-action transmit exceed-action drop violate-action drop
policy-map 1100kIN
  class NOT_SHAPE_TRF
    police cir 1100000 bc 206250 be 412500 conform-action transmit exceed-action drop violate-action drop
policy-map 3000kOUT
  class NOT_SHAPE_TRF
    police cir 3000000 bc 562500 be 1125000 conform-action transmit exceed-action drop violate-action drop
policy-map 8000kOUT
  class NOT_SHAPE_TRF
    police cir 8000000 bc 1500000 be 3000000 conform-action transmit exceed-action drop violate-action drop
policy-map 1024IN
  class class-default
    police cir 1024000 bc 192000 be 384000 conform-action transmit exceed-action drop violate-action drop
policy-map 600kOUT
  class NOT_SHAPE_TRF
    police cir 600000 bc 112500 be 225000 conform-action transmit exceed-action drop violate-action drop
policy-map 3000kIN
  class NOT_SHAPE_TRF
    police cir 3000000 bc 562500 be 1125000 conform-action transmit exceed-action drop violate-action drop
policy-map 50kIN
  class NOT_SHAPE_TRF
    police cir 50000 bc 9375 be 18750 conform-action transmit exceed-action drop violate-action drop
policy-map 512OUT
  class class-default
    police cir 512000 bc 96000 be 192000 conform-action transmit exceed-action drop violate-action drop
policy-map 2000kIN
  class NOT_SHAPE_TRF
    police cir 2000000 bc 375000 be 750000 conform-action transmit exceed-action drop violate-action drop
!
policy-map 4000kIN IN1500
  class NOT_SHAPE_TRF
    police cir 4000000 1500000 bc 750000 281250 be 1500000 562500 conform-action transmit exceed-action drop violate-action drop
!
policy-map 300kIN OUT1500
  class NOT_SHAPE_TRF
    police cir 300000 bc 56250 be 112500 conform-action transmit exceed-action drop violate-action drop
policy-map 256IN
  class class-default
    police cir 256000 bc 48000 be 96000 conform-action transmit exceed-action drop violate-action drop
policy-map 256OUT
  class class-default
    police cir 256000 bc 48000 be 96000 conform-action transmit exceed-action drop violate-action drop
policy-map 1500kIN
  class NOT_SHAPE_TRF
    police cir 1500000 bc 281250 be 562500 conform-action transmit exceed-action drop violate-action drop
!
policy-map 1024OUT IN1000
  class class-default
    police cir 1024000 bc 192000 be 384000 conform-action transmit exceed-action drop violate-action drop
policy-map 600kIN
  class NOT_SHAPE_TRF
    police cir 600000 bc 112500 be 225000 conform-action transmit exceed-action drop violate-action drop
policy-map 1100kOUT
  class NOT_SHAPE_TRF
    police cir 1100000 bc 206250 be 412500 conform-action transmit exceed-action drop violate-action drop
policy-map 512IN
  class class-default
    police cir 512000 bc 96000 be 192000 conform-action transmit exceed-action drop violate-action drop
policy-map 1000kIN
  class NOT_SHAPE_TRF
    police cir 1000000 bc 187500 be 375000 conform-action transmit exceed-action drop violate-action drop
!
policy-map 2500kOUT OUT1000
  class NOT_SHAPE_TRF
    police cir 2500000 1000000 bc 468750 187500 be 937500 375000 conform-action transmit exceed-action drop violate-action drop
policy-map 50kOUT
  class NOT_SHAPE_TRF
    police cir 50000 bc 9375 be 18750 conform-action transmit exceed-action drop violate-action drop
policy-map 2200kOUT
  class NOT_SHAPE_TRF
    police cir 2200000 bc 412500 be 825000 conform-action transmit exceed-action drop violate-action drop
policy-map 150kOUT
  class NOT_SHAPE_TRF
    police cir 150000 bc 28125 be 56250 conform-action transmit exceed-action drop violate-action drop
policy-map 2500kIN
  class NOT_SHAPE_TRF
    police cir 2500000 bc 468750 be 937500 conform-action transmit exceed-action drop violate-action drop
policy-map 500kOUT
  class NOT_SHAPE_TRF
    police cir 500000 bc 93750 be 187500 conform-action transmit exceed-action drop violate-action drop
policy-map 4000kOUT
  class NOT_SHAPE_TRF
    police cir 4000000 bc 750000 be 1500000 conform-action transmit exceed-action drop violate-action drop
policy-map 150kIN
  class NOT_SHAPE_TRF
    police cir 150000 bc 28125 be 56250 conform-action transmit exceed-action drop violate-action drop
policy-map 1500kOUT
  class NOT_SHAPE_TRF
    police cir 1500000 bc 281250 be 562500 conform-action transmit exceed-action drop violate-action drop
{code}



h3. Параметры
h3. Команды для диагностики сервисов и профилей на Cisco (нужны только для первоначальной настройки).

* NAS - 192.168.7.2
* IP пользователя - 192.168.7.15
* Логин пользователя - user1234
* Пароль cisco - 1234


{code}
repaidReauthReason 9, 253 Control-Info  QR1
echo "User-Name=\"192.168.7.15\",cisco-avpair=\"subscriber:command=service-status-query\",cisco-avpair+=\"subscriber:service-name=PREPAID_INT2200\",Cisco-Account-Info=\"S192.168.7.15\"" | radclient -x 192.168.7.2:1700 coa 1234
echo "User-Name=\"user1234\",cisco-avpair=\"subscriber:command=account-logon\",Cisco-Account-Info=\"S10.10.0.1\",Idle-Timeout=200" | /usr/local/bin/radclient -x 10.10.10.10:1700 coa ciscopassword
echo "User-Name=\"192.168.7.15\",Cisco-Account-Info=\"S192.168.7.15\",cisco-avpair=\"subscriber:command=profile-status-query\"" | radclient -x 192.168.7.2:1700 coa 1234
echo "User-Name=\"192.168.7.15\",Cisco-Account-Info=\"S192.168.7.15\",cisco-avpair=\"subscriber:command=account-profile-status-query\"" | radclient -x 192.168.7.2:1700 coa 1234
echo "User-Name=\"$ip_addr\",cisco-avpair=\"subscriber:command=service-status-query\",\
cisco-avpair+=\"subscriber:service-name=PREPAID_INT2200\",\
Cisco-Account-Info=\"S$ip_addr\"" | radclient -x $nas_ip:1700 coa $radius_secret
echo "User-Name=\"$ip_addr\",Cisco-Account-Info=\"S$ip_addr\",\
cisco-avpair=\"subscriber:command=profile-status-query\"" | \
radclient -x $nas_ip:1700 coa $radius_secret
echo "User-Name=\"$ip_addr\",Cisco-Account-Info=\"S$ip_addr\",\
cisco-avpair=\"subscriber:command=account-profile-status-query\"" | \
radclient -x $nas_ip:1700 coa $radius_secret
{code}


{code}
ip=192.168.7.15
echo "User-Name=\"$ip\",Cisco-Account-Info=\"S$ip\",cisco-avpair+=\"subscriber:service-name=NOMONEY\",cisco-avpair+=\"subscriber:command=activate-service\"" | radclient -x 192.168.7.2:1700 coa 1234
echo "User-Name=\"$ip\",Cisco-Account-Info=\"S$ip\",cisco-avpair+=\"subscriber:service-name=NOMONEY\",\
cisco-avpair+=\"subscriber:command=activate-service\"" | radclient -x $nas_ip:1700 coa $radius_secret
{code}


{code}
ip=192.168.7.15
echo "User-Name=\"$ip\",Cisco-Account-Info=\"S$ip\",cisco-avpair+=\"subscriber:service-name=L4REDIRECT-ATT\",cisco-avpair+=\"subscriber:command=activate-service\"" | radclient -x 192.168.7.2:1700 coa 1234
echo "User-Name=\"$ip\",Cisco-Account-Info=\"S$ip\",cisco-avpair+=\"subscriber:service-name=L4REDIRECT-ATT\",\
cisco-avpair+=\"subscriber:command=activate-service\"" | radclient -x $nas_ip:1700 coa $radius_secret
{code}

h3. Пример event_inc.sh


{code}
/usr/bin/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")
    LOG INFO "event type: $EVENT $DATA"
echo "User-Name=\"$ip_addr\",Cisco-Account-Info=\"S$ip_addr\",\
cisco-avpair+=\"subscriber:service-name=L4REDIRECT-ATT\",\
cisco-avpair+=\"subscriber:command=deactivate-service\"" | \
radclient -x $nas_ip:1700 coa $radius_secret     
echo "User-Name=\"$ip_addr\",Cisco-Account-Info=\"S$ip_addr\",\
cisco-avpair+=\"subscriber:service-name=L4REDIRECT-ATT\",\
cisco-avpair+=\"subscriber:command=activate-service\"" | \
radclient -x $nas_ip:1700 coa $radius_secret
    ;;

    "balance_positive")
    LOG INFO "event type: $EVENT $DATA"
    sendsms "ГородТелеком%20доступ%20разрешен"
    ;;

    "login")
echo "User-Name=\"$login\",cisco-avpair=\"subscriber:command=account-logon\",Cisco-Account-Info=\"S$ip\",Idle-Timeout=200" | radclient -x $nas_ip:1700 coa $radius_secret
;;

    "logout")
    LOG INFO "event type: $EVENT $DATA"
echo "User-Name=\"$login\",Cisco-Account-Info=\"S$ip\" | radclient -x $nas_ip:1700 disconnect $radius_secret
# или echo "User-Name=\"$login\",cisco-avpair=\"subscriber:command=account-logoff\",Cisco-Account-Info=\"S$ip\",Idle-Timeout=200" | radclient -x $nas_ip:1700 coa $radius_secret
  ;; 

  period_closed | user_data_changed )
    LOG INFO "event type: $EVENT $DATA"
    ;;

    "rate_set" )
echo "User-Name=\"$ip_addr\",Cisco-Account-Info=\"S$IP_ADDR\",\
cisco-avpair+=\"subscriber:service-name=SERVICE${ceil_in}\",\
cisco-avpair+=\"subscriber:command=deactivate-service\" | \
radclient -x $nas_ip:1700 coa $radius_secret
echo "User-Name=\"$ip_addr\",Cisco-Account-Info=\"S$IP_ADDR\",\
cisco-avpair+=\"subscriber:service-name=SERVICE${ceil_in}\",\
cisco-avpair+=\"subscriber:command=activate-service\" | \
radclient -x $nas_ip:1700 coa $radius_secret
    ;;

    *)
    :
    ;;
esac
{code}

h2. Настройка тарифа в Carbon Manager

RADIUS-параметры: необходимо передавать имя сервиса, генерируемое с помощью $ceil_in и команду _activate-service_ при авторизации пользователей. !Снимок-Тарифный план.png|border=1!

Настраиваем ступенчатый тариф

!ciscoisg.ruleset.png|border=1!

h2. Добавление в список маршрутизаторов

!ciscoisg.hardware.png|border=1!