BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 29 мар 2024, 16:31

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 16 ] 
Автор Сообщение
 Заголовок сообщения: Разные форматы agentRemoteId
СообщениеДобавлено: 13 апр 2018, 14:07 
Не в сети
Клиент

Зарегистрирован: 04 авг 2007, 19:57
Сообщения: 157
Карма: 0
Ситуация аналогична описанной в этом сообщении - https://forum.bitel.ru/viewtopic.php?f= ... 918#p63234
Схема ISG с авторизацией по порту коммутатора.
С разного оборудования agentRemoteId приходит в разном формате:
Код:
  Agent information{82}=
    sub{1}={00040BBF0108}
    sub{2}={00060012CFC5DC60}

Код:
  Agent information{82}=
    sub{1}={21090BB800000000000085}
    sub{2}={000000000CA8F94B892CA002002202A6D0}

Код:
  Agent information{82}=
    sub{1}={03E7000A18}
    sub{2}={847973D96492}

В первом случае работает без каких-либо доп.настроек, во втором решается предобработкой в preprocessDhcpRequest. А в третьем до предобработчика не доходит и вылетает ошибка:
Код:
dhcp 04-12/14:32:17 ERROR [dhcpLstnr-p-11-t-6] AbstractInetDeviceRuntime - Error while parsing agentRemoteId from DHCP-request. Check dhcp.option82.agentRemoteId... and dhcp.option82.removeHeader parameters.
dhcp 04-12/14:32:17 ERROR [dhcpLstnr-p-11-t-6] DhcpListenerWorker -
java.lang.ArrayIndexOutOfBoundsException
        at ru.bitel.bgbilling.modules.inet.runtime.device.AbstractInetDeviceRuntime.getOption82AgentRemoteId(AbstractInetDeviceRuntime.java:100)
        at ru.bitel.bgbilling.modules.inet.runtime.device.InetDeviceRuntime.getOption82AgentRemoteId(InetDeviceRuntime.java:47)
        at ru.bitel.bgbilling.modules.inet.dhcp.InetAbstractDhcpProcessor.processOption82Request(InetAbstractDhcpProcessor.java:453)
        at ru.bitel.bgbilling.modules.inet.dhcp.InetAbstractDhcpProcessor.processRequest(InetAbstractDhcpProcessor.java:253)
        at ru.bitel.bgbilling.kernel.network.dhcp.DhcpListenerWorker.runImpl(DhcpListenerWorker.java:90)
        at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
        at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:46)

Подскажите в чем проблема и как ее решить?

_________________
Клиент: вер. 7.2.198 / 19.08.2019 19:30:12
Сервер: вер. 7.2.1061 / 19.08.2019 19:32:26
card: вер. 7.2.201 / 24.07.2019 03:56:11
dialup: вер. 7.2.303 / 04.07.2019 17:11:44
inet: вер. 7.2.639 / 19.08.2019 19:32:59
ipn: вер. 7.2.232 / 19.08.2019 19:32:53
mps: вер. 7.2.177 / 08.08.2019 16:32:31
npay: вер. 7.2.174 / 25.07.2019 19:48:57
phone: вер. 7.2.260 / 08.08.2019 16:32:32
reports: вер. 7.2.203 / 12.08.2019 21:56:13
trayinfo: вер. 7.2.160 / 25.06.2019 16:47:08
voice: вер. 7.2.63 / 19.08.2019 19:33:01
voiceip: вер. 7.2.176 / 25.06.2019 16:46:56


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разные форматы agentRemoteId
СообщениеДобавлено: 13 апр 2018, 17:32 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
https://docs.bitel.ru/pages/viewpage.ac ... d=43385877

dhcp.deviceSearchMode=0

0 - В этом режиме сначала находится устройство по giaddr, у него вызывается preprocess, затем находится агентское ус-во, у него тоже вызывается preprocess
1 (по умолчанию) - В этом режиме сначала находится устройство по giaddr, затем находится агентское ус-во, у него тоже вызывается preprocess.
2 - В этом режиме находится ус-во по giaddr, у него вызывается preprocess.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разные форматы agentRemoteId
СообщениеДобавлено: 13 апр 2018, 18:14 
Не в сети
Клиент

Зарегистрирован: 04 авг 2007, 19:57
Сообщения: 157
Карма: 0
А здесь вы почему-то рекомендуете ставить 2.
Перепробовали все значения dhcp.deviceSearchMode, логика работы не меняется.

_________________
Клиент: вер. 7.2.198 / 19.08.2019 19:30:12
Сервер: вер. 7.2.1061 / 19.08.2019 19:32:26
card: вер. 7.2.201 / 24.07.2019 03:56:11
dialup: вер. 7.2.303 / 04.07.2019 17:11:44
inet: вер. 7.2.639 / 19.08.2019 19:32:59
ipn: вер. 7.2.232 / 19.08.2019 19:32:53
mps: вер. 7.2.177 / 08.08.2019 16:32:31
npay: вер. 7.2.174 / 25.07.2019 19:48:57
phone: вер. 7.2.260 / 08.08.2019 16:32:32
reports: вер. 7.2.203 / 12.08.2019 21:56:13
trayinfo: вер. 7.2.160 / 25.06.2019 16:47:08
voice: вер. 7.2.63 / 19.08.2019 19:33:01
voiceip: вер. 7.2.176 / 25.06.2019 16:46:56


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разные форматы agentRemoteId
СообщениеДобавлено: 13 апр 2018, 18:41 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Это было давно, тогда возможно еще не было режима 0.

Параметр указываете в корневом устройстве?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разные форматы agentRemoteId
СообщениеДобавлено: 13 апр 2018, 18:58 
Не в сети
Клиент

Зарегистрирован: 04 авг 2007, 19:57
Сообщения: 157
Карма: 0
Опция dhcp.deviceSearchMode прописана на циске, на которой поднят ISG. Все коммутаторы для нее являются дочерними.
Для циски корневым устройством является ProcessGroup

_________________
Клиент: вер. 7.2.198 / 19.08.2019 19:30:12
Сервер: вер. 7.2.1061 / 19.08.2019 19:32:26
card: вер. 7.2.201 / 24.07.2019 03:56:11
dialup: вер. 7.2.303 / 04.07.2019 17:11:44
inet: вер. 7.2.639 / 19.08.2019 19:32:59
ipn: вер. 7.2.232 / 19.08.2019 19:32:53
mps: вер. 7.2.177 / 08.08.2019 16:32:31
npay: вер. 7.2.174 / 25.07.2019 19:48:57
phone: вер. 7.2.260 / 08.08.2019 16:32:32
reports: вер. 7.2.203 / 12.08.2019 21:56:13
trayinfo: вер. 7.2.160 / 25.06.2019 16:47:08
voice: вер. 7.2.63 / 19.08.2019 19:33:01
voiceip: вер. 7.2.176 / 25.06.2019 16:46:56


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разные форматы agentRemoteId
СообщениеДобавлено: 13 апр 2018, 19:10 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
У циски в типе устройства точно есть ProtocolHandler?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разные форматы agentRemoteId
СообщениеДобавлено: 13 апр 2018, 19:15 
Не в сети
Клиент

Зарегистрирован: 04 авг 2007, 19:57
Сообщения: 157
Карма: 0
Amir писал(а):
У циски в типе устройства точно есть ProtocolHandler?

Без него бы вообще не работало. Проверю его актуальность.

_________________
Клиент: вер. 7.2.198 / 19.08.2019 19:30:12
Сервер: вер. 7.2.1061 / 19.08.2019 19:32:26
card: вер. 7.2.201 / 24.07.2019 03:56:11
dialup: вер. 7.2.303 / 04.07.2019 17:11:44
inet: вер. 7.2.639 / 19.08.2019 19:32:59
ipn: вер. 7.2.232 / 19.08.2019 19:32:53
mps: вер. 7.2.177 / 08.08.2019 16:32:31
npay: вер. 7.2.174 / 25.07.2019 19:48:57
phone: вер. 7.2.260 / 08.08.2019 16:32:32
reports: вер. 7.2.203 / 12.08.2019 21:56:13
trayinfo: вер. 7.2.160 / 25.06.2019 16:47:08
voice: вер. 7.2.63 / 19.08.2019 19:33:01
voiceip: вер. 7.2.176 / 25.06.2019 16:46:56


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разные форматы agentRemoteId
СообщениеДобавлено: 13 апр 2018, 19:22 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Вам надо расширить ISGProtocolHandler и извлечение agentRemoteId сделать в нем.
Предобработка циски с режимом dhcp.deviceSearchMode=0 должна вызываться до
Цитата:
dhcp 04-12/14:32:17 ERROR [dhcpLstnr-p-11-t-6] AbstractInetDeviceRuntime - Error while parsing agentRemoteId from DHCP-request. Check dhcp.option82.agentRemoteId... and dhcp.option82.removeHeader parameters.
dhcp 04-12/14:32:17 ERROR [dhcpLstnr-p-11-t-6] DhcpListenerWorker -
java.lang.ArrayIndexOutOfBoundsException
at ru.bitel.bgbilling.modules.inet.runtime.device.AbstractInetDeviceRuntime.getOption82AgentRemoteId(AbstractInetDeviceRuntime.java:100)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разные форматы agentRemoteId
СообщениеДобавлено: 13 апр 2018, 19:36 
Не в сети
Клиент

Зарегистрирован: 04 авг 2007, 19:57
Сообщения: 157
Карма: 0
У нас ISGProtocolHandler расширен для обработки 82 опции. Предобработчик preprocessDhcpRequest просто по какой-то причине не вызывается для некоторых вариантов 82 опции, об этом писал в первом посту.

_________________
Клиент: вер. 7.2.198 / 19.08.2019 19:30:12
Сервер: вер. 7.2.1061 / 19.08.2019 19:32:26
card: вер. 7.2.201 / 24.07.2019 03:56:11
dialup: вер. 7.2.303 / 04.07.2019 17:11:44
inet: вер. 7.2.639 / 19.08.2019 19:32:59
ipn: вер. 7.2.232 / 19.08.2019 19:32:53
mps: вер. 7.2.177 / 08.08.2019 16:32:31
npay: вер. 7.2.174 / 25.07.2019 19:48:57
phone: вер. 7.2.260 / 08.08.2019 16:32:32
reports: вер. 7.2.203 / 12.08.2019 21:56:13
trayinfo: вер. 7.2.160 / 25.06.2019 16:47:08
voice: вер. 7.2.63 / 19.08.2019 19:33:01
voiceip: вер. 7.2.176 / 25.06.2019 16:46:56


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разные форматы agentRemoteId
СообщениеДобавлено: 13 апр 2018, 19:50 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Прямо перед этой ошибкой
Код:
java.lang.ArrayIndexOutOfBoundsException
        at ru.bitel.bgbilling.modules.inet.runtime.device.AbstractInetDeviceRuntime.getOption82AgentRemoteId(AbstractInetDeviceRuntime.java:100)
        at ru.bitel.bgbilling.modules.inet.runtime.device.InetDeviceRuntime.getOption82AgentRemoteId(InetDeviceRuntime.java:47)
        at ru.bitel.bgbilling.modules.inet.dhcp.InetAbstractDhcpProcessor.processOption82Request(InetAbstractDhcpProcessor.java:453)
есть код
Код:
      if( device.deviceSearchMode == InetDhcpDevice.DEVICE_SEARCH_MODE_REMOTE_ID_SUB_PREPROCESS
          && device.deviceRuntime.protocolHandler != null )
      {
         try
         {
            device.deviceRuntime.protocolHandler.preprocessDhcpRequest( request, null );
            if( logger.isInfoEnabled() )
            {
               logger.info( "REQUEST_AFTER_PREPROCESS:\n" + request );
            }
         }
         catch( Exception e )
         {
            logger.error( e.getMessage(), e );
         }
      }
Т.е. если установлен режим dhcp.deviceSearchMode=0, то перед ошибкой должен вызваться preprocessDhcpRequest у устройства, найденного по giaddr/IP.

Перед тем как перейти к попытке распарсить agentRemoteId по параметрам конфига происходит:
Код:
         final Object result = request.getOption( InetAbstractDhcpProcessor.AGENT_REMOTE_ID );
         if( result != null )
         {
            return result;
         }
Т.е. если AGENT_REMOTE_ID проставлен в пакете, то парсить его из опций пакета уже не будет.

Итого:
Перед ошибкой должна быть запись в логах REQUEST_AFTER_PREPROCESS о вызове предобработки для циски.
В предобработке нужно проставить request.setOption( InetDhcpProcessor.AGENT_REMOTE_ID ) (может быть это не для всех случаев происходит?).
В записи REQUEST_AFTER_PREPROCESS в конце пакета должно быть "Common options: agentRemoteId=xxx".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разные форматы agentRemoteId
СообщениеДобавлено: 13 апр 2018, 20:01 
Не в сети
Клиент

Зарегистрирован: 04 авг 2007, 19:57
Сообщения: 157
Карма: 0
Вот лог, когда предобработчик preprocessDhcpRequest не вызывается(здесь agentRemoteId видимо вычисляется по какому-то встроенному алгоритму):
Код:
dhcp 04-13/16:29:35  INFO [dhcpLstnr-p-11-t-6] InetAbstractDhcpProcessor - REQUEST:
Message type: BOOT_REQUEST
Dhcp message type: DHCP Request{3}
htype: 1, hlen: 6, hops: 1
xid: -723452386, secs: 0, flags: 0
Client IP: 10.24.104.162
Your IP: 0.0.0.0
Server IP: 0.0.0.0
Relay IP: 192.168.52.1
Client MAC: {28285D67708D}
  Client-ident.{61}={0128285D67708D}
  Vendor class ident.{60}={6E6468637063}
  Host name{12}={Keenetic_Start}
  Max Msg Size{57}=0
  Param request list{55}={1, 3, 6, 15, 28, 33, 42, 43, 121, -7}
  Agent information{82}=
    sub{1}={000404220003}
    sub{2}={0006BCF685F91BC0}

dhcp 04-13/16:29:35 DEBUG [dhcpLstnr-p-11-t-6] InetAbstractDhcpProcessor - OP_BOOT_REQUEST
dhcp 04-13/16:29:35 DEBUG [dhcpLstnr-p-11-t-6] InetAbstractDhcpProcessor - Found device by giaddr id=200
dhcp 04-13/16:29:35 DEBUG [dhcpLstnr-p-11-t-6] InetAbstractDhcpProcessor - Found subDevice by identifier id=133
dhcp 04-13/16:29:35 DEBUG [dhcpLstnr-p-11-t-6] InetDhcpHelperProcessor - request.giaddr = 192.168.52.1
dhcp 04-13/16:29:35 DEBUG [dhcpLstnr-p-11-t-6] InetAbstractDhcpProcessor - DHCP_REQUEST
dhcp 04-13/16:29:35  INFO [dhcpLstnr-p-11-t-6] InetAbstractDhcpProcessor - RESPONSE:
Message type: BOOT_RESPONSE
Dhcp message type: DHCP ACK{5}
htype: 1, hlen: 6, hops: 1
xid: -723452386, secs: 0, flags: 0
Client IP: 10.24.104.162
Your IP: 10.24.104.162
Server IP: 0.0.0.0
Relay IP: 192.168.52.1
Client MAC: {28285D67708D}
  Agent information{82}=
    sub{1}={000404220003}
    sub{2}={0006BCF685F91BC0}
  IP Address Lease Time{51}=600
  Server Identifier{54}={00000000}
  DNS{6}={08080808B2D48006}
  Subnet mask{1}=255.255.240.0
  Router{3}=10.24.96.1


Вот лог, когда предобработчик вызывается, но видно, что сначала тоже есть попытка вычисления по какому-то встроенному алгоритму:
Код:
dhcp 04-13/16:29:36  INFO [dhcpLstnr-p-11-t-7] InetAbstractDhcpProcessor - REQUEST:
Message type: BOOT_REQUEST
Dhcp message type: DHCP Request{3}
htype: 1, hlen: 6, hops: 1
xid: -1728768363, secs: 0, flags: 0
Client IP: 10.24.100.25
Your IP: 0.0.0.0
Server IP: 0.0.0.0
Relay IP: 192.168.52.1
Client MAC: {BCEE7B20EF56}
  Client-ident.{61}={01BCEE7B20EF56}
  Host name{12}={home}
  Client FQDN{81}={000000686F6D65}
  Vendor class ident.{60}={4D53465420352E30}
  Param request list{55}={1, 15, 3, 6, 44, 46, 47, 31, 33, 121, -7, -4, 43}
  Agent information{82}=
    sub{1}={2109047B000001000000B4}
    sub{2}={000000000CA8F94B892CA002005E006568}

dhcp 04-13/16:29:36 DEBUG [dhcpLstnr-p-11-t-7] InetAbstractDhcpProcessor - OP_BOOT_REQUEST
dhcp 04-13/16:29:36 DEBUG [dhcpLstnr-p-11-t-7] InetAbstractDhcpProcessor - Found device by giaddr id=200
dhcp 04-13/16:29:36  INFO [dhcpLstnr-p-11-t-7] InetAbstractDhcpProcessor - Agent device not found by agentRemoteId=00000ca8f94b
dhcp 04-13/16:29:36  INFO [dhcpLstnr-p-11-t-7] ISGProtocolHandler - preprocessDhcpRequest
dhcp 04-13/16:29:36  INFO [dhcpLstnr-p-11-t-7] InetAbstractDhcpProcessor - REQUEST_AFTER_PREPROCESS:
Message type: BOOT_REQUEST
Dhcp message type: DHCP Request{3}
htype: 1, hlen: 6, hops: 1
xid: -1728768363, secs: 0, flags: 0
Client IP: 10.24.100.25
Your IP: 0.0.0.0
Server IP: 0.0.0.0
Relay IP: 192.168.52.1
Client MAC: {BCEE7B20EF56}
  Client-ident.{61}={01BCEE7B20EF56}
  Host name{12}={home}
  Client FQDN{81}={000000686F6D65}
  Vendor class ident.{60}={4D53465420352E30}
  Param request list{55}={1, 15, 3, 6, 44, 46, 47, 31, 33, 121, -7, -4, 43}
  Agent information{82}=
    sub{1}={2109047B000001000000B4}
    sub{2}={000CA8F94B892CA0}

А здесь видимо встроенный алгоритм дает сбой, т.к. опция слишком короткая, при этом предобработчик не вызывается, а просто вываливается с ошибка:
Код:

dhcp 04-13/16:29:36  INFO [dhcpLstnr-p-11-t-1] InetAbstractDhcpProcessor - REQUEST:
Message type: BOOT_REQUEST
Dhcp message type: DHCP Discover{1}
htype: 1, hlen: 6, hops: 1
xid: -1024031714, secs: 0, flags: 0
Client IP: 0.0.0.0
Your IP: 0.0.0.0
Server IP: 0.0.0.0
Relay IP: 192.168.52.1
Client MAC: {A8F94B02F0FF}
  Client-ident.{61}={01A8F94B02F0FF}
  Vendor class ident.{60}={456C746578526F75746572}
  Param request list{55}={33, 121, 1, 3, 6, 12, 15, 28, 40, 41, 42, 43, 66, 67}
  Agent information{82}=
    sub{1}={03E7000A18}
    sub{2}={847973D96492}
    sub{9}={00000CF8080106537769746368}

dhcp 04-13/16:29:36 DEBUG [dhcpLstnr-p-11-t-1] InetAbstractDhcpProcessor - OP_BOOT_REQUEST
dhcp 04-13/16:29:36 DEBUG [dhcpLstnr-p-11-t-1] InetAbstractDhcpProcessor - Found device by giaddr id=200
dhcp 04-13/16:29:36 ERROR [dhcpLstnr-p-11-t-1] AbstractInetDeviceRuntime - Error while parsing agentRemoteId from DHCP-request. Check dhcp.option82.agentRemoteId... and dhcp.option82.removeHeader parameters.
dhcp 04-13/16:29:36 ERROR [dhcpLstnr-p-11-t-1] DhcpListenerWorker -
java.lang.ArrayIndexOutOfBoundsException
        at ru.bitel.bgbilling.modules.inet.runtime.device.AbstractInetDeviceRuntime.getOption82AgentRemoteId(AbstractInetDeviceRuntime.java:100)
        at ru.bitel.bgbilling.modules.inet.runtime.device.InetDeviceRuntime.getOption82AgentRemoteId(InetDeviceRuntime.java:47)
        at ru.bitel.bgbilling.modules.inet.dhcp.InetAbstractDhcpProcessor.processOption82Request(InetAbstractDhcpProcessor.java:453)
        at ru.bitel.bgbilling.modules.inet.dhcp.InetAbstractDhcpProcessor.processRequest(InetAbstractDhcpProcessor.java:253)
        at ru.bitel.bgbilling.kernel.network.dhcp.DhcpListenerWorker.runImpl(DhcpListenerWorker.java:90)
        at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
        at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:46)

_________________
Клиент: вер. 7.2.198 / 19.08.2019 19:30:12
Сервер: вер. 7.2.1061 / 19.08.2019 19:32:26
card: вер. 7.2.201 / 24.07.2019 03:56:11
dialup: вер. 7.2.303 / 04.07.2019 17:11:44
inet: вер. 7.2.639 / 19.08.2019 19:32:59
ipn: вер. 7.2.232 / 19.08.2019 19:32:53
mps: вер. 7.2.177 / 08.08.2019 16:32:31
npay: вер. 7.2.174 / 25.07.2019 19:48:57
phone: вер. 7.2.260 / 08.08.2019 16:32:32
reports: вер. 7.2.203 / 12.08.2019 21:56:13
trayinfo: вер. 7.2.160 / 25.06.2019 16:47:08
voice: вер. 7.2.63 / 19.08.2019 19:33:01
voiceip: вер. 7.2.176 / 25.06.2019 16:46:56


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разные форматы agentRemoteId
СообщениеДобавлено: 13 апр 2018, 21:45 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Я не вижу, чтобы у вас отрабатывала предобработка перед попыткой получить agentRemoteId.
C параметром dhcp.deviceSearchMode=0 предобработка должна быть сразу после Found device by giaddr id=200

Может быть этот параметр у вас два раза указан в конфиге?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разные форматы agentRemoteId
СообщениеДобавлено: 14 апр 2018, 01:08 
Не в сети
Клиент

Зарегистрирован: 04 авг 2007, 19:57
Сообщения: 157
Карма: 0
У нас обработчик не вынесен отдельным классом, изменения внесены непосредственно в preprocessDhcpRequest в ISGProtocolHandler. Знаю что это неправильно, но уже много лет работает так.
В логах видно выполнение команды logger.info("preprocessDhcpRequest") в обработчике preprocessDhcpRequest:
Код:
dhcp 04-13/16:29:36  INFO [dhcpLstnr-p-11-t-7] ISGProtocolHandler - preprocessDhcpRequest

Также видно изменение 82 опции в DHCP-пакете после его обработки:
Код:
было
Agent information{82}=
    sub{1}={2109047B000001000000B4}
    sub{2}={000000000CA8F94B892CA002005E006568}

стало
Agent information{82}=
    sub{1}={2109047B000001000000B4}
    sub{2}={000CA8F94B892CA0}

На опции длиной 8 байт sub{2}={0006BCF685F91BC0} обработчик preprocessDhcpRequest не вызывается, т.к. agentRemoteId вычисляется по какому-то дефолтовому алгоритму.
А на короткой опции длиной всего 6 байт sub{2}={847973D96492} по всей видимости этот дефолтовый алгоритм выдает ошибку и вызов обработчика preprocessDhcpRequest уже не происходит.

_________________
Клиент: вер. 7.2.198 / 19.08.2019 19:30:12
Сервер: вер. 7.2.1061 / 19.08.2019 19:32:26
card: вер. 7.2.201 / 24.07.2019 03:56:11
dialup: вер. 7.2.303 / 04.07.2019 17:11:44
inet: вер. 7.2.639 / 19.08.2019 19:32:59
ipn: вер. 7.2.232 / 19.08.2019 19:32:53
mps: вер. 7.2.177 / 08.08.2019 16:32:31
npay: вер. 7.2.174 / 25.07.2019 19:48:57
phone: вер. 7.2.260 / 08.08.2019 16:32:32
reports: вер. 7.2.203 / 12.08.2019 21:56:13
trayinfo: вер. 7.2.160 / 25.06.2019 16:47:08
voice: вер. 7.2.63 / 19.08.2019 19:33:01
voiceip: вер. 7.2.176 / 25.06.2019 16:46:56


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разные форматы agentRemoteId
СообщениеДобавлено: 14 апр 2018, 01:15 
Не в сети
Клиент

Зарегистрирован: 04 авг 2007, 19:57
Сообщения: 157
Карма: 0
Amir писал(а):
Я не вижу, чтобы у вас отрабатывала предобработка перед попыткой получить agentRemoteId.
C параметром dhcp.deviceSearchMode=0 предобработка должна быть сразу после Found device by giaddr id=200

Может быть этот параметр у вас два раза указан в конфиге?

Только сейчас заметил, что после того как перепробовали все значения этого параметра его вообще закомментировали. Какое значение этой опции по умолчанию?

_________________
Клиент: вер. 7.2.198 / 19.08.2019 19:30:12
Сервер: вер. 7.2.1061 / 19.08.2019 19:32:26
card: вер. 7.2.201 / 24.07.2019 03:56:11
dialup: вер. 7.2.303 / 04.07.2019 17:11:44
inet: вер. 7.2.639 / 19.08.2019 19:32:59
ipn: вер. 7.2.232 / 19.08.2019 19:32:53
mps: вер. 7.2.177 / 08.08.2019 16:32:31
npay: вер. 7.2.174 / 25.07.2019 19:48:57
phone: вер. 7.2.260 / 08.08.2019 16:32:32
reports: вер. 7.2.203 / 12.08.2019 21:56:13
trayinfo: вер. 7.2.160 / 25.06.2019 16:47:08
voice: вер. 7.2.63 / 19.08.2019 19:33:01
voiceip: вер. 7.2.176 / 25.06.2019 16:46:56


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разные форматы agentRemoteId
СообщениеДобавлено: 14 апр 2018, 02:19 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
По умолчанию исторически - 1. Вам нужно 0.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разные форматы agentRemoteId
СообщениеДобавлено: 16 апр 2018, 14:25 
Не в сети
Клиент

Зарегистрирован: 04 авг 2007, 19:57
Сообщения: 157
Карма: 0
С dhcp.deviceSearchMode=0 все заработало как надо, спасибо.

_________________
Клиент: вер. 7.2.198 / 19.08.2019 19:30:12
Сервер: вер. 7.2.1061 / 19.08.2019 19:32:26
card: вер. 7.2.201 / 24.07.2019 03:56:11
dialup: вер. 7.2.303 / 04.07.2019 17:11:44
inet: вер. 7.2.639 / 19.08.2019 19:32:59
ipn: вер. 7.2.232 / 19.08.2019 19:32:53
mps: вер. 7.2.177 / 08.08.2019 16:32:31
npay: вер. 7.2.174 / 25.07.2019 19:48:57
phone: вер. 7.2.260 / 08.08.2019 16:32:32
reports: вер. 7.2.203 / 12.08.2019 21:56:13
trayinfo: вер. 7.2.160 / 25.06.2019 16:47:08
voice: вер. 7.2.63 / 19.08.2019 19:33:01
voiceip: вер. 7.2.176 / 25.06.2019 16:46:56


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.103s | 50 Queries | GZIP : On ]