Table of Contents |
---|
Возможности
Поддержка авторизации и аккаунтинга
Поддержка нескольких сервисов тарифного плана
Пользовательский портал авторизации и управления акаунтом
Перенаправление должников на портал с уведомлением о израсходованном балансе
Турборежимы. Возможность индивидуального включения, отключения, блокировки
Фильтры негативного депозита с возможностью присвоение отдельного сервиса для пользователей с негативным депозитом
Авторизация на основе данных DHCP сервера для использования в многосегментных сетях когда MAK адрес недоступен для ISG
ISG Авторизация пользователя
При подключении пользователя к интернету - NAS (Cisco ISG) отправляет запрос на авторизацию к RADIUS, если RADIUS не находит идентификатор пользователя (IP или MAC), тогда пользователя перенаправляет на портал. Там он нажимает кнопку Авторизироваться, система через авторизатор ищет его идентификатор, если он не прописан в поле CID, прописывает его туда, и отправляет запрос авторизировать сессию на Cisco ISG. После получения запроса на повторную авторизацию Cisco ISG отправляет повторно запрос на RADIUS с идентификатором пользователя (IP или MAC) и RADIUS авторизирует его. Идентификатор пользователя прописывается в поле CID.
Если используется многосегментная сеть и Cisco ISG не может идентифицировать MAC клиента, а отправляет только IP, то, в таком случае, ABillS может автоматически определять и авторизировать пользователей по MAC адресу исходя из данных DHCP сервера.
После авторизации абонента Cisco ищет параметры сервиса абонента Cisco-Service-Info=«ATP_10_0_15» если данные о сервисе не найдены в кеше системы отправляется запрос на радиус с логинов в виде названия сервиса TP_10_0_15 (User-Name=TP_10_0_15). На данный запрос приходят параметры сервиса абонента.
Warning |
---|
Будьте внимательны при изменении параметров скорости в тарифном плане нужно почистить кеш сессий в Cisco, иначе будут присваиваться старые настройки сессий. |
Классы трафика
При необходимости система может вести учёт и разделение трафика на разные классы Internet, UA-IX, город и т д.
Для включения данной возможности оператору следует завести классы трафика в биллинге.
При запросе сервиса для тарифного плана 10 и класса трафика 1 (UA-IX) с пропускной скоростью (640kbit/500kbit) RADIUS отправляет следующие параметры:
Code Block | ||
---|---|---|
| ||
Cisco-Service-Info = QU;640000;80000;160000;D;500000;62500;125000;,
cisco-avpair += ip:traffic-class=input access-group name ACL_IN_INTERNET_1 priority 200,
cisco-avpair += ip:traffic-class=output access-group name ACL_OUT_INTERNET_1 priority 200,
cisco-avpair += ip:traffic-class=out default drop,
cisco-avpair += ip:traffic-class=in default drop,
cisco-avpair += subscriber:accounting-list=BH_ACCNT_LIST_1 |
ACL_IN_INTERNET_1 - является аксеслистом с указанными сетями для данного класса трафика и с более низким приоритетом чем в глобального трафика.
BH_ACCNT_LIST_1 - является меткой аккаунтинга.
Авторегистрация абонента
При первом подключении абонента перенаправляет на «Пользовательский портал». Абонент заходит в личный кабинет.
При входе в личный кабинет система идентифицирует сессию абонента отправляет RADIUS CoA на сервер доступа. Если сессии найдена, абоненту предлагается зарегистрировать MAC для дальнейшего пользования услугой Internet, если сессия абонента не найдена - на коммутаторе система предупреждает об этом абонента.
Если сессия найдена абонент нажимает кнопку Активировать аккаунт.
С момента нажатия кнопки активируются сервисы абонента и система предоставляет ему доступ к интернету. Если абонент изменил MAC адрес, ему нужно по-новому пройти процедуру авторегистрации.
ISG Errors
Для более эффективной работы службы поддержки были внедрены следующие коды ошибок возникающих при работе клиента с пользовательским порталом.
ISG Errors | ||
---|---|---|
Код | Ошибка | Решение |
911 | Not exist user ID (MAC or IP) on Cisco ISG | Check IP/MAC on Cisco ISG NAS |
912 | DHCP Error. Can't find User IP in DHCP server | Check IP in: Monitoring→DHCP DHCP leases file leases2db.pl |
913 | Not registred IP Address. Can't find your NAS | Add user IP to NAS IP Pools |
914 | Negative Deposit | User have negative deposit and can't use service |
915 | Service Disabled | Service is disabled for user by Administrator |
916 | Account Disabled | Account is disabled for user by Administrator |
917 | Not Active Не активизирована услуга | Услуга не включена |
Ошибки включения сервиса
Service Activate Errors | ||
---|---|---|
100 | Unknow error | Unknow error Возможно Вы зашли в кабинет не с тем IP под которым подключился абонент |
101 | Turbo mode enable Error | Error in TURBO MODE activation process |
102 | User activation Error | System can't add user IP/MAC to CID field |
103 | IP Discovery mode failed. Unknown error | Can't add user IP to Dhcphosts |
104 | IP Discovery mode failed. Dublicate IP/MAC | Some of parameters Exists in Dhcphosts table |
106 | No responce from CoA server 'xxx.xxx.xxx.xxx' | Нет определения статуса сессии. Запрос управления CoA не проходит |
112 | DHCP $_ERROR MAC: $_NOT_EXIST IP: 'xxx.xxx.xxx.xxx' | Система не может определить MAC адрес абонента. Проверьте присутствует ли адрес в журнале /Мониторинг/ |
114 | $ERR_IP_ADDRESS_CONFLICT | Конфликт адресов. адрес прописан статически на другом абоненте |
118 | $_ERROR: Dublicate | Попытка добавить уже существующий адрес |
119 | $_ERROR: DHCP add hosts error | Другая ошибка добавления |
120 | $_ERROR: Can't find assign network IP: 'xxx.xxx.xxx.xxx' | Нельзя найти гостевую сеть для определения рабочей сети. Смотрите параметр $conf{INTERNET_IP_DISCOVERY} на предмет присутствия сети |
121 | Not active Не активизирован | MAC абонента не активизирован или отличается от активизированного в системе. Нужно переактивизировать MAC абонента |
Настройка Cisco
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
version 12.2
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname ISG-1
!
boot-start-marker
boot-end-marker
!
enable secret 5 $1$WWW/$4otH.1GYuWkFaQp25MJ.V1
!
aaa new-model
!
!
aaa group server radius ISG-RADIUS
server 10.0.0.1 auth-port 1812 acct-port 1813
!
aaa authentication login default group tacacs+ local
aaa authentication login ISG-AUTH-1 group ISG-RADIUS
aaa authorization config-commands
aaa authorization exec default group tacacs+ local
aaa authorization commands 15 default group tacacs+ local
aaa authorization network ISG-AUTH-1 group ISG-RADIUS
aaa authorization subscriber-service default local group ISG-RADIUS
aaa accounting update periodic 1 jitter maximum 0
aaa accounting commands 15 default start-stop group tacacs+
aaa accounting network ISG-AUTH-1 start-stop group ISG-RADIUS
!
!
!
!
! coa interface
aaa server radius dynamic-author
client 10.0.0.1
server-key isgcontrol
!
aaa session-id common
clock timezone AZST 5
ip subnet-zero
!
!
ip dhcp relay information policy keep
ip dhcp relay information trust-all
!
ip cef
ip domain name mydomain.com
ip ssh version 2
!
!
!
multilink bundle-name authenticated
!
!
archive
log config
hidekeys
username letsac privilege 15 secret 5 $1$jHQz$bkaihoHMi6.Eq4ifYnUgH/
!
redirect server-group REDIRECT_NOPAY
server ip 10.0.0.1 port 80
class-map type traffic match-any CLASS-TO-REDIRECT
match access-group input 197
match access-group output 197
!
class-map type control match-all ISG-IP-UNAUTH
match timer UNAUTH-TIMER
match authen-status unauthenticated
!
policy-map type service LOCAL_L4R
ip access-group 197 in
ip access-group 197 out
1 class type traffic CLASS-TO-REDIRECT
redirect to group REDIRECT_NOPAY
!
!
policy-map type control ISG-CUSTOMERS-POLICY
class type control ISG-IP-UNAUTH event timed-policy-expiry
1 service disconnect
!
class type control always event quota-depleted
1 set-param drop-traffic FALSE
!
class type control always event credit-exhausted
1 service-policy type service name LOCAL_L4R
!
class type control always event session-start
10 authorize aaa list ISG-AUTH-1 password ISG identifier source-ip-address
20 set-timer UNAUTH-TIMER 1
30 service-policy type service name SERVICE_L4R
!
class type control always event session-restart
10 authorize aaa list ISG-AUTH-1 password ISG identifier source-ip-address
20 set-timer UNAUTH-TIMER 1
30 service-policy type service name SERVICE_L4R
!
class type control always event account-logon
10 authenticate aaa list ISG-AUTH-1
20 service-policy type service unapply name SERVICE_L4R
!
interface GigabitEthernet0/1.40
description SUBSCRIBERS SUBNET 10.0.0.2/24
encapsulation dot1Q 40
ip dhcp relay information trusted
ip address 10.0.0.2 255.255.255.0
ip helper-address 10.0.0.1
service-policy type control ISG-CUSTOMERS-POLICY
ip subscriber routed
initiator unclassified ip-address
!
logging trap notifications
logging origin-id hostname
logging 10.0.0.1
logging host 10.0.0.1 transport udp port 6032
!Billing
access-list 195 permit ip host 10.0.0.1 any
access-list 195 permit ip any host 10.0.0.1
access-list 195 deny ip any any
! Without billing
access-list 196 deny ip host 10.0.0.1 any
access-list 196 deny ip any host 10.0.0.1
access-list 196 permit ip any any
! Redirect rules
access-list 197 permit tcp any any eq www
access-list 197 permit tcp any eq www any
access-list 197 permit udp any any eq domain
access-list 197 permit udp any eq domain any
access-list 197 deny ip any any
! Acces rule for guest users
access-list 198 permit tcp any any eq www
access-list 198 permit tcp any eq www any
access-list 198 permit udp any any eq domain
access-list 198 permit udp any eq domain any
access-list 198 permit tcp any any eq 9443
access-list 198 permit tcp any eq 9443 any
access-list 198 deny ip any any
!
radius-server attribute 44 include-in-access-req
radius-server attribute 44 extend-with-addr
radius-server attribute 8 include-in-access-req
radius-server attribute 32 include-in-accounting-req
radius-server attribute 55 include-in-acct-req
radius-server attribute 31 mac format unformatted
radius-server host 10.0.0.1 auth-port 1812 acct-port 1813 key radisg
radius-server vsa send cisco-nas-port
radius-server vsa send accounting
radius-server vsa send authentication
! |
RADIUS Server | 10.0.0.1 |
---|---|
WEB server | 10.0.0.1 |
DHCP server | 10.0.0.1 |
Code Block | ||||
---|---|---|---|---|
| ||||
aaa authentication ppp PPPoE group ISG-RADIUS
aaa authorization network PPPoE group ISG-RADIUS
aaa accounting network PPPoE start-stop group ISG-RADIUS
aaa accounting delay-start all
aaa accounting update periodic 1
!
aaa server radius dynamic-author
client 10.0.0.1
server-key 7 131612111909102922372B3C
port 3799
auth-type any
!
bba-group pppoe PPPoE
virtual-template 1
sessions per-mac limit 2 ! Сделано именно так, чтобы сессия пересоздавалась, не ожидая пока Циска убьет старую сессию
sessions per-vlan limit 1000
sessions auto cleanup
! Client interface
interface Port-channel1
description To-SW-Core
no ip address
pppoe enable group PPPoE
!
interface Virtual-Template1
mtu 1492
ip unnumbered Loopback1
no ip proxy-arp
ip nat inside
ip verify unicast source reachable-via rx
ip tcp adjust-mss 1452
no logging event link-status
peer default ip address pool default
keepalive 30 4
ppp mtu adaptive
ppp authentication chap PPPoE
ppp authorization PPPoE
ppp accounting PPPoE
ppp ipcp dns 8.8.8.8
ppp ipcp mask 255.255.255.255
ppp ipcp address unique
ppp timeout idle 2592000
|
Настройка сервера доступа в системе ABillS
Файл настройки config.pl
Code Block | ||||
---|---|---|---|---|
| ||||
$AUTH{cisco_isg} = 'Mac_auth2';
$ACCT{cisco_isg} = 'Acct2'; |
Code Block | ||||
---|---|---|---|---|
| ||||
$conf{INTERNET_ISG}=1; |
$conf{ISG_SERVICES}='NTURBO_SPEED1;NTURBO_SPEED1;ABILLING_ACCESS'; | Описание дополнительных сервисов авторизации. Первая буква сигнализирует запускать ли сервис при старте сессии (A) |
---|---|
$conf{ISG_ACCOUNTING_GROUP}='ISG-AUTH-1'; | Аккаунтинг группа. По умолчанию ISG-AUTH-1 |
$conf{INTERNET_ISG}=1; | При использовании Freeradius DHCP сессии для DHCP вести только в лизес мониторинге |
$conf{DHCP_LEASES_NAS}='NAS_ID'; | Список серверов которые используются для ведения dhcp leases. Данная опция указывается если для выдачи ISG IP используется ABillS Freeradius DHCP |
$conf{INTERNET_ISG_KILL_WITH_SID}=1; | Скидывать сессии используя RADIUS User-Name + Acct-Session-Id по умолчанию используется RADIUS User-Name + Framed-IP-Address |
Настройка cервера доступа через меню Настройка>Сервер доступа
IP: | IP адрес маршрутизатора |
---|---|
Название: | Название |
Тип: | указать тип: cisco_isg |
Управление
IP:PORT: | адрес и порт для отправки RADIUS CoA команд. (По умолчанию 1700) |
---|---|
Пароль: | пароль для отправки RADIUS CoA команд |
Проверяем состояние сессии на роутере:
Code Block | ||
---|---|---|
| ||
sh sss session |
Получаем:
Code Block | ||
---|---|---|
| ||
Current Subscriber Information: Total sessions 1
Uniq ID Interface State Service Identifier Up-time
179 IP authen Local Term 123.123.244.194 00:16:27 |
Более детальная информация о трафике:
Code Block | ||
---|---|---|
| ||
sh sss session detail |
Получаем:
Code Block | ||
---|---|---|
| ||
Session inbound features:
Feature: Prepaid Idle Timeout
Timeout configuration: 120 (seconds)
Feature: Prepaid Volume Monitor
Threshold:999999 - Quota:1000000
Usage(since last update):161828 - Total:161828
Current states: Start
Session outbound features:
Feature: Prepaid Idle Timeout
Timeout configuration: 120 (seconds)
Feature: Prepaid Volume Monitor
Threshold:999999 - Quota:1000000
Usage(since last update):161828 - Total:161828
Current states: Start
Configuration sources associated with this session:
Service: PREPAID_INTERNET, Active Time = 00:16:39 |
Code Block | ||||
---|---|---|---|---|
| ||||
cle sss session all |
Code Block | ||||
---|---|---|---|---|
| ||||
sh redirect translations |
ABillS Console
Удобный интерфейс отслеживания и мониторинг сессий абонентов непосредственно на Cisco
Меню Настройка>Сервер доступа>Активные сессии
Информация по сессии:
Также доступны команды
Проверки лога
Просмотр версии маршрутизатора
Просмотр конфигурации
Информация по интерфейсах
Для получения информации используется rsh протокол. Для использования нужно rsh доступ на Cisco для пользователя abills_admin (под которым работает веб сервер).
Code Block | ||||
---|---|---|---|---|
| ||||
ip rcmd rsh-enable
no ip rcmd domain-lookup
ip rcmd remote-host abills_admin 10.88.88.1 root enable 15
username abills_admin privilege 15 nopassword
#Также возможно нужно будет добавить telnet
line vty 0 4
transport input telnet ssh
transport output ssh |
Тестирование
Code Block |
---|
rsh -l abills_admin 10.88.88.10 "show run" |
RADIUS Debug
10.0.0.2 адрес CISCO ISG
10.11.11.1 адрес клиента
Пример гостевого доступа абонента
Code Block | ||||
---|---|---|---|---|
| ||||
rad_recv: Access-Request packet from host 10.0.0.2 port 1645, id=178, length=121
User-Name = "10.11.11.1"
User-Password = "ISG"
NAS-Port-Type = Virtual
Cisco-NAS-Port = "0/0/1/40"
NAS-Port = 0
NAS-Port-Id = "0/0/1/40"
Service-Type = Outbound-User
NAS-IP-Address = 10.0.0.2
Acct-Session-Id = "3ED4EBBB00057216" |
Code Block | ||||
---|---|---|---|---|
| ||||
Sending Access-Reject of id 178 to 10.0.0.2 port 1645
Reply-Message = "User Not Exist '169.254.6.231' /0" |
Code Block | ||||
---|---|---|---|---|
| ||||
rad_recv: Access-Request packet from host 10.0.0.2 port 1645, id=179, length=119
User-Name = "SERVICE_L4R"
User-Password = "cisco"
NAS-Port-Type = Virtual
Cisco-NAS-Port = "0/0/1/40"
NAS-Port = 0
NAS-Port-Id = "0/0/1/40"
Service-Type = Outbound-User
NAS-IP-Address = 10.0.0.2
Acct-Session-Id = "3ED4EBBB00057216" |
Code Block | ||||
---|---|---|---|---|
| ||||
Sending Access-Accept of id 179 to 10.0.0.2 port 1645
Cisco-AVPair += "ip:l4redirect=redirect list 197 to group REDIRECT_NOPAY"
Cisco-AVPair += "traffic-class=input access-group 198"
Cisco-AVPair += "traffic-class=output access-group 198"
Cisco-AVPair += "ip:traffic-class=out default drop"
Cisco-AVPair += "ip:traffic-class=in default drop"
Idle-Timeout = 600 |
Пример PPPoE авторизации
Code Block | ||||
---|---|---|---|---|
| ||||
rad_recv: Access-Request packet from host 10.0.0.2 port 1645, id=1179, length=119
Framed-Protocol = PPP
User-Name = "n9351779"
CHAP-Password = 0x013d75d54fca0f2f4f189a03a1816b77bf
NAS-Port-Type = PPPoEoVLAN
NAS-Port = 0
NAS-Port-Id = "0/1/1/939"
Cisco-AVPair = "client-mac-address=0019.dbc7.d1cb"
Service-Type = Framed-User
NAS-IP-Address = 10.0.0.2
Acct-Session-Id = "00D24ADF"
NAS-Identifier = "91.223.105.1"
Event-Timestamp = "Aug 7 2015 06:22:57 MSK" |
Code Block | ||||
---|---|---|---|---|
| ||||
Sending Access-Accept of id 179 to 10.0.0.2 port 1645
Cisco-Control-Info = QV1000000
Service-Type = Outbound-User
Idle-Timeout = 120
Cisco-Account-Info = NTP_10_0_48
Cisco-Account-Info = ATP_10_0_48
Cisco-Account-Info = ABILLING_ACCESS
User-Name = n9351779
Cisco-Service-Info = ATP_10_0_48 |
Абоненту включается услуга тарифного плана с ID TP_10_0_48 (TP_[ID тарифного плана (tp_id)]-[клас трафика]-[номер временного интервала]).
Code Block | ||||
---|---|---|---|---|
| ||||
rad_recv: Access-Request packet from host 10.0.0.2 port 1645, id=1279, length=119
User-Name = TP_10_0_48
NAS-IP-Address = 10.0.0.2 |
Code Block | ||||
---|---|---|---|---|
| ||||
Sending Access-Accept of id 179 to 10.0.0.2 port 1645
Cisco-Service-Info = QU;1024000;128000;256000;D;1024000;128000;256000;
Cisco-AVPair = ip:traffic-class=in access-group 196 priority 6
Cisco-AVPair = ip:traffic-class=out access-group 196 priority 6
Cisco-AVPair = ip:traffic-class=out default drop
Cisco-AVPair = ip:traffic-class=in default drop
Cisco-AVPair = subscriber:accounting-list=ISG-AUTH-1
Acct-Interim-Interval = 86000 |
Дополнительно
Очистка кеша сервисов
Code Block language bash ipconfig /release