forum.bitel.ru http://forum.bitel.ru/ |
|
[6.1] Поиск по giaddr http://forum.bitel.ru/viewtopic.php?f=44&t=10662 |
Страница 1 из 1 |
Автор: | Phricker [ 29 июн 2015, 19:52 ] |
Заголовок сообщения: | [6.1] Поиск по giaddr |
На вики есть статья про разные типы устройств c разным форматом agentRemoteId Заведена следующая ветка ![]() Конфиг устройств. AGG Код: dhcp.deviceSearchMode=0 D-Link Код: #Определение option82 как строк dhcp.option82.remoteId.type=0 # Нужно указать код субопции опции 82 для извлечения значений # agentRemoteId обычно находится в субопции 2 dhcp.option82.agentRemoteId.code=2 # interfaceId обычно находится в субопции 1 (circuitId) dhcp.option82.interfaceId.code=1 # vlanId обычно находится в субопции 1 (circuitId) dhcp.option82.vlanId.code=1 # убираем заголовок-длину dhcp.option82.removeHeader=2 # Нужно указать параметры извлечения agentRemoteId из субопции (dhcp.option82.agentRemoteId.code) # позиция значения внутри субопции dhcp.option82.agentRemoteId.position=0 # если длина значения может изменятся и нужно брать значение до конца субопции, то укажите -1 dhcp.option82.agentRemoteId.length=6 # код субопции 82, содержащей интерфейс, позиция и длина в субопции dhcp.option82.interfaceId.position=2 dhcp.option82.interfaceId.length=2 HuaWei Код: # убираем заголовок-длину dhcp.option82.removeHeader=0 # позиция agentRemoteId dhcp.option82.agentRemoteId.position=0 dhcp.option82.agentRemoteId.length=0 #Определение option82 как строк dhcp.option82.remoteId.type=1 DHCP приходящий с D-Link Код: 06-29/16:43:17 INFO [dhcpLstnr-p-11-t-42] InetAbstractDhcpProcessor - REQUEST: Message type: BOOT_REQUEST Dhcp message type: DHCP Discover{1} htype: 1, hlen: 6, hops: 1 xid: 734504267, secs: 176, flags: 0 Client IP: 0.0.0.0 Your IP: 0.0.0.0 Server IP: 0.0.0.0 Relay IP: 10.154.0.1 Client MAC: {20CF30950959} Requested IP Address{50}=10.154.0.112 Host name{12}={monitoring} Parameter request list{55}={1, 28, 2, 3, 15, 6, 119, 12, 44, 47, 26, 121, 42} Agent information{82}= sub{1}={000406570002} sub{2}={0006001B11215C93} 06-29/16:43:17 INFO [dhcpLstnr-p-11-t-42] AsciiProtocolHandler - preprocessDhcpRequest 06-29/16:43:17 INFO [dhcpLstnr-p-11-t-42] AsciiProtocolHandler - circuitId=...W.. 06-29/16:43:17 INFO [dhcpLstnr-p-11-t-42] AsciiProtocolHandler - remoteId=.....!\� 06-29/16:43:17 INFO [dhcpLstnr-p-11-t-42] InetAbstractDhcpProcessor - REQUEST_AFTER_PREPROCESS: Message type: BOOT_REQUEST Dhcp message type: DHCP Discover{1} htype: 1, hlen: 6, hops: 1 xid: 734504267, secs: 176, flags: 0 Client IP: 0.0.0.0 Your IP: 0.0.0.0 Server IP: 0.0.0.0 Relay IP: 10.154.0.1 Client MAC: {20CF30950959} Requested IP Address{50}=10.154.0.112 Host name{12}={monitoring} Parameter request list{55}={1, 28, 2, 3, 15, 6, 119, 12, 44, 47, 26, 121, 42} Agent information{82}= sub{1}={000406570002} sub{2}={0006001B11215C93} Common options: {agentRemoteId=.....!\�, interfaceId=...W..} 06-29/16:43:17 INFO [dhcpLstnr-p-11-t-42] InetAbstractDhcpProcessor - Agent device not found by agentRemoteId=.....!\� 06-29/16:43:17 INFO [dhcpLstnr-p-11-t-42] InetDhcpDevice - Search serv on deviceId: 1841; 1; interfaceId: 0 06-29/16:43:17 INFO [dhcpLstnr-p-11-t-42] InetDhcpProcessor - InetServ not found. В общем проблема в следующем. Клиент сидящий с HuaWei - подключается. У него option82 приходит как строка Код: Agent information{82}= sub{1}={31} sub{2}={3233372E3834302E3030312E303832} Клиент который подключается с DLink - не найдено устройство, о чем собственно написано. Если конфиги HuaWei и DLink прописывать в AGG все работает, но только для одного конкретного коммутатора соответственно. |
Автор: | Amir [ 29 июн 2015, 20:17 ] |
Заголовок сообщения: | Re: [6.1] Поиск по giaddr |
AsciiProtocolHandler какой-то странный remoteId проставляет для DLink - remoteId=.....!\� Он установлен у AGG? |
Автор: | Phricker [ 29 июн 2015, 20:22 ] |
Заголовок сообщения: | Re: [6.1] Поиск по giaddr |
чОрд. Туда то я не посмотрел. Да у AGG стоит следующее. Код: DhcpOption circuitIdOption = request.getSubOption( (byte)1 ); DhcpOption remoteIdOption = request.getSubOption( (byte)2 ); String circuitId = new String( circuitIdOption.value, "UTF-8" ); String remoteId = new String( remoteIdOption.value, "UTF-8" ); logger.info( "circuitId=" + circuitId ); logger.info( "remoteId=" + remoteId ); request.setOption( InetDhcpProcessor.AGENT_REMOTE_ID, remoteId ); request.setOption( InetDhcpProcessor.INTERFACE_ID, circuitId ); Но если я уберу это, то как тогда будет проверяться строка которая приходит с HuaWei? |
Автор: | Amir [ 29 июн 2015, 20:42 ] |
Заголовок сообщения: | Re: [6.1] Поиск по giaddr |
В giaddr же AGG указан? Т.е. получается, что определить, DLink это или Huawei можно только по содержимому пакета. Значит и остается, что в этом скрипте в зависимости, например, от длины суб-опций по разному вытаскивать и проставлять AGENT_REMOTE_ID. |
Автор: | Phricker [ 29 июн 2015, 20:47 ] |
Заголовок сообщения: | Re: [6.1] Поиск по giaddr |
Т.е. я вешаю обработчик протокола на AGG, который в зависимости от того, что пришло в option82, будет корректным образом расшифровывать и прописывать? А уже потом будет происходить поиск устройства на котором абонент? |
Автор: | Amir [ 29 июн 2015, 20:56 ] |
Заголовок сообщения: | Re: [6.1] Поиск по giaddr |
Только AGENT_REMOTE_ID. Далее по AGENT_REMOTE_ID найдется агентское устройство и выполнится его предобработка и применятся его параметры, в т.ч. извлечения circuitId/VLAN/interface. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |