forum.bitel.ru http://forum.bitel.ru/ |
|
Позиции http://forum.bitel.ru/viewtopic.php?f=44&t=7885 |
Страница 1 из 2 |
Автор: | Phricker [ 26 мар 2013, 18:57 ] |
Заголовок сообщения: | Позиции |
Доброго вечера всем ![]() Опишите пожалуйста как настраиваются эти самые позиции Код: dhcp.option82.interfaceId.code= dhcp.option82.interfaceId.position= dhcp.option82.interfaceId.length= Сейчас стоит Код: # Удаление заголовка, при необходимости, 0 - не удалять, 2 - 2 удалить байта (тип+длина) из значения DHCP-опции dhcp.option82.removeHeader=0 # Код субопции 82, содержащей идентификатор коммутатора клиента, позиция и длина последовательности идентификатора dhcp.option82.agentRemoteId.code=1 dhcp.option82.agentRemoteId.position=0 dhcp.option82.agentRemoteId.length=6 # Код субопции 82, содержащей VLAN, позиция и длина в субопции dhcp.option82.vlanId.code=1 dhcp.option82.vlanId.position=2 dhcp.option82.vlanId.length=2 # Код субопции 82, содержащей интерфейс, позиция и длина в субопции dhcp.option82.interfaceId.code=1 dhcp.option82.interfaceId.position=6 dhcp.option82.interfaceId.length=2 Собственно устройство находится Код: 03-26/16:48:48 DEBUG [rdsLstnr-p-8-t-5] InetNas - agentRemoteId=209.820.001.042 03-26/16:48:48 INFO [rdsLstnr-p-8-t-5] InetNas - Found agentDevice:6 А вот интерфейс нифига Код: 03-26/16:48:48 INFO [rdsLstnr-p-8-t-5] InetNas - Search serv on deviceId=6; interfaceId=32 03-26/16:48:48 INFO [rdsLstnr-p-8-t-5] InetRadiusProcessor - [username=209.820.001.042:Ethernet0/0/20] InetServ not found. 03-26/16:48:48 INFO [rdsLstnr-p-8-t-5] InetRadiusProcessor - Return code=1 Понять не могу как это все высчитывается. |
Автор: | Phricker [ 26 мар 2013, 19:00 ] |
Заголовок сообщения: | Re: Позиции |
Собственно сам RADIUS запрос Код: Attributes:
User-Name=209.820.001.042:Ethernet0/0/20 NAS-Identifier=Router NAS-Port-Id=0/0/0/25 User-Password=123 NAS-IP-Address=192.168.144.2 NAS-Port=947 Service-Type=5 Calling-Station-Id=044b.8080.8003 Acct-Session-Id=C0A8010272000000000003B3 NAS-Port-Type=33 cisco-avpair=circuit-id-tag=Ethernet0/0/20 cisco-avpair=remote-id-tag=209.820.001.042 cisco-NAS-Port=0/0/0/25 |
Автор: | Phricker [ 26 мар 2013, 19:01 ] |
Заголовок сообщения: | Re: Позиции |
Код: 03-26/16:48:48 INFO [rdsLstnr-p-8-t-5] RadiusListenerWorker - REQUEST:
Packet type: Access-Request Identifier: 13 Authenticator: {46 90 07 7F 29 C0 84 00 2F 09 E9 5A A9 56 9F BE} Attributes: User-Name=209.820.001.042:Ethernet0/0/20:044b.8080.8003 NAS-Identifier=Router NAS-Port-Id=0/0/0/25 User-Password=123 NAS-IP-Address=192.168.144.2 NAS-Port=947 Service-Type=5 Acct-Session-Id=C0A8010272000000000003B3 NAS-Port-Type=33 cisco-avpair=circuit-id-tag=Ethernet0/0/20 cisco-avpair=remote-id-tag=209.820.001.042 cisco-NAS-Port=0/0/0/25 03-26/16:48:48 INFO [rdsLstnr-p-8-t-5] InetRadiusProcessor - REQUEST_AFTER_PREPROCESS: Packet type: Access-Request Identifier: 13 Authenticator: {46 90 07 7F 29 C0 84 00 2F 09 E9 5A A9 56 9F BE} Attributes: User-Name=209.820.001.042:Ethernet0/0/20 NAS-Identifier=Router NAS-Port-Id=0/0/0/25 User-Password=123 NAS-IP-Address=192.168.144.2 NAS-Port=947 Service-Type=5 Calling-Station-Id=044b.8080.8003 Acct-Session-Id=C0A8010272000000000003B3 NAS-Port-Type=33 cisco-avpair=circuit-id-tag=Ethernet0/0/20 cisco-avpair=remote-id-tag=209.820.001.042 cisco-NAS-Port=0/0/0/25 Common options: {agentRemoteId=209.820.001.042, agentCircuitId=Ethernet0/0/20} 03-26/16:48:48 DEBUG [rdsLstnr-p-8-t-5] RadiusProcessor - Create new radius session. 03-26/16:48:48 DEBUG [rdsLstnr-p-8-t-5] InetNas - agentRemoteId=209.820.001.042 03-26/16:48:48 INFO [rdsLstnr-p-8-t-5] InetNas - Found agentDevice:6 03-26/16:48:48 DEBUG [rdsLstnr-p-8-t-5] InetNas - findServ agentDeviceRuntime=ru.bitel.bgbilling.modules.inet.runtime.device.InetDeviceRuntime@683aec42 03-26/16:48:48 INFO [rdsLstnr-p-8-t-5] InetNas - Search serv on deviceId=6; interfaceId=32 03-26/16:48:48 INFO [rdsLstnr-p-8-t-5] InetRadiusProcessor - [username=209.820.001.042:Ethernet0/0/20] InetServ not found. 03-26/16:48:48 INFO [rdsLstnr-p-8-t-5] InetRadiusProcessor - Return code=1 03-26/16:48:48 INFO [rdsLstnr-p-8-t-5] InetRadiusProcessor - RESPONSE_BEFORE_POSTPROCESS: Packet type: Access-Reject Identifier: 13 Authenticator: {} Attributes: Reply-Message=1 Process time auth: 1 03-26/16:48:48 DEBUG [rdsLstnr-p-8-t-5] ProcessorRequest - Sending to /192.168.144.2:1645 03-26/16:48:48 INFO [rdsLstnr-p-8-t-5] InetRadiusListenerWorker - RESPONSE: Packet type: Access-Reject Identifier: 13 Authenticator: {A7 38 F0 BB 2E 36 3E 36 3A 09 7F 38 BB 28 B3 22} Attributes: Reply-Message=1 Process time auth: 3 03-26/16:49:04 DEBUG [setup-sched-p-1-t-1] RadiusProcessor - After clean old rad sessions: 0 |
Автор: | Amir [ 26 мар 2013, 19:05 ] |
Заголовок сообщения: | Re: Позиции |
А что за схема? DHCP-пакеты там присутствуют? Код: cisco-avpair=circuit-id-tag=Ethernet0/0/20 Первый раз вижу, чтобы строкой передавались, до этого там всегда были байты прямо из DHCP-пакета.
cisco-avpair=remote-id-tag=209.820.001.042 |
Автор: | Amir [ 26 мар 2013, 19:11 ] |
Заголовок сообщения: | Re: Позиции |
Можно попробовать сделать переопределением ProtocolHandler'а, расширив стандартный ISGProtocolHandler, например, подменив метод setAgentOptions: Код: protected void setAgentOptions( final RadiusPacket request ) А те параметры сделаны для извлечения из 16-ричной строки или из байт DHCP-опции DHCP-пакета.
{ final Object agentRemoteId = getAttributeValue( request, radiusVendor, agentOptionRemoteIdType, agentOptionRemoteIdPrefix ); if( agentRemoteId != null ) { setAgentOption( request, agentRemoteId, InetRadiusProcessor.AGENT_REMOTE_ID ); } String remoteId = (String)getAttributeValue( request, 9, "circuit-id-tag=" ); int interfaceId = Utils.parseInt( remoteId.split("/")[2], -1 ); request.setOption( InetRadiusProcessor.INTERFACE_ID, interfaceId ); } |
Автор: | Phricker [ 27 мар 2013, 11:34 ] |
Заголовок сообщения: | Re: Позиции |
Код: dhcp 03-27/09:25:20 DEBUG [dhcpLstnr-p-10-t-2] InetDhcpDeviceMap - Found device by giaddr id=2 dhcp 03-27/09:25:20 DEBUG [dhcpLstnr-p-10-t-2] InetDhcpDeviceMap - Found subDevice by identifier id=6 dhcp 03-27/09:25:20 INFO [dhcpLstnr-p-10-t-2] InetAbstractDhcpProcessor - REQUEST: Message type: BOOT_REQUEST Dhcp message type: DHCP Discover{1} htype: 1, hlen: 6, hops: 2 xid: 567354839, secs: 1024, flags: 0 Client IP: 0.0.0.0 Your IP: 0.0.0.0 Server IP: 0.0.0.0 Relay IP: 10.128.0.1 Client MAC: {044B80808003} {116}={01} {61}={01044B80808003} Host name{12}={SOFT} {60}={4D53465420352E30} Parameter request list{55}={1, 15, 3, 6, 44, 46, 47, 31, 33, -7, 43} {43}={DC00} Agent information{82}= sub{1}={3230} sub{2}={3230392E3832302E3030312E303432} dhcp 03-27/09:25:20 DEBUG [dhcpLstnr-p-10-t-2] InetAbstractDhcpProcessor - OP_BOOT_REQUEST dhcp 03-27/09:25:20 DEBUG [dhcpLstnr-p-10-t-2] InetDhcpHelperProcessor - request.giaddr = 10.128.0.1 dhcp 03-27/09:25:20 ERROR [dhcpLstnr-p-10-t-2] InetDhcpHelperProcessor - Not found params for request: 6:48:044B80808003 (pattern: $remoteId:$circuitId:$mac, servSearchMode: 1, deviceId: 6, agentDeviceId: 6, mac: 044B80808003) dhcp 03-27/09:25:20 INFO [dhcpLstnr-p-10-t-2] InetAbstractDhcpProcessor - RESPONSE: Message type: BOOT_RESPONSE Dhcp message type: DHCP NAK{6} htype: 1, hlen: 6, hops: 2 xid: 567354839, secs: 0, flags: 0 Client IP: 0.0.0.0 Your IP: 0.0.0.0 Server IP: 0.0.0.0 Relay IP: 10.128.0.1 Client MAC: {044B80808003} Agent information{82}= sub{1}={3230} sub{2}={3230392E3832302E3030312E303432} dhcp 03-27/09:25:20 DEBUG [dhcpLstnr-p-10-t-2] ProcessorRequest - Sending to /172.16.100.1:67 radius 03-27/09:25:20 INFO [rdsLstnr-p-8-t-2] RadiusListenerWorker - REQUEST: Packet type: Access-Request Identifier: 33 Authenticator: {47 39 A4 00 4C 23 89 4D 7D AD 8A 6E 26 7E 55 F5} Attributes: User-Name=209.820.001.042:20:044b.8080.8003 NAS-Identifier=Router NAS-Port-Id=0/0/0/25 User-Password=123 NAS-IP-Address=192.168.144.2 NAS-Port=1213 Service-Type=5 Acct-Session-Id=C0A8010272000000000004BD NAS-Port-Type=33 cisco-avpair=circuit-id-tag=20 cisco-avpair=remote-id-tag=209.820.001.042 cisco-NAS-Port=0/0/0/25 radius 03-27/09:25:20 INFO [rdsLstnr-p-8-t-2] InetRadiusProcessor - REQUEST_AFTER_PREPROCESS: Packet type: Access-Request Identifier: 33 Authenticator: {47 39 A4 00 4C 23 89 4D 7D AD 8A 6E 26 7E 55 F5} Attributes: User-Name=209.820.001.042:20 NAS-Identifier=Router NAS-Port-Id=0/0/0/25 User-Password=123 NAS-IP-Address=192.168.144.2 NAS-Port=1213 Service-Type=5 Calling-Station-Id=044b.8080.8003 Acct-Session-Id=C0A8010272000000000004BD NAS-Port-Type=33 cisco-avpair=circuit-id-tag=20 cisco-avpair=remote-id-tag=209.820.001.042 cisco-NAS-Port=0/0/0/25 Common options: {agentRemoteId=209.820.001.042, agentCircuitId=20} radius 03-27/09:25:20 DEBUG [rdsLstnr-p-8-t-2] RadiusProcessor - Create new radius session. radius 03-27/09:25:20 DEBUG [rdsLstnr-p-8-t-2] InetNas - agentRemoteId=209.820.001.042 radius 03-27/09:25:20 INFO [rdsLstnr-p-8-t-2] InetNas - Found agentDevice:6 radius 03-27/09:25:20 DEBUG [rdsLstnr-p-8-t-2] InetNas - findServ agentDeviceRuntime=ru.bitel.bgbilling.modules.inet.runtime.device.InetDeviceRuntime@7b7d8769 radius 03-27/09:25:20 INFO [rdsLstnr-p-8-t-2] InetNas - Search serv on deviceId=6; interfaceId=0 radius 03-27/09:25:20 INFO [rdsLstnr-p-8-t-2] InetRadiusProcessor - [username=209.820.001.042:20] InetServ not found. radius 03-27/09:25:20 INFO [rdsLstnr-p-8-t-2] InetRadiusProcessor - Return code=1 radius 03-27/09:25:20 INFO [rdsLstnr-p-8-t-2] InetRadiusProcessor - RESPONSE_BEFORE_POSTPROCESS: Packet type: Access-Reject Identifier: 33 Authenticator: {} Attributes: Reply-Message=1 Process time auth: 2 radius 03-27/09:25:20 DEBUG [rdsLstnr-p-8-t-2] ProcessorRequest - Sending to /192.168.144.2:1645 radius 03-27/09:25:20 INFO [rdsLstnr-p-8-t-2] InetRadiusListenerWorker - RESPONSE: Packet type: Access-Reject Identifier: 33 Authenticator: {6A 6B 42 B9 C0 7F 63 EC 03 7E 6D 3C 45 25 E2 42} Attributes: Reply-Message=1 Process time auth: 5 ![]() ![]() ![]() ![]() Конфиг устройства CiscoISG содержит Код: dhcp.ipCategories=4
# Удаление заголовка, при необходимости, 0 - не удалять, 2 - 2 удалить байта (тип+длина) из значения DHCP-опции dhcp.option82.removeHeader=0 radius.agent.option.removeHeader=0 # Код субопции 82, содержащей идентификатор коммутатора клиента, позиция и длина последовательности идентификатора dhcp.option82.agentRemoteId.code=2 dhcp.option82.agentRemoteId.position=0 dhcp.option82.agentRemoteId.length=15 #хост для отправки PoD и CoA запросов (по умолчанию - хост, заданный в параметрах устройства Хост/порт) #radius.host=<хост устройства> #порт для отправки PoD и CoA запросов (по умолчанию - порт, заданный в параметрах устройства Хост/порт) #radius.port=<порт устройства> #идентификатор - Nas-Identifier (по умолчанию - значение из поля Идентификатор параметров устройства) #radius.identifier=<идентификатор устройства> #используемый secret для общения по radius-протоколу (по умолчанию - значение из поля Community/secret параметров устройства) #radius.secret=<community/sercret устройства> radius.servSearchMode=1 dhcp.servSearchMode=1 |
Автор: | Phricker [ 27 мар 2013, 11:35 ] |
Заголовок сообщения: | Re: Позиции |
Цитата: cisco-avpair=circuit-id-tag=20 - это порт на коммутаторе
cisco-avpair=remote-id-tag=209.820.001.042 - это sysname коммутатора |
Автор: | Phricker [ 27 мар 2013, 13:30 ] |
Заголовок сообщения: | Re: Позиции |
В случае с настройками Код: # Удаление заголовка, при необходимости, 0 - не удалять, 2 - 2 удалить байта (тип+длина) из значения DHCP-опции dhcp.option82.removeHeader=0 radius.agent.option.removeHeader=0 # Код субопции 82, содержащей идентификатор коммутатора клиента, позиция и длина последовательности идентификатора dhcp.option82.agentRemoteId.code=2 dhcp.option82.agentRemoteId.position=0 dhcp.option82.agentRemoteId.length=15 # Код субопции 82, содержащей интерфейс, позиция и длина в субопции dhcp.option82.interfaceId.code=1 dhcp.option82.interfaceId.position=0 dhcp.option82.interfaceId.length=1 radius.servSearchMode=1 dhcp.servSearchMode=1 И интерфейсом подключенным через 1ый порт выдает Код: 03-27/11:23:29 INFO [rdsLstnr-p-8-t-3] RadiusListenerWorker - REQUEST: Packet type: Access-Request Identifier: 21 Authenticator: {FE 18 40 74 6E 0F 56 79 82 1B 55 AD E9 04 D7 B7} Attributes: User-Name=111.222.333.444:1:b888.e3a0.127e NAS-Identifier=Router NAS-Port-Id=0/0/3/1601 User-Password=123 NAS-IP-Address=192.168.144.2 NAS-Port=1335 Service-Type=5 Acct-Session-Id=C0A801027200000000000537 NAS-Port-Type=33 cisco-avpair=circuit-id-tag=1 cisco-avpair=remote-id-tag=111.222.333.444 cisco-NAS-Port=0/0/3/1601 03-27/11:23:29 INFO [rdsLstnr-p-8-t-3] InetRadiusProcessor - REQUEST_AFTER_PREPROCESS: Packet type: Access-Request Identifier: 21 Authenticator: {FE 18 40 74 6E 0F 56 79 82 1B 55 AD E9 04 D7 B7} Attributes: User-Name=111.222.333.444:1 NAS-Identifier=Router NAS-Port-Id=0/0/3/1601 User-Password=123 NAS-IP-Address=192.168.144.2 NAS-Port=1335 Service-Type=5 Calling-Station-Id=b888.e3a0.127e Acct-Session-Id=C0A801027200000000000537 NAS-Port-Type=33 cisco-avpair=circuit-id-tag=1 cisco-avpair=remote-id-tag=111.222.333.444 cisco-NAS-Port=0/0/3/1601 Common options: {agentRemoteId=111.222.333.444, agentCircuitId=1} 03-27/11:23:29 DEBUG [rdsLstnr-p-8-t-3] RadiusProcessor - Create new radius session. 03-27/11:23:29 DEBUG [rdsLstnr-p-8-t-3] InetNas - agentRemoteId=111.222.333.444 03-27/11:23:29 INFO [rdsLstnr-p-8-t-3] InetNas - Found agentDevice:7 03-27/11:23:29 DEBUG [rdsLstnr-p-8-t-3] InetNas - findServ agentDeviceRuntime=ru.bitel.bgbilling.modules.inet.runtime.device.InetDeviceRuntime@3e2dce4e 03-27/11:23:29 INFO [rdsLstnr-p-8-t-3] InetNas - Search serv on deviceId=7; interfaceId=1 03-27/11:23:29 INFO [rdsLstnr-p-8-t-3] InetRadiusProcessor - [username=111.222.333.444:1] Login password error. 03-27/11:23:29 INFO [rdsLstnr-p-8-t-3] InetRadiusProcessor - Return code=2 03-27/11:23:29 INFO [rdsLstnr-p-8-t-3] InetRadiusProcessor - RESPONSE_BEFORE_POSTPROCESS: Packet type: Access-Reject Identifier: 21 Authenticator: {} Attributes: Reply-Message=2 Process time auth: 4 03-27/11:23:29 DEBUG [rdsLstnr-p-8-t-3] ProcessorRequest - Sending to /192.168.144.2:1645 03-27/11:23:29 INFO [rdsLstnr-p-8-t-3] InetRadiusListenerWorker - RESPONSE: Packet type: Access-Reject Identifier: 21 Authenticator: {7B 0B ED DA E5 72 78 67 1D 87 99 DC 63 0B 00 26} Attributes: Reply-Message=2 Process time auth: 6 С этими же настройками, но интерфейсом 20 Код: 03-27/11:26:21 INFO [rdsLstnr-p-8-t-9] InetRadiusProcessor - REQUEST_AFTER_PREPROCESS:
Packet type: Access-Request Identifier: 33 Authenticator: {65 BA 5F 00 19 E5 56 11 29 94 58 23 8E 27 0A DA} Attributes: User-Name=209.820.001.042:20 NAS-Identifier=Router NAS-Port-Id=0/0/0/25 User-Password=123 NAS-IP-Address=192.168.144.2 NAS-Port=1341 Service-Type=5 Calling-Station-Id=044b.8080.8003 Acct-Session-Id=C0A80102720000000000053D NAS-Port-Type=33 cisco-avpair=circuit-id-tag=20 cisco-avpair=remote-id-tag=209.820.001.042 cisco-NAS-Port=0/0/0/25 Common options: {agentRemoteId=209.820.001.042, agentCircuitId=20} 03-27/11:26:21 DEBUG [rdsLstnr-p-8-t-9] RadiusProcessor - Create new radius session. 03-27/11:26:21 DEBUG [rdsLstnr-p-8-t-9] InetNas - agentRemoteId=209.820.001.042 03-27/11:26:21 INFO [rdsLstnr-p-8-t-9] InetNas - Found agentDevice:6 03-27/11:26:21 DEBUG [rdsLstnr-p-8-t-9] InetNas - findServ agentDeviceRuntime=ru.bitel.bgbilling.modules.inet.runtime.device.InetDeviceRuntime@714fdb76 03-27/11:26:21 INFO [rdsLstnr-p-8-t-9] InetNas - Search serv on deviceId=6; interfaceId=32 03-27/11:26:21 INFO [rdsLstnr-p-8-t-9] InetRadiusProcessor - [username=209.820.001.042:20] InetServ not found. 03-27/11:26:21 INFO [rdsLstnr-p-8-t-9] InetRadiusProcessor - Return code=1 03-27/11:26:21 INFO [rdsLstnr-p-8-t-9] InetRadiusProcessor - RESPONSE_BEFORE_POSTPROCESS: Packet type: Access-Reject |
Автор: | Phricker [ 27 мар 2013, 13:53 ] |
Заголовок сообщения: | Re: Позиции |
Создал обращение в хелпдеске. Если мой косяк - то хотя бы не за просто так с ним возились ![]() |
Автор: | Phricker [ 27 мар 2013, 15:05 ] |
Заголовок сообщения: | Re: Позиции |
Лююююдииии |
Автор: | Phricker [ 27 мар 2013, 16:01 ] |
Заголовок сообщения: | Re: Позиции |
protocolhandler был таким. я пару строк добавил чтобы проверить какая же проверка отработает. Код: protected void setAgentOption( final RadiusPacket request, final Object value, final RadiusPacketOption<Object> option ) { if( value instanceof String ) { String valueString = (String)value; valueString = valueString.substring( agentOptionRemoveHeader * 2 ); request.setOption( option, valueString ); logger.info( "ALARM! Type is STRING"); //добавил } else if( value instanceof byte[] ) { byte[] valueBytes = (byte[])value; valueBytes = Arrays.copyOfRange( valueBytes, agentOptionRemoveHeader, valueBytes.length ); request.setOption( option, valueBytes ); logger.info( "ALARM! Type is BYTE"); //добавил } else { logger.error( "Unknown value type for option " + option ); } } Выдало Код: radius 03-27/13:58:18 INFO [rdsLstnr-p-8-t-1] ISGProtocolHandler - ALARM! Type is STRING
radius 03-27/13:58:18 INFO [rdsLstnr-p-8-t-1] ISGProtocolHandler - ALARM! Type is STRING |
Автор: | Amir [ 27 мар 2013, 16:14 ] |
Заголовок сообщения: | Re: Позиции |
Т.е. уже поменяли на Код: protected void setAgentOptions( final RadiusPacket request ) но не работает?{ final Object agentRemoteId = getAttributeValue( request, radiusVendor, agentOptionRemoteIdType, agentOptionRemoteIdPrefix ); if( agentRemoteId != null ) { setAgentOption( request, agentRemoteId, InetRadiusProcessor.AGENT_REMOTE_ID ); } String remoteId = (String)getAttributeValue( request, 9, "circuit-id-tag=" ); int interfaceId = Utils.parseInt( remoteId.split("/")[2], -1 ); request.setOption( InetRadiusProcessor.INTERFACE_ID, interfaceId ); } Для Код: cisco-avpair=circuit-id-tag=1 попробуйте cisco-avpair=remote-id-tag=111.222.333.444 Код: protected void setAgentOptions( final RadiusPacket request )
{ final Object agentRemoteId = getAttributeValue( request, radiusVendor, agentOptionRemoteIdType, agentOptionRemoteIdPrefix ); if( agentRemoteId != null ) { setAgentOption( request, agentRemoteId, InetRadiusProcessor.AGENT_REMOTE_ID ); } String circuitId = (String)getAttributeValue( request, 9, "circuit-id-tag=" ); logger.info( "circuitId=" + circuitId ); int interfaceId = Utils.parseInt( circuitId, -1 ); request.setOption( InetRadiusProcessor.INTERFACE_ID, interfaceId ); } |
Автор: | Phricker [ 27 мар 2013, 16:23 ] |
Заголовок сообщения: | Re: Позиции |
оу пардон не в тот раздел походу засунул свои выводы. Поставил то что вы говорите Ругается Вложение:
|
Автор: | Phricker [ 27 мар 2013, 16:37 ] |
Заголовок сообщения: | Re: Позиции |
Перезагрузил BGAccess и перекомпилировал всё Код: radius 03-27/14:36:26 INFO [rdsLstnr-p-8-t-1] RadiusListenerWorker - REQUEST:
Packet type: Access-Request Identifier: 185 Authenticator: {93 6C 76 23 D1 F2 BA 97 C9 5D 3C BF E5 71 F4 AB} Attributes: User-Name=209.820.001.042:20:044b.8080.8003 NAS-Identifier=Router NAS-Port-Id=0/0/0/25 User-Password=123 NAS-IP-Address=192.168.144.2 NAS-Port=1545 Service-Type=5 Acct-Session-Id=C0A801027200000000000609 NAS-Port-Type=33 cisco-avpair=circuit-id-tag=20 cisco-avpair=remote-id-tag=209.820.001.042 cisco-NAS-Port=0/0/0/25 radius 03-27/14:36:26 INFO [rdsLstnr-p-8-t-1] ISGProtocolHandler - ALARM! Type is STRING radius 03-27/14:36:26 INFO [rdsLstnr-p-8-t-1] ISGProtocolHandler - ALARM! circuitId=20 radius 03-27/14:36:26 INFO [rdsLstnr-p-8-t-1] InetRadiusProcessor - REQUEST_AFTER_PREPROCESS: Packet type: Access-Request Identifier: 185 Authenticator: {93 6C 76 23 D1 F2 BA 97 C9 5D 3C BF E5 71 F4 AB} Attributes: User-Name=209.820.001.042:20 NAS-Identifier=Router NAS-Port-Id=0/0/0/25 User-Password=123 NAS-IP-Address=192.168.144.2 NAS-Port=1545 Service-Type=5 Calling-Station-Id=044b.8080.8003 Acct-Session-Id=C0A801027200000000000609 NAS-Port-Type=33 cisco-avpair=circuit-id-tag=20 cisco-avpair=remote-id-tag=209.820.001.042 cisco-NAS-Port=0/0/0/25 Common options: {agentRemoteId=209.820.001.042, interfaceId=20} radius 03-27/14:36:26 DEBUG [rdsLstnr-p-8-t-1] RadiusProcessor - Create new radius session. radius 03-27/14:36:26 DEBUG [rdsLstnr-p-8-t-1] InetNas - agentRemoteId=209.820.001.042 radius 03-27/14:36:26 INFO [rdsLstnr-p-8-t-1] InetNas - Found agentDevice:6 radius 03-27/14:36:26 DEBUG [rdsLstnr-p-8-t-1] InetNas - findServ agentDeviceRuntime=ru.bitel.bgbilling.modules.inet.runtime.device.InetDeviceRuntime@6c742397 radius 03-27/14:36:26 INFO [rdsLstnr-p-8-t-1] InetNas - Search serv on deviceId=6; interfaceId=20 radius 03-27/14:36:26 INFO [rdsLstnr-p-8-t-1] InetRadiusProcessor - [username=209.820.001.042:20] Login password error. radius 03-27/14:36:26 INFO [rdsLstnr-p-8-t-1] InetRadiusProcessor - Return code=2 radius 03-27/14:36:26 INFO [rdsLstnr-p-8-t-1] InetRadiusProcessor - RESPONSE_BEFORE_POSTPROCESS: |
Автор: | Phricker [ 27 мар 2013, 16:47 ] |
Заголовок сообщения: | Re: Позиции |
Через монитор видны ошибки [2] Неверный пароль Код: Packet type: Access-Request
Identifier: 229 Authenticator: {68 A0 7B 6E 1E 1C 28 11 ED AE 3D 45 AC 67 60 39} Attributes: User-Name=111.222.333.444:1:b888.e3a0.127e NAS-Identifier=Router NAS-Port-Id=0/0/3/1601 User-Password=�߽\u2\u41�}�t��\u17�$� NAS-IP-Address=192.168.144.2 NAS-Port=1567 Service-Type=5 Acct-Session-Id=C0A80102720000000000061F NAS-Port-Type=33 cisco-avpair=circuit-id-tag=1 cisco-avpair=remote-id-tag=111.222.333.444 cisco-NAS-Port=0/0/3/1601 Packet type: Access-Reject Identifier: 229 Authenticator: {16 26 AD 95 BB AE D0 C4 DC 46 FC 72 E8 18 07 61} Attributes: Reply-Message=2 Process time auth: 0 |
Автор: | Amir [ 27 мар 2013, 16:52 ] |
Заголовок сообщения: | Re: Позиции |
Судя по User-Password=�߽\u2\u41�}�t��\u17�$� секрет не правильный. Также проверку пароля можно отключить radius.password.verification=0. |
Автор: | Phricker [ 27 мар 2013, 17:05 ] |
Заголовок сообщения: | Re: Позиции |
Если секрет неправильный - в радиус логе тоже каракули. проверял уже ![]() |
Автор: | Phricker [ 27 мар 2013, 17:24 ] |
Заголовок сообщения: | Re: Позиции |
Так. Поставил radius.password.verification=0 авторизация прошла. Но теперь DHCP ругается Код: 03-27/15:22:41 DEBUG [dhcpLstnr-p-10-t-3] InetDhcpDeviceMap - Found device by giaddr id=2 03-27/15:22:41 DEBUG [dhcpLstnr-p-10-t-3] InetDhcpDeviceMap - Found subDevice by identifier id=6 03-27/15:22:41 INFO [dhcpLstnr-p-10-t-3] InetAbstractDhcpProcessor - REQUEST: Message type: BOOT_REQUEST Dhcp message type: DHCP Discover{1} htype: 1, hlen: 6, hops: 2 xid: -1867364864, secs: 2816, flags: 0 Client IP: 0.0.0.0 Your IP: 0.0.0.0 Server IP: 0.0.0.0 Relay IP: 10.128.0.1 Client MAC: {044B80808003} {116}={01} {61}={01044B80808003} Host name{12}={SOFT} {60}={4D53465420352E30} Parameter request list{55}={1, 15, 3, 6, 44, 46, 47, 31, 33, -7, 43} {43}={DC00} Agent information{82}= sub{1}={3230} sub{2}={3230392E3832302E3030312E303432} 03-27/15:22:41 DEBUG [dhcpLstnr-p-10-t-3] InetAbstractDhcpProcessor - OP_BOOT_REQUEST 03-27/15:22:41 DEBUG [dhcpLstnr-p-10-t-3] InetDhcpHelperProcessor - request.giaddr = 10.128.0.1 03-27/15:22:41 ERROR [dhcpLstnr-p-10-t-3] InetDhcpHelperProcessor - Not found params for request: 6:50:044B80808003 (pattern: $remoteId:$circuitId:$mac, servSearchMode: 1, deviceId: 6, agentDeviceId: 6, mac: 044B80808003) 03-27/15:22:41 INFO [dhcpLstnr-p-10-t-3] InetAbstractDhcpProcessor - RESPONSE: Message type: BOOT_RESPONSE Dhcp message type: DHCP NAK{6} htype: 1, hlen: 6, hops: 2 xid: -1867364864, secs: 0, flags: 0 Client IP: 0.0.0.0 Your IP: 0.0.0.0 Server IP: 0.0.0.0 Relay IP: 10.128.0.1 Client MAC: {044B80808003} Agent information{82}= sub{1}={3230} sub{2}={3230392E3832302E3030312E303432} 03-27/15:22:41 DEBUG [dhcpLstnr-p-10-t-3] ProcessorRequest - Sending to /172.16.100.1:67 Это как это такой request получается? Там 20 порт приходит в DHCP. По крайней мере wireshark так его расшифровывает. Код: Not found params for request: 6:50:044B80808003 (pattern: $remoteId:$circuitId:$mac, servSearchMode: 1, deviceId: 6, agentDeviceId: 6, mac: 044B80808003)
|
Автор: | Amir [ 27 мар 2013, 17:52 ] |
Заголовок сообщения: | Re: Позиции |
Какую строчку пишет перед Access-Accept: Put auth accept: ... ? |
Автор: | Phricker [ 27 мар 2013, 17:59 ] |
Заголовок сообщения: | Re: Позиции |
Код: radius 03-27/15:56:09 INFO [rdsLstnr-p-8-t-1] InetDhcpHelperProcessor - Put auth accept 6:20:044B80808003 Код: 03-27/15:22:41 ERROR [dhcpLstnr-p-10-t-3] InetDhcpHelperProcessor - Not found params for request: 6:50:044B80808003 (pattern: $remoteId:$circuitId:$mac, servSearchMode: 1, deviceId: 6, agentDeviceId: 6, mac: 044B80808003)
|
Автор: | Phricker [ 27 мар 2013, 19:08 ] |
Заголовок сообщения: | Re: Позиции |
При таких параметрах Код: # Код субопции 82, содержащей VLAN, позиция и длина в субопции dhcp.option82.vlanId.code=1 dhcp.option82.vlanId.position=0 dhcp.option82.vlanId.length=0 # Код субопции 82, содержащей интерфейс, позиция и длина в субопции dhcp.option82.interfaceId.code=1 dhcp.option82.interfaceId.position=0 dhcp.option82.interfaceId.length=2 вообще ужас выдает ![]() Код: sub{1}={3230} sub{2}={3230392E3832302E3030312E303432} 03-27/17:06:41 ERROR [dhcpLstnr-p-10-t-8] InetDhcpHelperProcessor - Not found params for request: 6:12848:044B80808003 (pattern: $remoteId:$circuitId:$mac, servSearchMode: 1, deviceId: 6, agentDeviceId: 6, mac: 044B80808003) На тесте когда заводили в DHCP пакете приходило тоже string'ом. Но тест был L2 connected а сейчас все на L3 Код: Agent information{82}= sub{1}={000400AA0002} sub{2}={0006781DBA46ADFA} Технари говорят ничего не меняли на коммутаторе (ну может модель сменили), приходит сами видите как |
Автор: | Amir [ 28 мар 2013, 01:44 ] |
Заголовок сообщения: | Re: Позиции |
Что-то не вижу в DHCP числа 20 или 0x14 вообще Agent information{82}= sub{1}={3230} sub{2}={3230392E3832302E3030312E303432} Если в DHCP82 не передается номер порта - можно изменить привязку DHCP к RADIUS: так по умолчанию: dhcp.key.pattern=$deviceId:$remoteId:$circuitId:$mac так сейчас: dhcp.key.pattern=$remoteId:$circuitId:$mac так можно исключить номер порта из привязки: dhcp.key.pattern=$remoteId:$mac |
Автор: | Phricker [ 28 мар 2013, 11:53 ] |
Заголовок сообщения: | Re: Позиции |
Там вообще весело получается Если взять Код: sub{1}={3230} sub{2}={3230392E3832302E3030312E303432} И удалить все цифры "3" то получится Код: sub{1}={20} sub{2}={2092E8202E0012E042} а если заменить 2E на точки то получается Код: sub{1}={20} sub{2}={209.820.001.042} Но в случае если sub2 будет содержать лишние 3 не получится удалять их удалять все 3. Сейчас будем разбираться почему оно так приходит |
Автор: | Phricker [ 28 мар 2013, 12:22 ] |
Заголовок сообщения: | Re: Позиции |
С другой стороны wireshark выдергивает данные из такого спокойно. Если скопировать из пакета offset hex и text он выдаст Код: 0000 31 31 31 2e 32 32 32 2e 33 33 33 2e 34 34 34 111.222.333.444 ![]() |
Автор: | Phricker [ 28 мар 2013, 12:51 ] |
Заголовок сообщения: | Re: Позиции |
Получается шлет уже переделанный из binary в ascii. а биллингу нужны binary? |
Автор: | Phricker [ 28 мар 2013, 13:43 ] |
Заголовок сообщения: | Re: Позиции |
Приходит понимание ![]() В DHCP мы указываем свой метод формата circuit/remote id. В remoteid - sysname в circuitid - port Код: dhcp option82 circuit-id format user-defined ? TEXT The format string of DHCP option82 defined by user. Keywords include: sysname, portname, porttype, iftype, mac, slot, subslot, port, svlan, cvlan, length. You can configure like this: "%portname:%svlan.%cvlan %sysname/0/0/0/0/0" or 0 %length %svlan %5slot %3subslot %8port and so on. Please refer to user command manual for more information. Все это дело присылается строкой и никак иначе. Биллинг такое не понимает. Как его можно научить? тут это слегка описано |
Автор: | Amir [ 28 мар 2013, 13:55 ] |
Заголовок сообщения: | Re: Позиции |
Ага, сейчас он только binary понимает (потому чтобы в ascii приходило мы еще ни разу не видели). Нужные параметры из DHCP и RADIUS пакетов можно указать в ProtocolHandler. Должен помочь такой обработчик процессора протокола (или почти такой). Только в конфиге нужно поменять поиск устройства по DHCP на dhcp.deviceSearchMode=1 чтобы искал только по giaddr, а по remoteId уже после предобработки будет найдено агентское устройство. Код: import org.apache.log4j.Logger;
import ru.bitel.bgbilling.kernel.network.dhcp.DhcpOption; import ru.bitel.bgbilling.kernel.network.dhcp.DhcpPacket; import ru.bitel.bgbilling.kernel.network.radius.RadiusPacket; import ru.bitel.bgbilling.modules.inet.dhcp.InetDhcpProcessor; import ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor; import ru.bitel.common.Utils; public class ISGProtocolHandlerAscii extends ISGProtocolHandler { private static final Logger logger = Logger.getLogger( ISGProtocolHandlerAscii.class ); @Override protected void setAgentOptions( RadiusPacket request ) { final Object agentRemoteId = getAttributeValue( request, radiusVendor, agentOptionRemoteIdType, agentOptionRemoteIdPrefix ); if( agentRemoteId != null ) { setAgentOption( request, agentRemoteId, InetRadiusProcessor.AGENT_REMOTE_ID ); } String circuitId = (String)getAttributeValue( request, 9, 1, "circuit-id-tag=" ); logger.info( "circuitId=" + circuitId ); int interfaceId = Utils.parseInt( circuitId, -1 ); request.setOption( InetRadiusProcessor.INTERFACE_ID, interfaceId ); } @Override public void preprocessDhcpRequest( DhcpPacket request, DhcpPacket response ) throws Exception { DhcpOption circuitId = request.getSubOption( (byte)1 ); DhcpOption remoteId = request.getSubOption( (byte)2 ); request.setOption( InetDhcpProcessor.AGENT_REMOTE_ID, new String( remoteId.value, "UTF-8" ) ); request.setOption( InetDhcpProcessor.INTERFACE_ID, new String( circuitId.value, "UTF-8" ) ); } } |
Автор: | Phricker [ 28 мар 2013, 14:05 ] |
Заголовок сообщения: | Re: Позиции |
А этот обработчик вешать на циску или коммутатор? ![]() |
Автор: | Amir [ 28 мар 2013, 14:07 ] |
Заголовок сообщения: | Re: Позиции |
На циску. |
Автор: | Phricker [ 28 мар 2013, 14:07 ] |
Заголовок сообщения: | Re: Позиции |
а dhcp.servSearchMode=1 у нас и так стояло. Вы выставляли на тесте. Как было я так и переношу на рабочий ![]() |
Страница 1 из 2 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |