Настройка BGBilling с RedBack SmartEdge (PPPOE)
Материал из BiTel WiKi
Версия от 11:56, 22 августа 2011; Mrustik (Обсуждение | вклад)
Конфиг RedBack. Допустим, абоненты у нас авторизуются в контексте ABON.
context ABON ! no ip domain-lookup ! # Интерфейс, к которому "биндятся" абоненты interface PPP multibind lastresort ip unnumbered loop1 pim sparse-mode passive ! # Интерфейс, который используется для общения с Radius-сервером interface loop0 loopback ip address 172.16.19.3/32 ip source-address radius ! interface loop1 loopback ip address 172.16.19.4/32 no logging console ! # Access-листы для разделения трафика на локальный и внешний policy access-list ABON-IN seq 10 permit ip any 194.XX.18.0 0.0.1.255 class LOCAL seq 20 permit ip any 193.XX.88.0 0.0.3.255 class LOCAL seq 30 permit ip any any class INET ! policy access-list ABON-OUT seq 10 permit ip 194.XX.18.0 0.0.1.255 any class LOCAL seq 20 permit ip 193.XX.88.0 0.0.3.255 any class LOCAL seq 30 permit ip any any class INET ! # Access-лист для абонентов, подключенных через Reject-To-Accept policy access-list NOAUTH seq 10 permit tcp any host 194.165.18.10 eq www class CLS-NORMAL seq 11 permit tcp any host 194.165.18.10 eq 8081 class CLS-NORMAL seq 20 permit tcp any host 194.165.18.3 eq www class CLS-NORMAL seq 30 permit udp any host 194.165.18.6 eq domain class CLS-NORMAL seq 40 permit tcp any any eq www class CLS-REDIRECT seq 50 permit ip any any class CLS-DROP ! # Профиль HTTP-редиректа для перенаправления отключенных по балансу абонентов на страницу с ошибкой. # ЧТобы в консоли ввести символ '?' - нажать ESC http-redirect profile NOAUTH url "http://billing.provider.ru/bgbilling/pubexecuter?module=dialup&action=RejectToAccept&mid=1" ! aaa authentication administrator local aaa authentication administrator maximum sessions 1 aaa authentication subscriber radius aaa accounting subscriber radius aaa maximum subscriber active 2000 radius accounting server 194.XX.18.10 encrypted-key F74636C614XXXXXX radius coa server 194.XX.18.10 encrypted-key 3DE489C93CDE23A40C98234BC8XXXXXX port 3799 ! radius server 194.165.18.10 encrypted-key F74636C614XXXXXX # Содержимое атрибута Nas-Ip-Address radius attribute nas-ip-address interface loop0 # Это необходимо для того, чтобы RedBack отправлял разные Nas-Port для каждой сессии. Иначе биллинг будет обрабатывать сессии некорректно radius attribute nas-port format session-info # Содержимое атрибута Nas-IP-Address radius attribute nas-identifier RedBack # Параметры для абонента по умолчанию. Могут переписываться через Radius-атрибуты. subscriber default qos policy policing DEFAULT-IN qos policy metering DEFAULT-OUT dns primary 194.165.18.6 ! ip route 0.0.0.0/0 context local # Полиси для абонентов. Параметры Rate и Burst переписываются через Radius-атрибуты qos policy DEFAULT-IN policing ip access-group ABON-IN ABON class LOCAL rate 100000 burst 12500000 class INET rate 100000 burst 12500000 rate-calculation exclude layer-2-overhead ! qos policy DEFAULT-OUT metering ip access-group ABON-OUT ABON class LOCAL rate 100000 burst 12500000 class INET rate 100000 burst 12500000 rate-calculation exclude layer-2-overhead # Конфиг порта port ethernet 2/2 no shutdown medium-type copper encapsulation dot1q # Включаем PPPOE-сервер в 100-м вилане dot1q pvc 100 encapsulation pppoe bind authentication pap chap context ABON maximum 2000
Конфиг Nas'а в биллинге:
# Атрибуты для задания скорости соединения attrset.2.title=1M attrset.2.attributes=Dynamic-QoS-Param=police-class-rate INET rate-absolute 1000;Dynamic-QoS-Param=police-class-burst INET 125000;Dynamic-QoS-Param=meter-class-rate INET rate-absolute 1000;Dynamic-QoS-Param=meter-class-burst INET 125000; attrset.3.title=2M attrset.3.attributes=Dynamic-QoS-Param=police-class-rate INET rate-absolute 2000;Dynamic-QoS-Param=police-class-burst INET 250000;Dynamic-QoS-Param=meter-class-rate INET rate-absolute 2000;Dynamic-QoS-Param=meter-class-burst INET 250000; # Пулы задаем отдельно для RedBack nas.pools.global=194.XX.19.1-194.XX.19.254; #числовые коды услуг времени, трафика входящего и исходящего nas.port_time.default.*=3 nas.port_traffic.default.*=1:COLLECTOR;2:COLLECTOR;8:COLLECTOR;9:COLLECTOR callback.support=0 #принудительный разрыв соединений на границе месяца month.break=1 #интервал между посылками на проверку либо сброс соединения в секундах nas.inspector.sleep_time=60 #максимальное число попыток сброса соединения nas.inspector.kill.max_messages=5 netflow.receive.from=194.XX.18.1 # Настройка CoA/PoD nas.inspector.class=bitel.billing.server.processor.PoDNASConnectionInspector #на какой порт слать PoD/CoA запросы nas.inspector.radius.port=3799 #на какой хост слать (если не указан - берется IP адреса NASа) nas.inspector.radius.host=172.16.19.3 #секрет для подписи пакетов (если не указан - берется секрет NASа) nas.inspector.radius.secret=XXXXXXXXXX #какие атрибуты добавлять в PoD/CoA запрос из сессии, если пустой параметр - высылаются все атрибуты nas.inspector.radius.attributes=Acct-Session-Id; #опции, относящиеся только к CoA пакетам #таймаут ожидания ответа в секундах ответа между попытками отправки пакета СoA nas.inspector.coa.timeout=5 #количество попыток отправить пакет CoA nas.inspector.coa.retries=2 #количество потоков отправки CoA пакетов nas.inspector.coa.threads=4 coa.log=1 drop.sleep.timeout=3600
Скрипт предобработки Nas'а в биллинге Вынос MAC адреса из поля Mac-Addr в Calling-Station-Id:
import bitel.billing.server.radius.*; attributes = request.getVendorAttributes( 2352, 145 ); for( it = attributes.iterator(); it.hasNext(); ) { ra = (RadiusAttribute)it.next(); value = ra.getStringValue(); if( value != null){ value = value.replace("-", "."); value = value.substring(0,2) + value.substring(3,8) + value.substring(9,14)+ value.substring(15); request.setStringAttribute( RadiusStandartAttributes.Calling_Station_Id, value ); } }