Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных


1. Схема включения

Рассмотрим типовую схему включения абонентов BRAS и возможные проблемы при настройке.



Для каждого абонента на BRAS создается сессия для абонента (session id) и его сервисов (service id),  номера сессии   уникальны. Номер session id можно использовать для поиска информации в логах Поратал и PCRF.

Вывести список активных сессий можно командой show subscriber-control sessions status:

esr1000# show subscriber-control sessions status 
Session id             User name         IP address        MAC address         Interface            Domain            
--------------------   ---------------   ---------------   -----------------   ------------------   ---------------   
576460752303423705     --                192.168.133.219   20:47:da:00:39:e3   gi1/0/1.2336         --    

В приведенном выше примере пользователь не авторизован, никакие сервисы ему не назначены.


esr1000# show subscriber-control sessions status 
Session id             User name         IP address        MAC address         Interface            Domain            
--------------------   ---------------   ---------------   -----------------   ------------------   ---------------   
576460752303423705     79123456789       192.168.133.219   20:47:da:00:39:e3   gi1/0/1.2336         eltex.root  

В приведенном выше примере пользователь авторизован.


Что бы просмотреть, какие сервисы назначены пользователям надо выполнить команду show subscriber-control services status:

esr1000# show subscriber-control services status 
Service id             Session id             Service name      User name         Quota volume     Quota time       
                                                                                  (Bytes)          (Seconds)        
--------------------   --------------------   ---------------   ---------------   --------------   --------------   
36028797018963985      576460752303423705     A INTERNET        79123456789       --               --    

В приведенном выше примере видно, что пользователю назначен сервис INTERNET, буква A означает, что он активен.


Просмотреть список сервисов определённой сессии можно командой show subscriber-control services status session-id <номер сессии>:

esr1000# show subscriber-control services status session-id 576460752303423705
Service id             Session id             Service name      User name         Quota volume     Quota time       
                                                                                  (Bytes)          (Seconds)        
--------------------   --------------------   ---------------   ---------------   --------------   --------------   
36028797018963986      576460752303423705     N INTERNET        79123456789       --               --               
36028797018963987      576460752303423705     A WELCOME         79123456789       --               --             

В приведенном выше примере видно, что пользователю назначено два сервиса WELCOME и INTERNET, но активный сервис WELCOME, т.к. помечен буквой A. Это означает, что для клиента выполняется редирект на страницу "Мы вас узнали", где ему надо подтвердить свой номер нажав кнопку "Да."  После этого у него сменится активный сервис:

esr1000# show subscriber-control services status 
Service id             Session id             Service name      User name         Quota volume     Quota time       
                                                                                  (Bytes)          (Seconds)        
--------------------   --------------------   ---------------   ---------------   --------------   --------------   
36028797018963986      576460752303423705     A INTERNET        79123456789       --               --               
36028797018963987      576460752303423705     N WELCOME         79123456789       --               --     


Удалить все сессии с BRAS можно командой clear subscriber-control sessions. Если требуется удалить определенную сессию: clear subscriber-control sessions session-id <номер сессии>.



2. Отсутствие сетевых настроек у абонента


    Абонент, подключаясь к точке доступа, высылает DHCP Discover, который передается через L2 сеть доступа оператора на ESR BRAS. ESR, выполняющий функцию DHCP-relay, перенаправляет запрос на DHCP сервер, который выдает адрес клиенту на основании данных поля giaddr field. В качестве GW указывается адрес ESR. Считаем что DHCP сервер настроен правильно. До прохождения авторизации у абонента должны быть разрешены DHCP и DNS запросы, нужно проверить список доступа в настройках ESR# show runnign-config → subscriber-control → bypass-traffic-acl unauthUSERПример списка разрешающего прохождение DHCP и DNS запросов:

ip access-list extended unauthUSER
 rule 10 
  action permit
   match protocol udp
   match source-address any
   match destination-address any
   match source-port 68
   match destination-port 67
   enable
  exit
 rule 11
  action permit
   match protocol udp
   match source-address any
   match destination-address any
   match source-port any
   match destination-port 53
   enable
  exit
exit


3. Не открывается портал

В этом разделе будут рассмотрены случаи, когда в браузере есть редирект на портал,  но страница не отображается или попадаем на страницу с облачками 

  • Проверка dns запросов с клиента.

    Редирект на портал происходит при http(s) запросе в браузере абонента. Если редиректа при запросе URL по dns имени нет, можно проверить запрос по ip адресу, например http://1.1.1.2, если портал открылся, нужно проверить прохождение dns запросов на клиенте, например выполнив команду

C:\Users\Администратор>nslookup eltex.nsk.ru
server google-public-dns-a.google.com
Address: 8.8.8.8
Не заслуживающий доверия ответ:
name: eltex.nsk.ru
Address:94.250.248.55

Если dns запросы не проходят, нужно проверить сетевые настройки на вышестоящем маршрутизаторе, например наличие маршрута в сторону сети абонентов.

  • Проверка логов eltex-portal

Лог находится в /var/log/eltex-portal/

В файле /var/log/eltex-portal/access.log можно просмотреть попытки пользователей подключения к порталу:

100.123.0.2 127.0.0.1 - - [16/Aug/2019:05:16:48 +0000] "GET /eltex_portal/?router=bras&clientIp=192.168.133.219&clientMac=20:47:da:00:39:e3&nasIp=100.123.0.176&sessionId=99&vrf=1&loc=data10&L2loc=gi1/0/1.2336&origUrl=http://connect.rom.miui.com/generate_204 HTTP/1.0" 200 28782 "-" "Mozilla/5.0 (Linux; Android 8.1.0; Redmi 5 Build/OPM1.171019.026; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.111 Mobile Safari/537.36" "JSESSIONID=node012voamcl3aepd1oyo47v30v62w70.node0" 36799


В файле /var/log/eltex-portal/auth.log можно посмотреть логи авторизации пользователей (в логе приведён пример успешной авторизации):

2019-08-16T13:41:49,218 Index-page:success device:bras NAS_IP:100.123.0.176 BRAS_L2:SSID1 SSID_name:SSID1 SSID_domain:eltex.root portal:eltex user_name:null user_MAC:20:47:da:00:39:e3
2019-08-16T13:41:58,311 Register-form-submitted:success device:bras NAS_IP:100.123.0.176 BRAS_L2:SSID1 SSID_name:SSID1 SSID_domain:eltex.root portal:eltex user_name:null user_MAC:20:47:da:00:39:e3
2019-08-16T13:41:58,385 Registration:success device:bras NAS_IP:100.123.0.176 BRAS_L2:SSID1 SSID_name:SSID1 SSID_domain:eltex.root portal:eltex user_name:null user_MAC:20:47:da:00:39:e3
2019-08-16T13:41:58,470 Login-page:success device:bras NAS_IP:100.123.0.176 BRAS_L2:SSID1 SSID_name:SSID1 SSID_domain:eltex.root portal:eltex user_name:null user_MAC:20:47:da:00:39:e3
2019-08-16T13:41:58,732 Login-page:success device:bras NAS_IP:100.123.0.176 BRAS_L2:SSID1 SSID_name:SSID1 SSID_domain:eltex.root portal:eltex user_name:null user_MAC:20:47:da:00:39:e3
2019-08-16T13:41:59,660 Login-page-enter-button:success device:bras NAS_IP:100.123.0.176 BRAS_L2:SSID1 SSID_name:SSID1 SSID_domain:eltex.root portal:eltex user_name:null user_MAC:20:47:da:00:39:e3
2019-08-16T13:41:59,668 Authentication:success device:bras NAS_IP:100.123.0.176 BRAS_L2:SSID1 SSID_name:SSID1 SSID_domain:eltex.root portal:eltex user_name:null user_MAC:20:47:da:00:39:e3
2019-08-16T13:41:59,748 Tariffs:success device:bras NAS_IP:100.123.0.176 BRAS_L2:SSID1 SSID_name:SSID1 SSID_domain:eltex.root portal:eltex user_name:null user_MAC:20:47:da:00:39:e3
2019-08-16T13:41:59,834 Apply-tariff:success device:bras NAS_IP:100.123.0.176 BRAS_L2:SSID1 SSID_name:SSID1 SSID_domain:eltex.root portal:eltex user_name:null user_MAC:20:47:da:00:39:e3
2019-08-16T13:42:00,143 Success-redirect:success device:bras NAS_IP:100.123.0.176 BRAS_L2:SSID1 SSID_name:SSID1 SSID_domain:eltex.root portal:eltex user_name:null user_MAC:20:47:da:00:39:e3


В файле /var/log/eltex-portal/portal.log можно посмотреть логи работы портала, он является основным при трабшутинге.

Если в логе

2019-08-16T11:47:40,873 [qtp2085002312-12] ERROR org.eltex.portal.controller.PageErrorController PageErrorController.errorPage(line:57). Handled exception: code 1101:BRAS_DISABLED . Source:org.eltex.portal.app.pipeline.stages.RouterSessionDetection.preprocess(line:58)

Нужно проверить, активацию настройки "Взаимодействие с BRAS" в Конструкторе порталов.

Если в логе

2019-08-16T11:53:28,147 [qtp2085002312-14] ERROR org.eltex.portal.tools.TariffTools TariffTools.notifyOnEmptyTariffs(line:67). Invalid configuration of portal eltex: Portal has no tariffs linked. Change on the Tariffs page.

2019-08-16T11:53:28,147 [qtp2085002312-14] ERROR org.eltex.portal.controller.PageErrorController PageErrorController.errorPage(line:57). Handled exception: code 1301:NO_AVAILABLE_TARIFFS . Source:org.eltex.portal.tools.TariffT

ools.notifyOnEmptyTariffs(line:68)


Если при этом у пользователя портал сразу открывается  ошибкой 1301 - то нужно проверить, назначены ли в портале, на который выполняется редирект, тарифы в Конструкторе порталов.


Если в логе

2019-08-16T12:08:42,602 [qtp2085002312-107] ERROR org.eltex.portal.tools.PcrfTools PcrfTools.findL2Subnet(line:136). Failed to find L2 subnet for gi1/0/1.2336 at 100.123.0.176 (1)

2019-08-16T12:08:42,604 [qtp2085002312-107] ERROR org.eltex.portal.controller.PageErrorController PageErrorController.errorPage(line:57). Handled exception: code 2101:L2_SUBNET_NOT_FOUND . Source:org.eltex.portal.app.pipeline.specific.BrasSessionFactory.lookupSubnet(line:122)

Надо проверить, есть ли в Личном кабинете "Настройки PCRF" → L2 наличие соответсвующей подсети L2, правильность её настройки, если есть. Так же нужно проверить в конструкторе порталов правильно ли настроен доступ к PCRF - значение по умолчанию хост: localhost, порт: 7070.


Если в логе 

 сообщение

2019-08-16T12:17:05,519 [qtp2085002312-14] ERROR org.eltex.portal.app.pipeline.WrapRequestAspect WrapRequestAspect.aroundAdvice(line:98). Failed to handle request
org.eltex.portal.app.bras.BrasException: Failed to interact with BRAS
at org.eltex.portal.app.bras.SubscriberImpl.sessionQuery(SubscriberImpl.java:70) ~[portal-starter.jar:1.15-101 (12.08.19 09:50:27)]
at org.eltex.portal.storage.BrasProxy.getSessionStatus(BrasProxy.java:73) ~[portal-starter.jar:1.15-101 (12.08.19 09:50:27)]
at com.github.benmanes.caffeine.cache.BoundedLocalCache.lambda$doComputeIfAbsent$14(BoundedLocalCache.java:2039) ~[caffeine-2.6.2.jar:?]
at java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1853) ~[?:1.8.0_222]
at com.github.benmanes.caffeine.cache.BoundedLocalCache.doComputeIfAbsent(BoundedLocalCache.java:2037) ~[caffeine-2.6.2.jar:?]
at com.github.benmanes.caffeine.cache.BoundedLocalCache.computeIfAbsent(BoundedLocalCache.java:2020) ~[caffeine-2.6.2.jar:?]
at com.github.benmanes.caffeine.cache.LocalCache.computeIfAbsent(LocalCache.java:112) ~[caffeine-2.6.2.jar:?]
at com.github.benmanes.caffeine.cache.LocalManualCache.get(LocalManualCache.java:54) ~[caffeine-2.6.2.jar:?]
at org.eltex.portal.storage.BrasProxy.sessionQuery(BrasProxy.java:47) ~[portal-starter.jar:1.15-101 (12.08.19 09:50:27)]
at org.eltex.portal.app.pipeline.specific.BrasSessionFactory.querySessionStatus(BrasSessionFactory.java:159) ~[portal-starter.jar:1.15-101 (12.08.19 09:50:27)]
at org.eltex.portal.app.pipeline.specific.BrasSessionFactory.getSession(BrasSessionFactory.java:88) ~[portal-starter.jar:1.15-101 (12.08.19 09:50:27)]
at org.eltex.portal.app.pipeline.specific.BrasSessionFactory.getSession(BrasSessionFactory.java:30) ~[portal-starter.jar:1.15-101 (12.08.19 09:50:27)]
at org.eltex.portal.app.pipeline.stages.RouterSessionDetection.preprocess(RouterSessionDetection.java:66) ~[portal-starter.jar:1.15-101 (12.08.19 09:50:27)]
at org.eltex.portal.app.pipeline.RequestPipeline.lambda$doPreHandle$0(RequestPipeline.java:21) ~[portal-starter.jar:1.15-101 (12.08.19 09:50:27)]
at java.util.ArrayList.forEach(ArrayList.java:1257) ~[?:1.8.0_222]
at org.eltex.portal.app.pipeline.RequestPipeline.doPreHandle(RequestPipeline.java:21) ~[portal-starter.jar:1.15-101 (12.08.19 09:50:27)]
at org.eltex.portal.app.pipeline.WrapRequestAspect.aroundAdvice(WrapRequestAspect.java:77) [portal-starter.jar:1.15-101 (12.08.19 09:50:27)]
at sun.reflect.GeneratedMethodAccessor53.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_222]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_222]
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:627) [spring-aop-4.3.20.RELEASE.jar:4.3.20.RELEASE]
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:616) [spring-aop-4.3.20.RELEASE.jar:4.3.20.RELEASE]
at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70) [spring-aop-4.3.20.RELEASE.jar:4.3.20.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:168) [spring-aop-4.3.20.RELEASE.jar:4.3.20.RELEASE]
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) [spring-aop-4.3.20.RELEASE.jar:4.3.20.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) [spring-aop-4.3.20.RELEASE.jar:4.3.20.RELEASE]
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:671) [spring-aop-4.3.20.RELEASE.jar:4.3.20.RELEASE]
at org.eltex.portal.controller.PageIndexController$$EnhancerBySpringCGLIB$$499946ea.indexPage(<generated>) [portal-starter.jar:1.15-101 (12.08.19 09:50:27)]
at sun.reflect.GeneratedMethodAccessor55.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_222]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_222]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) [spring-web-4.3.20.RELEASE.jar:4.3.20.RELEASE]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133) [spring-web-4.3.20.RELEASE.jar:4.3.20.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97) [spring-webmvc-4.3.20.RELEASE.jar:4.3.20.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:849) [spring-webmvc-4.3.20.RELEASE.jar:4.3.20.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:760) [spring-webmvc-4.3.20.RELEASE.jar:4.3.20.RELEASE]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) [spring-webmvc-4.3.20.RELEASE.jar:4.3.20.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967) [spring-webmvc-4.3.20.RELEASE.jar:4.3.20.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901) [spring-webmvc-4.3.20.RELEASE.jar:4.3.20.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) [spring-webmvc-4.3.20.RELEASE.jar:4.3.20.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) [spring-webmvc-4.3.20.RELEASE.jar:4.3.20.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:687) [javax.servlet-api-3.1.0.jar:3.1.0]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) [spring-webmvc-4.3.20.RELEASE.jar:4.3.20.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api-3.1.0.jar:3.1.0]
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:865) [jetty-servlet-9.4.11.v20180605.jar:9.4.11.v20180605]
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1655) [jetty-servlet-9.4.11.v20180605.jar:9.4.11.v20180605]
at org.eltex.portal.app.pipeline.misc.RelativeRedirectFilter.doFilter(RelativeRedirectFilter.java:25) [portal-starter.jar:1.15-101 (12.08.19 09:50:27)]
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) [jetty-servlet-9.4.11.v20180605.jar:9.4.11.v20180605]
at org.eltex.portal.app.pipeline.misc.RequestHeadersFilter.doFilter(RequestHeadersFilter.java:55) [portal-starter.jar:1.15-101 (12.08.19 09:50:27)]
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) [jetty-servlet-9.4.11.v20180605.jar:9.4.11.v20180605]
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533) [jetty-servlet-9.4.11.v20180605.jar:9.4.11.v20180605]
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) [jetty-server-9.4.11.v20180605.jar:9.4.11.v20180605]
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595) [jetty-server-9.4.11.v20180605.jar:9.4.11.v20180605]
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) [jetty-server-9.4.11.v20180605.jar:9.4.11.v20180605]
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1317) [jetty-server-9.4.11.v20180605.jar:9.4.11.v20180605]
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203) [jetty-server-9.4.11.v20180605.jar:9.4.11.v20180605]
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473) [jetty-servlet-9.4.11.v20180605.jar:9.4.11.v20180605]
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564) [jetty-server-9.4.11.v20180605.jar:9.4.11.v20180605]
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201) [jetty-server-9.4.11.v20180605.jar:9.4.11.v20180605]
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1219) [jetty-server-9.4.11.v20180605.jar:9.4.11.v20180605]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144) [jetty-server-9.4.11.v20180605.jar:9.4.11.v20180605]
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126) [jetty-server-9.4.11.v20180605.jar:9.4.11.v20180605]
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) [jetty-server-9.4.11.v20180605.jar:9.4.11.v20180605]
at org.eclipse.jetty.server.Server.handle(Server.java:531) [jetty-server-9.4.11.v20180605.jar:9.4.11.v20180605]
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:352) [jetty-server-9.4.11.v20180605.jar:9.4.11.v20180605]
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260) [jetty-server-9.4.11.v20180605.jar:9.4.11.v20180605]
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:281) [jetty-io-9.4.11.v20180605.jar:9.4.11.v20180605]
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102) [jetty-io-9.4.11.v20180605.jar:9.4.11.v20180605]
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118) [jetty-io-9.4.11.v20180605.jar:9.4.11.v20180605]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333) [jetty-util-9.4.11.v20180605.jar:9.4.11.v20180605]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310) [jetty-util-9.4.11.v20180605.jar:9.4.11.v20180605]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) [jetty-util-9.4.11.v20180605.jar:9.4.11.v20180605]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126) [jetty-util-9.4.11.v20180605.jar:9.4.11.v20180605]
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366) [jetty-util-9.4.11.v20180605.jar:9.4.11.v20180605]
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:762) [jetty-util-9.4.11.v20180605.jar:9.4.11.v20180605]
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:680) [jetty-util-9.4.11.v20180605.jar:9.4.11.v20180605]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_222]
Caused by: net.jradius.exception.TimeoutException: Timeout: No Response from RADIUS Server
at net.jradius.client.RadiusClientTransport.sendReceive(RadiusClientTransport.java:118) ~[jradius-core-1.13.4.jar:?]
at net.jradius.client.RadiusClient.sendReceive(RadiusClient.java:288) ~[jradius-core-1.13.4.jar:?]
at org.eltex.portal.app.bras.SubscriberImpl.sessionQuery(SubscriberImpl.java:58) ~[portal-starter.jar:1.15-101 (12.08.19 09:50:27)]
... 76 more

Ключевой является фраза: Caused by: net.jradius.exception.TimeoutException: Timeout: No Response from RADIUS Server

Нужно проверить ключ для Radius и CoA сообщений, они должны совпадать. Проверить нужно в трех местах

  1. В конфигурации ESR, профиль для Radius и CoA;
  2. В EMS, меню "Управление точками доступа на Radius сервере", найти нужный ESR,  параметр ключ для ip адреса  ESR и 127.0.0.1;
  3. В Конструкторе порталов: Системные настройки->Взаимодействие с BRAS.

Если включить debug на ESR (debug→debug BRAS error), то в консоле ESR можно увидеть соответствующую ошибку:

2019-08-16T17:31:22+07:00 %BRAS-E-ERROR: <bras_receive_message_from_socket> ESR_rc_check_reply failed! (Maybe, is shared secret incorrect?) Dropping packet without response


  • Проверка логов eltex-pcrf

 Логи находится в /var/log/eltex-pcrf/. Просмотрим файл /var/log/eltex-pcrf/eltex-pcrf-shaper.log, сообщение с ошибкой:

2019-08-16T13:55:04,917 [vert.x-eventloop-thread-2] ERROR SubnetsVerticle PcrfJsonTools.replyRxFail(line:570). {
  "key" : "PcrfErrorCode.subnetNotFound",
  "message" : "Subnet not found by query '{\"location\":\"gi1/0/1.2336\",\"nas_ip\":\"100.123.0.176\"}'",
  "code" : 29,
  "args" : [ {
    "location" : "gi1/0/1.2336",
    "nas_ip" : "100.123.0.176"
  } ]
}

сообщение говорит о том что подсеть L2 в Личном кабинете не настроена или настроена с ошибкой. Нужно проверить наличие подсети в "Настройки PCRF" → "Подсети L2" в личном кабинете и убедится в корректности её настройки.


  • Открывается чужой портал

Нужно проверить наименование портала Настройках PCRF→Подсети L2 в Личном кабинете, выбор портал осуществляется совпадению NAS IP и location интерфейса.


  • Ошибки при авторизации на портале

  • Неправильный тарифный план (предназначенный для ТД Eltex)

Если у пользователя портал открывается, но после ввода номера и кода SMS на портале отображается ошибка 1301 - то нужно проверить тариф, который указан в настройках портала - он должен относится к категории BRAS, а не "работа с ТД".

с текстом ошибки: "Код ошибки:1301 (NO_AVAILABLE_TARIFFS)"

В логах портала /var/log/eltex-portal/portal.log при этом будет сообщение:

2019-08-16T14:07:52,586 [qtp2085002312-12] ERROR org.eltex.portal.tools.TariffTools TariffTools.notifyOnEmptyTariffs(line:67). Invalid configuration of portal eltex: Portal has no tariffs linked. Change on the Tariffs page.
2019-08-16T14:07:52,586 [qtp2085002312-12] ERROR org.eltex.portal.controller.PageErrorController PageErrorController.errorPage(line:57). Handled exception: code 1301:NO_AVAILABLE_TARIFFS . Source:org.eltex.portal.tools.TariffTools.notifyOnEmptyTariffs(line:68)

Нужно в Конструкторе порталов настроить настроить  правильный тарифный план для данного портала.


  • Неверный логин и/или пароль

    Абонент прошел  получил пароль, ввел, но после выбора тарифного плана получает ошибку неверный пароль и/или логин.
Одна из причин возникновения данной ошибки, разные ключи для CoA сообщений, нужно проверить настройку ключей Radius и CoA в трех места:
  1. В конфигурации ESR, профиль для Radius и CoA;
  2. В EMS, меню "Управление точками доступа на Radius сервере", параметр ключ для ip адреса  ESR и 127.0.0.1;
  3. В Конструкторе порталов: Системные настройки->Взаимодействие с BRAS.

  • Не работает mac авторизация

После получения первого ip пакета от абонента, BRAS запрашивает у PCRF параметры шейпера для данного абонента и пытается провести mac авторизацию.  Для успешной mac авторизации в "Настройках PCRF->Подсети L2" в Личном кабинете должна быть настроена корректная запись. Проверить можно так, узнаем имя L2 интерфейса к которому подключен абонент:

esr1000# show subscriber-control sessions status 
Session id             User name         IP address        MAC address         Interface            Domain            
--------------------   ---------------   ---------------   -----------------   ------------------   ---------------   
576460752303423705     --                192.168.133.219   20:47:da:00:39:e3   gi1/0/1.2336         --   


Проверяем настройку подсети L2 в Личном кабинете, а  именно, NAS IP должен совпадать с адресов ESR, location интерфейса должен совпадать с именем интерфейса к которому подключен абонент, Service домен, должен совпадать с сервисным доменом абонента. Сервисный домен задается в L2 подсети которая описывает какой портал будет отображен абоненту.


  • Повторный редирект на портал после авторизации

После успешной авторизации на портале повторно происходит редирект на портал и авторизацию требуется пройти заново, никаких ошибок при этом в открывающемся окне с порталом не появляется.

Надо проверить в Личном кабинете, в настройках сервиса написание "Класс трафика", который должен назначиться пользователю после авторизации в соответствии с настройками назначаемого ему тарифа - он должен полностью совпадать, в том числе и регистр букв access-list, который используется для классификации трафика этого сервиса на ESR BRAS:


Вывод с ESR show run access-list:

ip access-list extended internet
  rule 1
    action permit
    enable
  exit
exit

Как видно не совпадает регистр букв.

Если включить debug на ESR (debug→debug BRAS error), то в консоле ESR можно увидеть соответствующую ошибку при попытке пользователя авторизоваться:

2019-08-16T17:31:22+07:00 %BRAS-E-ERROR: <bras_parse_traffic_class_attribute> class map 'INTERNET' not found

Надо исправить наименование "Класс трафика" в личном кабинете, либо access-list на ESR, что бы они совпадали. После этого надо обязательно сбросить сессии пользователей, который успели получить неправильный сервис. Как правило в такой ситуации можно сбросить сессии всех пользователей: clear subscriber-control sessions.


  • Повторный редирект на портал после выбора тарифа (ошибка: "Неизвестная ошибка Bras")

В этом случае нужно посмотреть логи PCRF 

/var/log/eltex-pcrf/eltex-pcrf-radius.log
2021-07-29T03:42:59,587 [hz._hzInstance_1_dev.async.thread-2] ERROR AcctVerticle ?.(line:). Failed to find NAS secret for 100.123.0.55:50049

При подобном логе необходимо проверить присутствие адреса (адрес должен совпадать с адресом в логах) и корректность пароля в NAS таблице RADIUS сервера ("RADIUS" → "Управление точками доступа"):

 

  • Многократный редирект в строке редиректа на портал

При подключении у пользователя в строке редиректа можно видеть многократный редирект:

Как правило в низу страницы есть выводится ошибка: "net:ERR_TOO_MANY_REDIRECTS".

Такая ошибка возникает, если в сервисе, который назначается клиенту используется белый список фильтрации URL и редирект, и при этом в списке фильтрации допущена ошибка в строке, разрешающей доступ  к порталу. В приведённом примере это сервис WELCOME, в котором используется белый список welcome. Нужно открыть в Личном кабинете "Настройки PCRF" → "Списки URL", открыть соответствующий список и проверить правильность  написания адреса портала.


4. Приложение

  • Различия в способе формирования подсетей L2 в Личном кабинете  в схемах включения L2 и L3

   Существуют две схемы включения BRAS L2 и L3 -  в случае использования схемы L2 подсети L2 создаются в Личном кабинете вручную администратором системы. Если используется схема включения L3 - когда трафик абонентов передается через L3 сеть оператора внутри GRE туннелей - то в этом случае подсети L2 создаются автоматически и их отсутствие в Личном кабинете является признаком некорректного добавления ESR BRAS в EMS. В этом случае надо проверить, стоит ли галочка "BRAS сервис" в настройках "Доступ" и правильно ли указан режим работы ESR - "Station".


  • Нет меток