serego Posted April 3, 2013 Posted April 3, 2013 Здравствуйте! Пытаюсь реализовать связку 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, сессия рвется и устанавливается заново с дефолтными сервисами. Посоветуйте как правильно реализовать данную схему работы? Как гарантированно аутентифицировать пользователя и применить к нему сервисы? Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.