forum.bitel.ru http://forum.bitel.ru/ |
|
DHCP opt.82 & ISG http://forum.bitel.ru/viewtopic.php?f=44&t=13316 |
Страница 1 из 2 |
Автор: | aneye [ 23 апр 2019, 12:05 ] |
Заголовок сообщения: | DHCP opt.82 & ISG |
Добрый день. Помогите, пожалуйста, разобраться в работе связки dhcp+isg. На тестовом стенде производим отладку схемы аутентификации пользователей по коммутатору/порту через опцию 82. Релеем выступает cisco ISG (c7200). В основном все работает: remote-id и circuit-id извлекаются из пакетов, сервис находится и адрес выдается. Но есть несколько непонятных моментов. Схема следующая: DES3526 --> Cisco c3560 --> Cisco c7200 (relay) В коммутаторы (в каждый) включено по одному клиенту. 1) Как происходит обработка renew пакетов, и происходит ли она вообще? Т.к. renew пакет - юникастовый, он не попадает под опцию 82 на коммутаторе. В итоге, такой пакет не обрабатывается БГ, т.к. БГ не может найти сервис, к которому отнести данный пакет. Получается, что dhcp-серверу БГ, чтобы продлить аренду, нужно найти устройство и сервис, привязанный к этому устройству/порту? 2) После того, как таймер Т1 кончается, клиент шлет rebind пакет. На такой пакет БГ стабильно отвечает NAK. Клиент переходит в discover (в котором есть поле requested ip с адресом, выданным до этого), все начинается снова, но БГ предлагает уже другой адрес из пула, offer - request - ack. Почему так происходит? БГ отвечает NAK-ом видимо потому, что запрашиваемый адрес она считает занятым, при этом в dhcp.log появляется InetDhcpProcessor - Unknown packet (linked offer not found). Discard packet. Как быть в данной ситуации? В конфигурации устройства-релея выставлен dhcp.connection.checkDuplicate=9 - судя по документации, даже если БГ посчитает, что это еще одна сессия того же абонента, она должна отключить старую сессию и освободить адрес. Это ведет к третьему вопросу: 3) Для тестов мы используем небольшой пул из пяти адресов. И несмотря на то, что подключаются всего два (а порой и один) клиента, адреса заканчиваются очень быстро, и постоянно в логе видим InetDhcpProcessor - Free IP-address not found. LeaseTime выставлен 300 секунд, но адреса высвобождаются гораздо дольше. Скорее всего, это как то связано с предыдущим вопросом о том, что клиент не может получить ранее выданный адрес, а всегда получает следующий в пуле. Вот небольшой кусочек лога, относящийся ко второму вопросу: Код: Message type: BOOT_REQUEST Dhcp message type: DHCP Request{3} htype: 1, hlen: 6, hops: 1 xid: -1983568018, secs: 68, flags: 0 Client IP: 145.255.253.235 Your IP: 0.0.0.0 Server IP: 0.0.0.0 Relay IP: 10.63.195.8 Client MAC: {001FC6235801} Host name{12}={M50SA} Param request list{55}={1, 28, 2, 3, 15, 6, 119, 12, 44, 47, 26, 121, 42, 121, -7, 33, -4, 42} Agent information{82}= sub{9}={000000091A0A18000000005212010600040F29000102080106001E58A35427} sub{2}={020A000091FFFDEE01000F29} sub{-106}={91FFFDEE} 04-23/09:41:35 DEBUG [dhcpLstnr-p-11-t-10] InetAbstractDhcpProcessor - Found subDevice by identifier id=52 04-23/09:41:35 DEBUG [dhcpLstnr-p-11-t-10] InetDhcpProcessor - DHCP_REQUEST 04-23/09:41:35 DEBUG [dhcpLstnr-p-11-t-10] InetDhcpProcessor - request.giaddr= 10.63.195.8, clientAddress=/10.63.195.8:67 04-23/09:41:35 INFO [dhcpLstnr-p-11-t-10] InetDhcpDevice - Search serv on deviceId: 52; 1; interfaceId: 1 04-23/09:41:35 INFO [dhcpLstnr-p-11-t-10] InetDhcpProcessor - InetServ found: ContractId: 110466; status: 0; servId: 2911 4 dlink-des3526: 001E58A35427:1 Options [44:17.04.2019-01.01.1970; ] TariffModuleTreeSet [743:24.01.2017-…; 1835:14.12.2018-…; 1270:14.12.2018-…; 2331:14.12.2018-…; ] Device state: 1; optionSet:44 04-23/09:41:35 INFO [dhcpLstnr-p-11-t-10] InetDhcpProcessor - Unknown packet (linked offer not found). Discard packet. 04-23/09:41:35 INFO [dhcpLstnr-p-11-t-10] InetAbstractDhcpProcessor - RESPONSE: Message type: BOOT_RESPONSE Dhcp message type: DHCP NAK{6} htype: 1, hlen: 6, hops: 1 xid: -1983568018, secs: 0, flags: 11111111111111111000000000000000 Client IP: 145.255.253.235 Your IP: 0.0.0.0 Server IP: 0.0.0.0 Relay IP: 10.63.195.8 Client MAC: {001FC6235801} Agent information{82}= sub{9}={000000091A0A18000000005212010600040F29000102080106001E58A35427} sub{2}={020A000091FFFDEE01000F29} sub{-106}={91FFFDEE} Очень буду признателен за какие-нибудь подсказки. Информация о версии: Клиент: вер. 7.0.971 / 03.09.2018 20:19:17 os: Windows 7; java: Java HotSpot(TM) Client VM, v.1.8.0_191 Сервер: вер. 7.0.1410 / 20.09.2018 22:11:30 os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_151 bill: вер. 7.0.145 / 03.09.2018 20:21:40 card: вер. 7.0.51 / 07.06.2018 16:41:02 dba: вер. 7.0.170 / 14.03.2018 16:03:34 dialup: вер. 7.0.326 / 08.06.2018 14:17:17 email: вер. 7.0.185 / 14.03.2018 16:03:39 inet: вер. 7.0.934 / 20.09.2018 22:11:40 ВНИМАНИЕ: клиентская версия: 7.0.933 / 03.09.2018 20:21:11 ipn: вер. 7.0.291 / 03.09.2018 20:21:06 mps: вер. 7.0.230 / 19.06.2018 20:44:57 npay: вер. 7.0.218 / 28.08.2018 17:44:11 phone: вер. 7.0.317 / 03.09.2018 20:21:52 reports: вер. 7.0.247 / 23.08.2018 17:04:21 rscm: вер. 7.0.190 / 31.05.2018 15:53:23 ru.bitel.bgbilling.plugins.cashcheck: вер. 7.0.139 / 23.08.2018 18:54:11 ru.bitel.bgbilling.plugins.cladr: вер. 7.0.126 / 14.03.2018 16:03:33 ru.bitel.bgbilling.plugins.crm: вер. 7.0.205 / 30.07.2018 09:49:11 ru.bitel.bgbilling.plugins.organizer: вер. 7.0.78 / 14.03.2018 16:04:15 voiceip: вер. 7.0.210 / 08.06.2018 14:17:18 |
Автор: | Amir [ 23 апр 2019, 13:22 ] |
Заголовок сообщения: | Re: DHCP opt.82 & ISG |
Добрый день. По описанию не совсем понятно в каком режиме работает ASR - старт по DHCP DISCOVER или старт по IP-пакету? initiator {dhcp [class-aware] | radius-proxy | unclassified mac-address} |
Автор: | aneye [ 23 апр 2019, 14:07 ] |
Заголовок сообщения: | Re: DHCP opt.82 & ISG |
Добрый. БРАС стартует сессию по dhcp: Код: ip subscriber l2-connected initiator dhcp class-aware Сейчас таймеры dhcp выставлены следующие: Код: dhcp.option.leaseTime=600 dhcp.option.renewalTime=590 dhcp.option.rebindingTime=592 Пока видим, что БГ не понимает rebind-пакет - при его получении в логе всегда появляется Код: InetDhcpProcessor - Unknown packet (linked offer not found). Discard packet. и в ответ идет nak. Каждый раз после этого клиенты получают новые адреса, но затем адреса перестают выдаваться: Код: InetDhcpProcessor - IP not found in service. Searching in device...
IpResourceReserveManager - Deleted 0 old IPs InetDhcpProcessor - Free IP-address not found |
Автор: | Amir [ 23 апр 2019, 16:11 ] |
Заголовок сообщения: | Re: DHCP opt.82 & ISG |
Для того, чтобы биллинг отвечал на RENEW запросы в конфиге Access+Accounting должно быть указано dhcp.renew=1 https://docs.bitel.ru/pages/viewpage.ac ... d=65044482 Исторически так сложилось, что по умолчанию не отвечает на RENEW - вроде бы у каких-то коммутаторов были проблемы при включенном snooping с пакетами, которые идут на прямую на DHCP-сервер Для режима "initiator dhcp" DHCP-сервер биллинга должен отвечать основываясь на RADIUS-сессии с ASR, т.к. адрес он уже указал в Access-Accept. В inet-access.xml для 7.0 вместо InetDhcpProcessor нужно указать InetDhcpProcessor2 (ранее для этого режима указывали InetDhcpHelperProcessor, сейчас для обоих режимов можно использовать один класс). Для того, чтобы биллинг знал, с каких устройств "запоминать" сессии для последующего ответа по DHCP в конфигурации Access+Accounting нужно указать dhcp.key.deviceTypeIds=ID типа устройства ASR По умолчанию привязка идет по такому ключу: dhcp.key.pattern=$deviceId:$remoteId:$circuitId:$mac deviceId - устройство-релей (ASR), remoteId - агентское устройство, circuitId - зависит от режима поиска, это может быть порт или VLAN, mac - MAC. Если в RADIUS- или DHCP-пакете нет чего-то из этого, то ключ можно сократить до dhcp.key.pattern=$deviceId:$mac MAC-адрес из RADIUS-пакета - это значение из Calling-Station-Id Если MAC-адрес приходит в другом атрибуте, то есть параметры: radius.callingStationId.vendor= radius.callingStationId.type= radius.callingStationId.prefix= |
Автор: | aneye [ 23 апр 2019, 17:01 ] |
Заголовок сообщения: | Re: DHCP opt.82 & ISG |
Спасибо, попробуем. |
Автор: | aneye [ 23 апр 2019, 19:44 ] |
Заголовок сообщения: | Re: DHCP opt.82 & ISG |
Пока особых изменений не наблюдаем. БГ (dhcp) по прежнему не воспринимает DHCP Request с выставленным Requested IP, и в новой сессии клиент получает другой (следующий в пуле) адрес. При этом, наблюдается несколько странное поведение: Вот это renew запрос, в котором параметры опции 82 не соответствуют тем, что посылает коммутатор клиента. Здесь причина понятна - запрос юникастовый, и опцию 82 вставляет уже следующий на пути следования коммутатор (с3560 в нашем случае). Код: AbstractInetDhcpProcessor2 - REQUEST_AFTER_PREPROCESS: Message type: BOOT_REQUEST Dhcp message type: DHCP Request{3} htype: 1, hlen: 6, hops: 1 xid: 812058904, secs: 0, flags: 0 Client IP: 145.255.253.233 Your IP: 0.0.0.0 Server IP: 0.0.0.0 Relay IP: 10.63.195.8 Client MAC: {001FC6235801} Host name{12}={M50SA} Param request list{55}={1, 28, 2, 3, 15, 6, 119, 12, 44, 47, 26, 121, 42, 121, -7, 33, -4, 42} Agent information{82}= sub{9}={000000091A0A18000000005212010600040F29011A02080006001AE36E2000} sub{2}={020A000091FFFDEE01000F29} sub{-106}={91FFFDEE} 04-23/17:25:41 DEBUG [dhcpLstnr-p-12-t-4] AbstractInetDhcpProcessor2 - Found subDevice by identifier id=51 04-23/17:25:41 DEBUG [dhcpLstnr-p-12-t-4] InetDhcpProcessor2 - request.giaddr = 10.63.195.8 04-23/17:25:41 ERROR [dhcpLstnr-p-12-t-4] InetDhcpProcessor2 - Not found params for request: (pattern: $deviceId:$remoteId:$circuitId, servSearchMode: 1, deviceId: 50, agentDeviceId: 51) Сообщение о том, что не найдены параметры для запроса тут ясны - сервис в договоре привязан к другому устройству. Дальше, это rebind. Здесь уже есть опция 50 - Requested IP{50}=145.255.253.233, а в опции 82 указаны уже верные параметры. Однако, ответ сервера следует такой же, как и при renew: pattern: $deviceId:$remoteId:$circuitId, servSearchMode: 1, deviceId: 50, agentDeviceId: 52 Код: AbstractInetDhcpProcessor2 - REQUEST: Message type: BOOT_REQUEST Dhcp message type: DHCP Request{3} htype: 1, hlen: 6, hops: 1 xid: 158666864, 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.63.195.8 Client MAC: {001FC6235801} Requested IP{50}=145.255.253.233 Host name{12}={M50SA} Param request list{55}={1, 28, 2, 3, 15, 6, 119, 12, 44, 47, 26, 121, 42, 121, -7, 33, -4, 42} Agent information{82}= sub{9}={000000091A0A18000000005212010600040F29000102080106001E58A35427} sub{2}={020A000091FFFDEE01000F29} sub{-106}={91FFFDEE} 04-23/17:25:41 DEBUG [dhcpLstnr-p-12-t-5] AbstractInetDhcpProcessor2 - Found subDevice by identifier id=52 04-23/17:25:41 DEBUG [dhcpLstnr-p-12-t-5] InetDhcpProcessor2 - request.giaddr = 10.63.195.8 04-23/17:25:41 ERROR [dhcpLstnr-p-12-t-5] InetDhcpProcessor2 - Not found params for request: (pattern: $deviceId:$remoteId:$circuitId, servSearchMode: 1, deviceId: 50, agentDeviceId: 52) И только после того, как клиент переходит опять в discover, сервер выдает адрес. Код: AbstractInetDhcpProcessor2 - REQUEST_AFTER_PREPROCESS: Message type: BOOT_REQUEST Dhcp message type: DHCP Discover{1} htype: 1, hlen: 6, hops: 1 xid: -537192918, 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.63.195.8 Client MAC: {001FC6235801} Host name{12}={M50SA} Param request list{55}={1, 28, 2, 3, 15, 6, 119, 12, 44, 47, 26, 121, 42, 121, -7, 33, -4, 42} Agent information{82}= sub{9}={000000091A0A18000000005212010600040F29000102080106001E58A35427} sub{2}={020A000091FFFDEE01000F29} sub{-106}={91FFFDEE} Т.е., по какой причине не отрабатывает renew в данном случае ясно. Но, почему не обрабатываются rebind запросы и абоненту не выдается тот же адрес, что у него был до этого? P.S.: mac из паттерна привязки мы пока убрали. |
Автор: | Amir [ 23 апр 2019, 20:16 ] |
Заголовок сообщения: | Re: DHCP opt.82 & ISG |
Перед тем как выдать Access-Accept должен написать InetConnectionMap - Put auth accept ...... |
Автор: | Amir [ 23 апр 2019, 20:17 ] |
Заголовок сообщения: | Re: DHCP opt.82 & ISG |
И какой режим поиска абонента у вас? По порту, по VLAN, ...? |
Автор: | Amir [ 24 апр 2019, 01:00 ] |
Заголовок сообщения: | Re: DHCP opt.82 & ISG |
Цитата: 04-23/17:25:41 ERROR [dhcpLstnr-p-12-t-4] InetDhcpProcessor2 - Not found params for request: (pattern: $deviceId:$remoteId:$circuitId, servSearchMode: 1, deviceId: 50, agentDeviceId: 51) Как раз этого и не должно быть в этой схеме. Биллинг по RADIUS выдает Access-Accept с адресом и запоминает с ключом из шаблона dhcp.key.pattern (например, Put auth accept deviceId:4;mac:001560CA2890).Когда приходит DHCP-запрос, из запроса по dhcp.key.pattern создается ключ и по этому ключу идет поиск сессии, если сессия найдена - тогда OFFER/ACK. Нет - тогда Not found params for request |
Автор: | aneye [ 24 апр 2019, 12:01 ] |
Заголовок сообщения: | Re: DHCP opt.82 & ISG |
Режим поиска абонента по порту на найденном устройстве, вланы для поиска не используются. Код: dhcp.deviceSearchMode=0 dhcp.servSearchMode=1 Я правильно понимаю логику работы, что адрес выдается не в dhcp-пакете, а в radius-пакете? Т.е. при такой схеме параметр dhcp.ipCategories= получается, не нужен и достаточно ip.resource.categoryId= ? Ниже приложу конфигурацию устройства-релея, которая относится к радиусу и dhcp. Код: radius.servSearchMode=1
radius.password.verification=0 radius.username.removeDomain=1 session.split.onDeviceState=0 session.split.onTariffOption=0 radius.realm.default.attributes=Framed-IP-Address,Framed-IP-Netmask connection.suspend.timeout=600 connection.close.timeout=60 connection.finish.timeout=3 radius.address.fromRequest=1 radius.password.verification=0 radius.agent.option.removeHeader=2 radius.agent.option.remoteId.type=1 radius.agent.option.remoteId.prefix=remote-id-tag= radius.agent.option.circuitId.type=1 radius.agent.option.circuitId.prefix=circuit-id-tag= #DHCP-RADIUS ip.resource.categoryId=6 dhcp.deviceSearchMode=0 dhcp.servSearchMode=1 dhcp.xid=0 #DHCP OPTIONS #dhcp.option.renewalTime = leaseTime * 0,5 #dhcp.option.rebindingTime = leaseTime * 0,875 # lease > rebind > renew dhcp.option.leaseTime=300 dhcp.option.renewalTime=290 dhcp.option.rebindingTime=295 #DHCP OPTIONS END dhcp.connection.checkDuplicate=90 #DHCP OPTION82 PARSING: dhcp.option82.removeHeader=17 dhcp.option82.agentRemoteId.code=9 dhcp.option82.agentRemoteId.position=8 dhcp.option82.agentRemoteId.length=6 dhcp.option82.interfaceId.code=9 dhcp.option82.interfaceId.position=3 dhcp.option82.interfaceId.length=1 dhcp.key.pattern=$deviceId:$remoteId:$circuitId radius.key.pattern=$deviceId:$remoteId:$circuitId |
Автор: | aneye [ 24 апр 2019, 14:07 ] |
Заголовок сообщения: | Re: DHCP opt.82 & ISG |
Так, на данном этапе мы обнаружили проблему - она была не в БГ, а в коммутаторе агрегации. Если включить клиента по схеме коммутатор -> релей, без промежуточного свитча, то все работает правильно. Будем разбираться с железом. Но я думаю, это не конец истории, если будут вопросы, я напишу их в эту же тему. Спасибо. |
Автор: | Amir [ 24 апр 2019, 16:31 ] |
Заголовок сообщения: | Re: DHCP opt.82 & ISG |
Возможно он option82 подменяет. В этом случае с dhcp.key.pattern=$deviceId:$mac должно работать, т.к. привязка будет только по ASR и MAC абонента |
Автор: | aneye [ 24 апр 2019, 18:37 ] |
Заголовок сообщения: | Re: DHCP opt.82 & ISG |
Здесь речь идет именно о привязке радиус/дхцп к сессии? Я к тому, что если мы оставим например, только девайс и мак, мы не потеряем функционал аутентификации по коммутатору и порту? Хотим попробовать пока оставить только мак. Некоторые коммутаторы (например, Dlink DES3526) шлет renew без опций82, как я уже писал, и БГ при получении такого пакета отвечает nak и кладет сессию. Код: Message type: BOOT_REQUEST
Dhcp message type: DHCP Request{3} htype: 1, hlen: 6, hops: 1 xid: 1025256037, secs: 0, flags: 0 Client IP: 145.255.253.235 Your IP: 0.0.0.0 Server IP: 0.0.0.0 Relay IP: 10.63.195.8 Client MAC: {001FC6235801} Host name{12}={M50SA} Param request list{55}={1, 28, 2, 3, 15, 6, 119, 12, 44, 47, 26, 121, 42, 121, -7, 33, -4, 42} Agent information{82}= sub{2}={020A000091FFFDEE01000F29} sub{-106}={91FFFDEE} 04-24/16:26:08 INFO [dhcpLstnr-p-12-t-10] AbstractInetDhcpProcessor2 - agentRemoteId is empty 04-24/16:26:08 ERROR [dhcpLstnr-p-12-t-10] InetDhcpProcessor2 - Not found params for request: (pattern: $deviceId:$remoteId:$circuitId, servSearchMode: 1, deviceId: 50, agentDeviceId: 50) 04-24/16:26:08 INFO [dhcpLstnr-p-12-t-10] AbstractInetDhcpProcessor2 - RESPONSE_BEFORE_POSTPROCESS: Message type: BOOT_RESPONSE Dhcp message type: DHCP NAK{6} htype: 1, hlen: 6, hops: 1 xid: 1025256037, secs: 0, flags: 0 Client IP: 145.255.253.235 Your IP: 0.0.0.0 Server IP: 0.0.0.0 Relay IP: 10.63.195.8 Client MAC: {001FC6235801} Agent information{82}= sub{2}={020A000091FFFDEE01000F29} sub{-106}={91FFFDEE} |
Автор: | aneye [ 24 апр 2019, 19:09 ] |
Заголовок сообщения: | Re: DHCP opt.82 & ISG |
Кстати, подскажите пожалуйста, как правильно вытащить mac из dhcp-пакета в БГ? |
Автор: | Amir [ 24 апр 2019, 19:13 ] |
Заголовок сообщения: | Re: DHCP opt.82 & ISG |
Цитата: Здесь речь идет именно о привязке радиус/дхцп к сессии? Я к тому, что если мы оставим например, только девайс и мак, мы не потеряем функционал аутентификации по коммутатору и порту? Нет, аутентификация идет при Access-Request. Другое дело, что могут быть проблемы, если будут устройства с одинаковыми MAC - в этом случае привязка $deviceId:$remoteId:$circuitId:$mac или $deviceId:$remoteId:$mac предпочтительнее.В любом случае нужно смотреть что пишет в Put auth accept и в Not found, какие там значения полей |
Автор: | aneye [ 24 апр 2019, 19:17 ] |
Заголовок сообщения: | Re: DHCP opt.82 & ISG |
А вообще, есть какая-то практика по работе с renew сообщениями без опции 82? У нас вообще возникла мысль попытаться сделать так, чтобы БГ игнорировала dhcp-пакеты без суб-опциии 9 (той, которая приходит уже от релея и в которой находятся все нужные нам значения). |
Автор: | Amir [ 24 апр 2019, 19:20 ] |
Заголовок сообщения: | Re: DHCP opt.82 & ISG |
Для того, чтобы биллинг отвечал на RENEW запросы в конфиге Access+Accounting должно быть указано dhcp.renew=1, InetAccess нужно перезапустить. Renew-запрос - это запрос у которого ciaddr!=0.0.0.0 и нет опций Server-Identifier и Requested-IP-Address. Чтобы ответить на такой запрос, биллинг ищет активную сессию по ciaddr. Если же это Renew-запрос, но при этом option82 есть и запрос пришел от релея - обрабатывается как обычный запрос |
Автор: | Amir [ 24 апр 2019, 19:22 ] |
Заголовок сообщения: | Re: DHCP opt.82 & ISG |
DHCP-клиент шлет RENEW на адрес, указанный в dhcp.option.serverIdentifier= Т.е. на адрес из опции Server-Identifier из OFFER/ACK. |
Автор: | aneye [ 24 апр 2019, 19:24 ] |
Заголовок сообщения: | Re: DHCP opt.82 & ISG |
dhcp.renew=1 у нас установлен. Вы говорите, что биллинг ищет сессию по ciaddr. Но судя по логу, он пытается найти ее по паттерну. Код: ERROR [dhcpLstnr-p-12-t-10] InetDhcpProcessor2 - Not found params for request: (pattern: $deviceId:$remoteId:$circuitId, servSearchMode: 1, deviceId: 50, agentDeviceId: 50)
|
Автор: | Amir [ 24 апр 2019, 19:30 ] |
Заголовок сообщения: | Re: DHCP opt.82 & ISG |
Значит в этом пакете есть option82. |
Автор: | aneye [ 24 апр 2019, 19:41 ] |
Заголовок сообщения: | Re: DHCP opt.82 & ISG |
Логично... Поработаем в эту сторону. |
Автор: | aneye [ 25 апр 2019, 12:13 ] |
Заголовок сообщения: | Re: DHCP opt.82 & ISG |
Проблему нашли. Она была в коммутаторе dlink des3526. При отправке renew, он вставляет неполную опцию82, без remote-id. Устройство-релей, получив такой пакет, хотя и направляет его на dhcp-сервер, но remote-id не инкапсулирет, ввиду его отсутствия. И получается так, что БГ не понимает, что делать с таким пакетом: опция82 в нем есть, но в ней нет никакой нужной информации. Поставили des3028 - все завелось с первого раза. |
Автор: | aneye [ 26 апр 2019, 13:48 ] |
Заголовок сообщения: | Re: DHCP opt.82 & ISG |
Появился новый вопрос. В данный момент перешли к работе над отключенными сессиями, при недостатке средств. Пока не работает. ![]() При связке dhcp+isg - кто все же выдает адреса? Например, есть параметр, который отвечает за определение пула выдаваемых по dhcp адресов: Код: dhcp.ipCategories= Однако, в процессе тестирование в какой-то момент я увидел, что клиент получил адрес вообще из другого пула. Оказалось, что этот пул был следующим в Код: ip.resource.categoryId= Я убрал из конфигурации dhcp.ipCategories, оставив только ip.resource.categoryId - и все работает. Из этого следующий вопрос: если адреса выдаются по ip.resource.categoryId, то как выдавать адреса отключенным абонентам? Используя dhcp.disable.ipCategories= ? |
Автор: | Amir [ 26 апр 2019, 16:02 ] |
Заголовок сообщения: | Re: DHCP opt.82 & ISG |
ip.resource.categoryId - это адреса для статического назначения при редактировании сервиса dhcp.ipCategories - для динамической выдачи по DHCP, если на сервисе не указан статический адрес (но не для вашей текущей схемы, где главным является RADIUS) radius.realm.default.ipCategories - для динамической выдачи по RADIUS, если на сервисе не указан статический адрес (в вашей схеме должен выдавать отсюда) При ограниченном доступе (для RADIUS) выдает из radius.disable.ipCategories В нем могут быть указаны теже самые категории. Однако есть параметр Код: # Режим выдачи адреса при ошибке авторизации: # 0 (по умолчанию) - выдавать динамический адрес из категорий radius.disable.ipCategories, # 1 - выдавать статический адрес как при удачной авторизации, динамический - из категорий radius.disable.ipCategories # 2 - выдавать адрес (статический или динамический) как при удачной авторизации radius.disable.mode=1 https://docs.bitel.ru/pages/viewpage.ac ... =119505956 |
Автор: | aneye [ 26 апр 2019, 16:42 ] |
Заголовок сообщения: | Re: DHCP opt.82 & ISG |
Спасибо. У нас пока по какой-то причине при отрицательном балансе и состоянии "отключен (недостаточно средств)" БГ не находит устройство, к которому привязан сервис. Код: ERROR [dhcpLstnr-p-12-t-10] InetDhcpProcessor2 - Not found params for request: (pattern: $deviceId:$remoteId:$circuitId, servSearchMode: 1, deviceId: 50, agentDeviceId: 54) При этом, если баланс сделать положительным - все начинает работать нормально. |
Автор: | Amir [ 26 апр 2019, 17:24 ] |
Заголовок сообщения: | Re: DHCP opt.82 & ISG |
Сессия при этом в биллинге есть? |
Автор: | aneye [ 26 апр 2019, 18:03 ] |
Заголовок сообщения: | Re: DHCP opt.82 & ISG |
Нет, сессии нет. На ASR при этом идут попытки, но сессия постоянно в статусе unauthen. |
Автор: | aneye [ 29 апр 2019, 11:48 ] |
Заголовок сообщения: | Re: DHCP opt.82 & ISG |
Поведение следующее: ASR при получении dhcp-пакета от клиента стартует сессию, отправляет radius-запрос в БГ, и БГ ему отвечает access-accept. Т.е. на этом этапе они договариваются, отключенная сессия с адресом и всеми необходимыми сервисами поднимается. Однако, dhcp.log вообще молчит - как будто он не при делах вовсе. Ну и машина клиента адрес соответственно не получает. |
Автор: | Amir [ 29 апр 2019, 17:37 ] |
Заголовок сообщения: | Re: DHCP opt.82 & ISG |
Что-то с настройками ASR. Или выдаются не те сервисы в Access-Accept, которые она ждет. Или атрибуты в Access-Accept не нравятся |
Автор: | Amir [ 29 апр 2019, 17:38 ] |
Заголовок сообщения: | Re: DHCP opt.82 & ISG |
Мне кажется, что сесси не должна быть unauthen, если биллинг выдал Access-Accept |
Страница 1 из 2 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |