Jump to content

Recommended Posts

Posted

Здравствуйте! Пытаюсь реализовать связку ASR1002+IDECO ACP, вход в инет через страницу авторизации. Абонент должен сам контролировать работу в Интернет, без TAL, поэтому при старте сессии в любом случае сначала применяю дефолтные сервисы. Зарегистрированый абонент заходит на любой сайт и перенаправляется на страницу логина, вводит логин\пароль, далее срабатывает скрипт управления по событию login:

"login")

#проверка, что абонент зарегистрирован, у него указан адрес NAS, у него есть тарифный план и лимит средств не превышен.

if [ "$nas_ip" != "0.0.0.0" -a "$ceil_in" != "-1" -a "$ceil_out" != "-1" -a "$over_limit" != "1" ]; then

LOG INFO "event type: $EVENT $DATA"

echo "User-Name=\"$ip\",Cisco-Account-Info=\"S$ip\",\

cisco-avpair+=\"subscriber:service-name=SERVICE_${ceil_in}\",\

cisco-avpair+=\"subscriber:command=activate-service\"" |

radclient -x $nas_ip:1700 coa $radius_secret

echo "User-Name=\"$ip\",Cisco-Account-Info=\"S$ip\",\

cisco-avpair+=\"subscriber:service-name=SERVICE_TRUSTED\",\

cisco-avpair+=\"subscriber:command=deactivate-service\"" |

radclient -x $nas_ip:1700 coa $radius_secret

echo "User-Name=\"$ip\",Cisco-Account-Info=\"S$ip\",\

cisco-avpair+=\"subscriber:service-name=LOCAL_L4R_WEBAUTH\",\

cisco-avpair+=\"subscriber:command=deactivate-service\"" |

radclient -x $nas_ip:1700 coa $radius_secret

fi

true

Сервисы SERVICE_скорость настроены локально на циске. В переменной ceil_in скорость абонента из тарифа и получается, например SERVICE_2048.

Конфиг Сиськи:

 

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 session-start

10 service-policy type service name SERVICE_TRUSTED

20 service-policy type service name LOCAL_L4R_WEBAUTH

30 authorize aaa list ISG-AUTH-1 password ISG identifier source-ip-address

40 set-timer UNAUTH_TIMER 3

!

class type control always event account-logoff

10 service disconnect delay 5

!

 

И вот тут косяк: Если по какой то причине сессия не аутентифицируется и находится в состоянии unauth и такой скрипт сработает когда абонент вводит логин и пароль на странице авторизации, SERVICE_TRUSTED и LOCAL_L4R_WEBAUTH снимаются, но SERVICE_ не применяется. В результате абонент гуляет по инету без ограничений 3 минуты, затем сессия передергивается и уже аутентифицируется (тоже не факт), но сервисы применяются опять дефолтные. Абонент вроде как залогинен, но в инете работать не может.

Если сессия изначально authen, все работает как требуется, сервис абоненту прменяется. Если абонент выходит из Инета нажав в ЛК "завершить", посылается account-logoff, сессия рвется и устанавливается заново с дефолтными сервисами.

 

Посоветуйте как правильно реализовать данную схему работы? Как гарантированно аутентифицировать пользователя и применить к нему сервисы?

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.