Вот лог, когда предобработчик 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)