Доброго дня,
В полностью рабочую схему добавил новый тип устройства уровня доступа (GePON OLT), в принципе для биллинга должно быть все равно - так как устройство так же вставляет в opt82 номер порта (в этом случае разве что виртуального), но в результате получаю ошибку:
Код:
05-13/20:03:24 INFO [dhcpLstnr-p-9-t-7] InetAbstractDhcpProcessor - REQUEST:
Message type: BOOT_REQUEST
Dhcp message type: DHCP Discover{1}
htype: 1, hlen: 6, hops: 1
xid: 125318934, secs: 0, flags: 0
Client IP: 0.0.0.0
Your IP: 0.0.0.0
Server IP: 0.0.0.0
Relay IP: 109.XXX.49.254
Client MAC: {001560BBCB17}
Host name{12}={hp-notebook}
Parameter request list{55}={1, 28, 2, 3, 15, 6, 12, 44, 47}
Agent information{82}=
sub{1}={0515000701}
sub{2}={FCFAF7C5AB36}
05-13/20:03:24 DEBUG [dhcpLstnr-p-9-t-7] InetAbstractDhcpProcessor - OP_BOOT_REQUEST
05-13/20:03:24 DEBUG [dhcpLstnr-p-9-t-7] InetAbstractDhcpProcessor - Found device by giaddr id=13
05-13/20:03:24 ERROR [dhcpLstnr-p-9-t-7] DhcpListenerWorker -
java.lang.ArrayIndexOutOfBoundsException
at java.lang.System.arraycopy(Native Method)
at ru.bitel.bgbilling.modules.inet.runtime.device.AbstractInetDeviceRuntime.getOption82AgentRemoteId(AbstractInetDeviceRuntime.java:97)
at ru.bitel.bgbilling.modules.inet.runtime.device.InetDeviceRuntime.getOption82AgentRemoteId(InetDeviceRuntime.java:1)
at ru.bitel.bgbilling.modules.inet.dhcp.InetAbstractDhcpProcessor.processOption82Request(InetAbstractDhcpProcessor.java:395)
at ru.bitel.bgbilling.modules.inet.dhcp.InetAbstractDhcpProcessor.processRequest(InetAbstractDhcpProcessor.java:261)
at ru.bitel.bgbilling.kernel.network.dhcp.DhcpListenerWorker.runImpl(DhcpListenerWorker.java:55)
at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:662)
at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)
dhcpdump запроса:
Код:
---------------------------------------------------------------------------
TIME: 2014-05-13 20:12:16.018
IP: 109.XXX.49.254 (0:21:a0:71:d1:d0) > 10.199.1.23 (0:c:29:b2:74:d9)
OP: 1 (BOOTPREQUEST)
HTYPE: 1 (Ethernet)
HLEN: 6
HOPS: 1
XID: 5fe4d917
SECS: 0
FLAGS: 0
CIADDR: 0.0.0.0
YIADDR: 0.0.0.0
SIADDR: 0.0.0.0
GIADDR: 109.XXX.49.254
CHADDR: 00:15:60:bb:cb:17:00:00:00:00:00:00:00:00:00:00
SNAME: .
FNAME: .
OPTION: 53 ( 1) DHCP message type 1 (DHCPDISCOVER)
OPTION: 12 ( 13) Host name hp-notebook
OPTION: 55 ( 9) Parameter Request List 1 (Subnet mask)
28 (Broadcast address)
2 (Time offset)
3 (Routers)
15 (Domainname)
6 (DNS server)
12 (Host name)
44 (NetBIOS name server)
47 (NetBIOS scope)
OPTION: 82 ( 15) Relay Agent Information
Circuit-ID 05:15:00:07:01
Remote-ID fc:fa:f7:c5:ab:36
---------------------------------------------------------------------------
dhcpdump обычного запроса от обычного свича уровня доступа (на котором все работает):
Код:
---------------------------------------------------------------------------
TIME: 2014-05-13 20:12:11.241
IP: 109.XXX.48.1 (0:21:a0:71:d1:d0) > 10.199.1.23 (0:c:29:b2:74:d9)
OP: 1 (BOOTPREQUEST)
HTYPE: 1 (Ethernet)
HLEN: 6
HOPS: 1
XID: 4168f746
SECS: 0
FLAGS: 0
CIADDR: 109.XXX.48.7
YIADDR: 0.0.0.0
SIADDR: 0.0.0.0
GIADDR: 109.XXX.48.1
CHADDR: 00:e0:4c:00:09:39:00:00:00:00:00:00:00:00:00:00
SNAME: .
FNAME: .
OPTION: 53 ( 1) DHCP message type 3 (DHCPREQUEST)
OPTION: 61 ( 7) Client-identifier 01:00:e0:4c:00:09:39
OPTION: 12 ( 6) Host name Router
OPTION: 60 ( 15) Vendor class identifier udhcp 0.9.9-pre
OPTION: 55 ( 9) Parameter Request List 1 (Subnet mask)
3 (Routers)
6 (DNS server)
12 (Host name)
15 (Domainname)
28 (Broadcast address)
44 (NetBIOS name server)
46 (NetBIOS node type)
47 (NetBIOS scope)
OPTION: 82 ( 18) Relay Agent Information
Circuit-ID 00:04:04:50:00:03
Remote-ID 00:06:00:0a:8a:d6:63:00
---------------------------------------------------------------------------
Версия биллинга:
Код:
Сервер: вер. 6.0 сборка 1723 от 10.04.2014 12:49:07
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.6.0_41
inet вер. 6.0 сборка 1369 от 07.04.2014 19:04:33
Настройки в биллинге для устройства выполняющего L3 аггрегацию (к нему подключены свичи и этот OLT):
Код:
# Код субопции 82, содержащей VLAN, позиция и длина в субопции
dhcp.option82.vlanId.code=1
dhcp.option82.vlanId.position=0
dhcp.option82.vlanId.length=2
dhcp.option82.interfaceId.code=1
dhcp.option82.interfaceId.position=2
dhcp.option82.interfaceId.length=2
dhcp.option.leaseTime=300
# параметры DHCP к сети не привязанные
dhcp.option.serverIdentifier=0.0.0.0
#dhcp.option.leaseTime=600
#dhcp.option.timeServer=ntp.bgbilling.ru
# параметр DHCP "основной шлюз" для сети
#dhcp.net.option.188.191.0.0:255.255.255.0.gate=
#dhcp.net.option.188.191.1.0:255.255.255.0.gate=
#dhcp.net.option.188.191.2.0:255.255.255.0.gate=
#dhcp.net.option.188.191.3.0:255.255.255.0.gate=
#dhcp.option.timeOffset=43200
#dhcp.option.domainName=bgbilling.ru
Номер интерфейса в opt82 что у OLT что у свича в конце строки. Разве что у OLT само поле Circuit-ID короче:
Circuit-ID 05:15:00:07:01
против
Circuit-ID 00:04:04:50:00:03
Это можно отрегулировать к конфиге? Exception может быть из-за этого?