forum.bitel.ru
http://forum.bitel.ru/

Ошибка при выдаче ip-адреса DHCP с опцией 82
http://forum.bitel.ru/viewtopic.php?f=44&t=11384
Страница 1 из 1

Автор:  NikName2016 [ 26 фев 2016, 20:31 ]
Заголовок сообщения:  Ошибка при выдаче ip-адреса DHCP с опцией 82

Пытаюсь настроить выдачу ip-адреса по DCHP с опцией 82.
Коммутатор: ELTEX MES1124M

При попытке получить адрес по DHCP получается следующая ошибка:

02-26/17:27:08 INFO [dhcpLstnr-p-7-t-7] AbstractInetDhcpProcessor2 - REQUEST:
Message type: BOOT_REQUEST
Dhcp message type: DHCP Discover{1}
htype: 1, hlen: 6, hops: 1
xid: -1730927868, secs: 7424, flags: -32768
Client IP: 0.0.0.0
Your IP: 0.0.0.0
Server IP: 0.0.0.0
Relay IP: 192.168.21.55
Client MAC: {002454B5EFE9}
{116}={01}
{61}={01002454B5EFE9}
Requested IP Address{50}=169.254.24.187
Host name{12}={support_samsung}
{60}={4D53465420352E30}
Parameter request list{55}={1, 15, 3, 6, 44, 46, 47, 31, 33, -7, 43}
{43}={DC00}
Agent information{82}=
sub{1}={000408070107}
sub{2}={0006A8F94B78ED80}

02-26/17:27:08 INFO [dhcpLstnr-p-7-t-7] InetDhcpDevice - Search serv on deviceId: 4; 1; interfaceId: 7
02-26/17:27:08 INFO [dhcpLstnr-p-7-t-7] InetDhcpProcessor2 - InetServ found: ContractId: 24; status: 0; servId: 6
п≤пҐя┌п╣я─пҐп╣я┌ (п≤пҐя┌п╣я─я└п╣п╧я│ 7)
Options [] TariffModuleTreeSet [1:26.02.2016-Б─і; ]
Device state: 1; optionSet:
02-26/17:27:08 INFO [dhcpLstnr-p-7-t-7] InetApplication - TariffOptionMap: {}
02-26/17:27:08 ERROR [dhcpLstnr-p-7-t-7] InetDhcpProcessor2 -
java.lang.NullPointerException
at ru.bitel.bgbilling.modules.inet.tariff.server.InetTariffUtils.serviceSet(InetTariffUtils.java:33)
at ru.bitel.bgbilling.modules.inet.tariff.server.ServiceSetTariffTreeNode.executeImpl(ServiceSetTariffTreeNode.java:22)
at ru.bitel.bgbilling.modules.inet.tariff.server.ServiceSetTariffTreeNode.executeImpl(ServiceSetTariffTreeNode.java:7)
at ru.bitel.bgbilling.kernel.tariff.tree.server.DefaultTariffTreeNode.executeImpl(DefaultTariffTreeNode.java:25)
at ru.bitel.bgbilling.kernel.tariff.tree.server.TariffTreeNode.execute(TariffTreeNode.java:112)
at ru.bitel.bgbilling.kernel.tariff.tree.server.TariffTreeNodeHolder.execute(TariffTreeNodeHolder.java:34)
at ru.bitel.bgbilling.kernel.tariff.tree.server.TariffTreeNode.executeChildren(TariffTreeNode.java:101)
at ru.bitel.bgbilling.kernel.tariff.tree.server.TariffTreeNode.execute(TariffTreeNode.java:116)
at ru.bitel.bgbilling.kernel.tariff.tree.server.TariffTreeNodeHolder.execute(TariffTreeNodeHolder.java:34)
at ru.bitel.bgbilling.kernel.tariff.tree.server.TariffModuleTree.execute(TariffModuleTree.java:83)
at ru.bitel.bgbilling.modules.inet.runtime.InetApplication.tarifficate(InetApplication.java:395)
at ru.bitel.bgbilling.modules.inet.runtime.InetApplication.authorization(InetApplication.java:926)
at ru.bitel.bgbilling.modules.inet.runtime.InetApplication.authorization(InetApplication.java:851)
at ru.bitel.bgbilling.modules.inet.dhcp.InetDhcpProcessor2.processOption82RequestRaw0(InetDhcpProcessor2.java:690)
at ru.bitel.bgbilling.modules.inet.dhcp.InetDhcpProcessor2.processOption82RequestRaw(InetDhcpProcessor2.java:273)
at ru.bitel.bgbilling.modules.inet.dhcp.InetDhcpProcessor2.processOption82RequestImpl(InetDhcpProcessor2.java:117)
at ru.bitel.bgbilling.modules.inet.dhcp.AbstractInetDhcpProcessor2.processOption82Request(AbstractInetDhcpProcessor2.java:352)
at ru.bitel.bgbilling.modules.inet.dhcp.AbstractInetDhcpProcessor2.processRequest(AbstractInetDhcpProcessor2.java:184)
at ru.bitel.bgbilling.modules.inet.dhcp.InetDhcpProcessor2.processRequest(InetDhcpProcessor2.java:61)
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)


Прошу подсказать, в чем может быть проблема.

Автор:  Amir [ 26 фев 2016, 21:06 ]
Заголовок сообщения:  Re: Ошибка при выдаче ip-адреса DHCP с опцией 82

В тарифе в ветке Установка услуги ничего не выбрано.

Автор:  NikName2016 [ 26 фев 2016, 23:25 ]
Заголовок сообщения:  Re: Ошибка при выдаче ip-адреса DHCP с опцией 82

в ветке "Установка услуги" выбрали "Входящий трафик" и "Исходящий трафик" (см. приложенный скриншот). Ошибка не исчезла.

Вложения:
Комментарий к файлу: скриншот-1
ustanovka_uslugi.jpg
ustanovka_uslugi.jpg [ 93.07 КБ | Просмотров: 5562 ]

Автор:  Amir [ 26 фев 2016, 23:31 ]
Заголовок сообщения:  Re: Ошибка при выдаче ip-адреса DHCP с опцией 82

После изменения тарифа на ветке Интернет нужно нажимать правой кнопкой - Оповестить об изменениях.

И установка услуги у Вас вроде как-то отдельно - должна быть внутри веток "Тип трафика". Можно вырезать-вставить.

Автор:  NikName2016 [ 26 фев 2016, 23:59 ]
Заголовок сообщения:  Re: Ошибка при выдаче ip-адреса DHCP с опцией 82

Выполнил ваши рекомендации (см. скриншот)

Текст ошибки изменился:

02-26/20:53:50 INFO [dhcpLstnr-p-7-t-1] AbstractInetDhcpProcessor2 - REQUEST:
Message type: BOOT_REQUEST
Dhcp message type: DHCP Discover{1}
htype: 1, hlen: 6, hops: 1
xid: -1203555036, secs: 1024, flags: 0
Client IP: 0.0.0.0
Your IP: 0.0.0.0
Server IP: 0.0.0.0
Relay IP: 192.168.21.55
Client MAC: {002454B5EFE9}
{116}={01}
{61}={01002454B5EFE9}
Requested IP Address{50}=169.254.24.187
Host name{12}={support_samsung}
{60}={4D53465420352E30}
Parameter request list{55}={1, 15, 3, 6, 44, 46, 47, 31, 33, -7, 43}
{43}={DC00}
Agent information{82}=
sub{1}={000408070109}
sub{2}={0006A8F94B78ED80}

02-26/20:53:50 ERROR [dhcpLstnr-p-7-t-1] AbstractInetDeviceRuntime - Error while parsing ifaceId from DHCP-request. Check dhcp.option82.interfaceId... and dhcp.option82.removeHeader parameters.
02-26/20:53:50 ERROR [dhcpLstnr-p-7-t-1] InetDhcpProcessor2 - 7
java.lang.ArrayIndexOutOfBoundsException: 7
at ru.bitel.bgbilling.modules.inet.api.server.InetUtils.parseInt(InetUtils.java:573)
at ru.bitel.bgbilling.modules.inet.runtime.device.AbstractInetDeviceRuntime.getOption82InterfaceId(AbstractInetDeviceRuntime.java:331)
at ru.bitel.bgbilling.modules.inet.runtime.device.InetDeviceRuntime.getOption82InterfaceId(InetDeviceRuntime.java:45)
at ru.bitel.bgbilling.modules.inet.dhcp.InetDhcpDevice.findServRuntime(InetDhcpDevice.java:410)
at ru.bitel.bgbilling.modules.inet.dhcp.InetDhcpProcessor2.processOption82RequestRaw(InetDhcpProcessor2.java:246)
at ru.bitel.bgbilling.modules.inet.dhcp.InetDhcpProcessor2.processOption82RequestImpl(InetDhcpProcessor2.java:117)
at ru.bitel.bgbilling.modules.inet.dhcp.AbstractInetDhcpProcessor2.processOption82Request(AbstractInetDhcpProcessor2.java:352)
at ru.bitel.bgbilling.modules.inet.dhcp.AbstractInetDhcpProcessor2.processRequest(AbstractInetDhcpProcessor2.java:184)
at ru.bitel.bgbilling.modules.inet.dhcp.InetDhcpProcessor2.processRequest(InetDhcpProcessor2.java:61)
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)



Странно, что теперь указана ошибка на параметры DHCP опции 82, я не менял данные настройки:


# Параметры для извлечения из пакета agentRemoteId
# вид значения в опции agentRemoteId: 0 (по умолчанию) - байты, 1 - строка
dhcp.option82.agentRemoteId.type=0

# Удаление заголовка, при необходимости, 0 - не удалять, 2 - 2 удалить байта (тип+длина) из значения DHCP-опции.
# При удалении поля position для agentRemoteId, vlanId, interfaceId нужно уменьшить на тоже кол-во байт
#dhcp.option82.removeHeader=0

dhcp.option82.removeHeader=0

# Параметры для извлечения из пакета agentRemoteId
# вид значения в опции agentRemoteId: 0 (по умолчанию) - байты, 1 - строка
#dhcp.option82.agentRemoteId.type=0
# код субопции 82, содержащей идентификатор коммутатора клиента, позиция и длина последовательности идентификатора

dhcp.option82.agentRemoteId.code=2
dhcp.option82.agentRemoteId.position=4
dhcp.option82.agentRemoteId.length=6

# код субопции 82, содержащей VLAN, позиция и длина в субопции
#dhcp.82.vlanOptionCode=1
#dhcp.option82.vlanId.position=3
#dhcp.option82.vlanId.length=2

# код субопции 82, содержащей интерфейс, позиция и длина в субопции
dhcp.option82.interfaceId.code=1
dhcp.option82.interfaceId.position=7
dhcp.option82.interfaceId.length=1


Вложения:
dhcp82_problem.jpg
dhcp82_problem.jpg [ 92.92 КБ | Просмотров: 5560 ]

Автор:  Amir [ 27 фев 2016, 01:45 ]
Заголовок сообщения:  Re: Ошибка при выдаче ip-адреса DHCP с опцией 82

В субопции приходит только 6 байт: sub{1}={000408070109}

Т.е. нужно position=5, если порт=9 или position=4, если порт=1

# код субопции 82, содержащей интерфейс, позиция и длина в субопции
dhcp.option82.interfaceId.code=1
dhcp.option82.interfaceId.position=5
dhcp.option82.interfaceId.length=1

Автор:  NikName2016 [ 01 мар 2016, 17:04 ]
Заголовок сообщения:  Re: Ошибка при выдаче ip-адреса DHCP с опцией 82

Спасибо, помогло следующее:

# код субопции 82, содержащей интерфейс, позиция и длина в субопции
dhcp.option82.interfaceId.code=1
dhcp.option82.interfaceId.position=5
dhcp.option82.interfaceId.length=1


и еще вот это:

# Удаление заголовка, при необходимости, 0 - не удалять, 2 - 2 удалить байта (тип+длина) из значения DHCP-опции.
# При удалении поля position для agentRemoteId, vlanId, interfaceId нужно уменьшить на тоже кол-во байт
#dhcp.option82.removeHeader=0
dhcp.option82.removeHeader=2


Но ip-адрес по-прежнему не получается:

03-01/14:02:30 INFO [dhcpLstnr-p-7-t-7] AbstractInetDhcpProcessor2 - REQUEST:
Message type: BOOT_REQUEST
Dhcp message type: DHCP Discover{1}
htype: 1, hlen: 6, hops: 1
xid: 1489681191, secs: 3072, flags: -32768
Client IP: 0.0.0.0
Your IP: 0.0.0.0
Server IP: 0.0.0.0
Relay IP: 192.168.21.55
Client MAC: {002454B5EFE9}
{116}={01}
{61}={01002454B5EFE9}
Requested IP Address{50}=169.254.24.187
Host name{12}={support_samsung}
{60}={4D53465420352E30}
Parameter request list{55}={1, 15, 3, 6, 44, 46, 47, 31, 33, -7, 43}
{43}={DC00}
Agent information{82}=
sub{1}={000408070109}
sub{2}={0006A8F94B78ED80}

03-01/14:02:30 INFO [dhcpLstnr-p-7-t-7] InetDhcpDevice - Search serv on deviceId: 4; 1; interfaceId: 9
03-01/14:02:30 INFO [dhcpLstnr-p-7-t-7] InetDhcpProcessor2 - InetServ found: ContractId: 9; status: 0; servId: 1
п≤пҐя┌п╣я─пҐп╣я┌ (п≤пҐя┌п╣я─я└п╣п╧я│ 9)
Options [] TariffModuleTreeSet [1:26.02.2016-Б─і; ]
Device state: 1; optionSet:1
03-01/14:02:30 INFO [dhcpLstnr-p-7-t-7] InetApplication - TariffOptionMap: {}
03-01/14:02:30 INFO [dhcpLstnr-p-7-t-7] InetApplication - inetServ[id=1] balance ok: 93.22 [0]
03-01/14:02:30 INFO [dhcpLstnr-p-7-t-7] InetApplication - OptionSet: [1]
03-01/14:02:30 INFO [dhcpLstnr-p-7-t-7] InetDhcpProcessor2 - IP not found in service. Searching in device...
03-01/14:02:30 INFO [dhcpLstnr-p-7-t-7] InetDhcpProcessor2 - Free IP-address not found

Автор:  NikName2016 [ 03 мар 2016, 00:22 ]
Заголовок сообщения:  Re: Ошибка при выдаче ip-адреса DHCP с опцией 82

Все еще есть проблема с получением ip-адреса по DHCP с опцией 82.

Выдается следующая ошибка:

03-02/21:13:32 INFO [dhcpLstnr-p-7-t-6] AbstractInetDhcpProcessor2 - REQUEST:
Message type: BOOT_REQUEST
Dhcp message type: DHCP Request{3}
htype: 1, hlen: 6, hops: 1
xid: -1293982744, 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.21.55
Client MAC: {002454B5EFE9}
{61}={01002454B5EFE9}
Requested IP Address{50}=10.15.8.116
Server Identifier{54}={00000000}
Host name{12}={support_samsung}
{81}={000000737570706F72745F73616D73756E672E}
{60}={4D53465420352E30}
Parameter request list{55}={1, 15, 3, 6, 44, 46, 47, 31, 33, -7, 43}
{43}={DC0100}
Agent information{82}=
sub{1}={000408070109}
sub{2}={0006A8F94B78ED80}

03-02/21:13:32 INFO [dhcpLstnr-p-7-t-6] InetDhcpDevice - Search serv on deviceId: 4; 1; interfaceId: 9
03-02/21:13:32 INFO [dhcpLstnr-p-7-t-6] InetDhcpProcessor2 - InetServ found: ContractId: 9; status: 0; servId: 1
п≤пҐя┌п╣я─пҐп╣я┌ (п≤пҐя┌п╣я─я└п╣п╧я│ 9)
Options [1:01.03.2016-31.03.2016; ] TariffModuleTreeSet [1:26.02.2016-Б─і; ]
Device state: 1; optionSet:1
03-02/21:13:32 INFO [dhcpLstnr-p-7-t-6] InetDhcpProcessor2 - Starting connection: InetConnection [id=0-0, iface=4:9, sessId=b2df63e8, start=02.03.2016 21:13:32, uname=null, addr=10.15.8.116]
03-02/21:13:36 ERROR [dhcpLstnr-p-7-t-6] InetDhcpProcessor2 - Timeout exceed!
ru.bitel.bgbilling.common.BGException: Timeout exceed!
at ru.bitel.bgbilling.modules.inet.access.InetConnectionManager.accountingStart(InetConnectionManager.java:617)
at ru.bitel.bgbilling.modules.inet.dhcp.InetDhcpProcessor2.processOption82RequestRaw0(InetDhcpProcessor2.java:1034)
at ru.bitel.bgbilling.modules.inet.dhcp.InetDhcpProcessor2.processOption82RequestRaw(InetDhcpProcessor2.java:273)
at ru.bitel.bgbilling.modules.inet.dhcp.InetDhcpProcessor2.processOption82RequestImpl(InetDhcpProcessor2.java:117)
at ru.bitel.bgbilling.modules.inet.dhcp.AbstractInetDhcpProcessor2.processOption82Request(AbstractInetDhcpProcessor2.java:352)
at ru.bitel.bgbilling.modules.inet.dhcp.AbstractInetDhcpProcessor2.processRequest(AbstractInetDhcpProcessor2.java:184)
at ru.bitel.bgbilling.modules.inet.dhcp.InetDhcpProcessor2.processRequest(InetDhcpProcessor2.java:61)
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)


То есть мы видим, что ip-адрес из пула вроде бы получается, но потом происходит следующее:

03-02/21:13:32 INFO [dhcpLstnr-p-7-t-6] InetDhcpProcessor2 - Starting connection: InetConnection [id=0-0, iface=4:9, sessId=b2df63e8, start=02.03.2016 21:13:32, uname=null, addr=10.15.8.116]
03-02/21:13:36 ERROR [dhcpLstnr-p-7-t-6] InetDhcpProcessor2 - Timeout exceed!


Прошу подсказать, что это за Timeout и как исправить ситуацию?

Автор:  Amir [ 03 мар 2016, 15:46 ]
Заголовок сообщения:  Re: Ошибка при выдаче ip-адреса DHCP с опцией 82

Либо не запущен InetAccounting, либо у него или у InetAccess прописан не правильный rootDeviceId в inet-accounting.xml (inet-access.xml).
Также в конфигурации модуля должен быть правильно указан ID ТИПА корневого устройства (Access+Accounting) в параметре accounting.deviceTypeIds=

Автор:  NikName2016 [ 03 мар 2016, 16:34 ]
Заголовок сообщения:  Re: Ошибка при выдаче ip-адреса DHCP с опцией 82

Спасибо, проблема решена:

надо было в файл inet-access.xml прописать параметр:

Код:
<param name="accounting.deviceTypeIds" value="12"/>


Странно, что он по умолчанию там отсутствует, если необходим для работы Access+Accounting.

Автор:  Amir [ 03 мар 2016, 16:55 ]
Заголовок сообщения:  Re: Ошибка при выдаче ip-адреса DHCP с опцией 82

Этот параметр (accounting.deviceTypeIds) желательно указывать сейчас в конфиге модуля, в не в inet-access.xml

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/