Cisco ASR 1000 (PPPoE)

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

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

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

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

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

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

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

h2. Настройка оборудования

h4. Политики

# Установить скорость входящего трафика на 512кб/сек
# Установить скорость исходящего трафика на 512кб/сек
# Установить скорость входящего трафика на 1024кб/сек
# Установить скорость исходящего трафика на 1024кб/сек


{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
{code}

h4. Radius сервер

policy-map policy_out2m
class class-default
shape average 2560000 20000 20000

{code}
radius-server host IP_адрес_carbon_billing auth-port 1812 acct-port 1813
{code}

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
h2. Настройка Carbon Billing (event_inc.sh)

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

      [[ "$VAR" = *"="* ]] && eval ${VAR%%=*}=\'${VAR#*=}\'
done

[ "$nas_ip" = "0.0.0.0" ] && exit 0
      
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
   logout | try_double_login | user_data_changed_before | user_data_changed_before | balance_negative )
      echo "User-Name=\"$login\",Cisco-Account-Info=\"S$ip\"" | radclient -x $nas_ip:1700 disconnect cscpswd
#или
# echo "User-Name=\"$ip\",Cisco-Account-Info=\"S$ip\",cisco-avpair=\"subscriber:command=account-logoff\"" | radclient -x $nas_ip:1700 сoa cscpswd
     ;;

    rate_set )
    echo "User-Name=\"$login\",Cisco-Account-Info=\"S$ip\",Cisco-AVPair+=\"ip:sub-qos-policy-in=policy_in${ceil_in}\",\
Cisco-AVPair+=\"ip:sub-qos-policy-out=policy_out${ceil_out}\"" | radclient -x $nas_ip:1700 coa scspswd
    ;;
    "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. Настройка тарифов

В настройке тарифа необходимо будет указать максимальную скорость для пользователей:

!ciscoasr1000.512.ruleset.png|border=1!
А также RADIUS-параметры
!ciscoasr1000.tarif.png|border=1!

!ciscoasr1000.radius.512.png|border=1!
h2. Настройка RADIUS-атрибутов

!ciscoasr.radius.png|border=1!

"Ступенчатые тарифы" работают за счёт использования в RADIUS-параметрах и event_inc.sh переменных $ceil_in, $ceil_out, $rate_in и $rate_out.

Скорость изменяется при помощи события rate_set (при выполнении условия описанного в тарифе) или при авторизации пользователя.

h2. Добавление оборудования

В Carbon Manager необходимо добавить Cisco ASR 1000 в список маршрутизаторов ( вкладка маршрутизаторов \-> добавить ).

!ciscoasr.hardware.png|border=1!

h2. Настройка Netflow 

Затем необходимо указать на Cisco IP адрес и порт (по умолчанию 9996) на которых доступен Netflow-коллектор Carbon Billing

Проверить что пакеты проходят можно с помощью

{code}
tcpdump -nvi any port 9996
{code}