BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 19 апр 2024, 08:17

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 33 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: DHCP opt.82 & ISG
СообщениеДобавлено: 23 апр 2019, 12:05 
Не в сети

Зарегистрирован: 27 сен 2016, 13:48
Сообщения: 71
Карма: 0
Добрый день. Помогите, пожалуйста, разобраться в работе связки 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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP opt.82 & ISG
СообщениеДобавлено: 23 апр 2019, 13:22 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Добрый день.

По описанию не совсем понятно в каком режиме работает ASR - старт по DHCP DISCOVER или старт по IP-пакету?
initiator {dhcp [class-aware] | radius-proxy | unclassified mac-address}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP opt.82 & ISG
СообщениеДобавлено: 23 апр 2019, 14:07 
Не в сети

Зарегистрирован: 27 сен 2016, 13:48
Сообщения: 71
Карма: 0
Добрый.

БРАС стартует сессию по 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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP opt.82 & ISG
СообщениеДобавлено: 23 апр 2019, 16:11 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Для того, чтобы биллинг отвечал на 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=


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP opt.82 & ISG
СообщениеДобавлено: 23 апр 2019, 17:01 
Не в сети

Зарегистрирован: 27 сен 2016, 13:48
Сообщения: 71
Карма: 0
Спасибо, попробуем.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP opt.82 & ISG
СообщениеДобавлено: 23 апр 2019, 19:44 
Не в сети

Зарегистрирован: 27 сен 2016, 13:48
Сообщения: 71
Карма: 0
Пока особых изменений не наблюдаем. БГ (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 из паттерна привязки мы пока убрали.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP opt.82 & ISG
СообщениеДобавлено: 23 апр 2019, 20:16 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Перед тем как выдать Access-Accept должен написать
InetConnectionMap - Put auth accept ......


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP opt.82 & ISG
СообщениеДобавлено: 23 апр 2019, 20:17 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
И какой режим поиска абонента у вас? По порту, по VLAN, ...?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP opt.82 & ISG
СообщениеДобавлено: 24 апр 2019, 01:00 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Цитата:
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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP opt.82 & ISG
СообщениеДобавлено: 24 апр 2019, 12:01 
Не в сети

Зарегистрирован: 27 сен 2016, 13:48
Сообщения: 71
Карма: 0
Режим поиска абонента по порту на найденном устройстве, вланы для поиска не используются.
Код:
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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP opt.82 & ISG
СообщениеДобавлено: 24 апр 2019, 14:07 
Не в сети

Зарегистрирован: 27 сен 2016, 13:48
Сообщения: 71
Карма: 0
Так, на данном этапе мы обнаружили проблему - она была не в БГ, а в коммутаторе агрегации. Если включить клиента по схеме коммутатор -> релей, без промежуточного свитча, то все работает правильно. Будем разбираться с железом. Но я думаю, это не конец истории, если будут вопросы, я напишу их в эту же тему. Спасибо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP opt.82 & ISG
СообщениеДобавлено: 24 апр 2019, 16:31 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Возможно он option82 подменяет.
В этом случае с
dhcp.key.pattern=$deviceId:$mac
должно работать, т.к. привязка будет только по ASR и MAC абонента


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP opt.82 & ISG
СообщениеДобавлено: 24 апр 2019, 18:37 
Не в сети

Зарегистрирован: 27 сен 2016, 13:48
Сообщения: 71
Карма: 0
Здесь речь идет именно о привязке радиус/дхцп к сессии? Я к тому, что если мы оставим например, только девайс и мак, мы не потеряем функционал аутентификации по коммутатору и порту?

Хотим попробовать пока оставить только мак. Некоторые коммутаторы (например, 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}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP opt.82 & ISG
СообщениеДобавлено: 24 апр 2019, 19:09 
Не в сети

Зарегистрирован: 27 сен 2016, 13:48
Сообщения: 71
Карма: 0
Кстати, подскажите пожалуйста, как правильно вытащить mac из dhcp-пакета в БГ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP opt.82 & ISG
СообщениеДобавлено: 24 апр 2019, 19:13 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Цитата:
Здесь речь идет именно о привязке радиус/дхцп к сессии? Я к тому, что если мы оставим например, только девайс и мак, мы не потеряем функционал аутентификации по коммутатору и порту?
Нет, аутентификация идет при Access-Request. Другое дело, что могут быть проблемы, если будут устройства с одинаковыми MAC - в этом случае привязка $deviceId:$remoteId:$circuitId:$mac или $deviceId:$remoteId:$mac предпочтительнее.

В любом случае нужно смотреть что пишет в Put auth accept и в Not found, какие там значения полей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP opt.82 & ISG
СообщениеДобавлено: 24 апр 2019, 19:17 
Не в сети

Зарегистрирован: 27 сен 2016, 13:48
Сообщения: 71
Карма: 0
А вообще, есть какая-то практика по работе с renew сообщениями без опции 82? У нас вообще возникла мысль попытаться сделать так, чтобы БГ игнорировала dhcp-пакеты без суб-опциии 9 (той, которая приходит уже от релея и в которой находятся все нужные нам значения).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP opt.82 & ISG
СообщениеДобавлено: 24 апр 2019, 19:20 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Для того, чтобы биллинг отвечал на RENEW запросы в конфиге Access+Accounting должно быть указано
dhcp.renew=1, InetAccess нужно перезапустить.

Renew-запрос - это запрос у которого ciaddr!=0.0.0.0 и нет опций Server-Identifier и Requested-IP-Address. Чтобы ответить на такой запрос, биллинг ищет активную сессию по ciaddr.
Если же это Renew-запрос, но при этом option82 есть и запрос пришел от релея - обрабатывается как обычный запрос


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP opt.82 & ISG
СообщениеДобавлено: 24 апр 2019, 19:22 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
DHCP-клиент шлет RENEW на адрес, указанный в
dhcp.option.serverIdentifier=
Т.е. на адрес из опции Server-Identifier из OFFER/ACK.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP opt.82 & ISG
СообщениеДобавлено: 24 апр 2019, 19:24 
Не в сети

Зарегистрирован: 27 сен 2016, 13:48
Сообщения: 71
Карма: 0
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)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP opt.82 & ISG
СообщениеДобавлено: 24 апр 2019, 19:30 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Значит в этом пакете есть option82.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP opt.82 & ISG
СообщениеДобавлено: 24 апр 2019, 19:41 
Не в сети

Зарегистрирован: 27 сен 2016, 13:48
Сообщения: 71
Карма: 0
Логично... Поработаем в эту сторону.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP opt.82 & ISG
СообщениеДобавлено: 25 апр 2019, 12:13 
Не в сети

Зарегистрирован: 27 сен 2016, 13:48
Сообщения: 71
Карма: 0
Проблему нашли. Она была в коммутаторе dlink des3526. При отправке renew, он вставляет неполную опцию82, без remote-id. Устройство-релей, получив такой пакет, хотя и направляет его на dhcp-сервер, но remote-id не инкапсулирет, ввиду его отсутствия. И получается так, что БГ не понимает, что делать с таким пакетом: опция82 в нем есть, но в ней нет никакой нужной информации.

Поставили des3028 - все завелось с первого раза.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP opt.82 & ISG
СообщениеДобавлено: 26 апр 2019, 13:48 
Не в сети

Зарегистрирован: 27 сен 2016, 13:48
Сообщения: 71
Карма: 0
Появился новый вопрос. В данный момент перешли к работе над отключенными сессиями, при недостатке средств. Пока не работает. :)

При связке dhcp+isg - кто все же выдает адреса? Например, есть параметр, который отвечает за определение пула выдаваемых по dhcp адресов:
Код:
dhcp.ipCategories=


Однако, в процессе тестирование в какой-то момент я увидел, что клиент получил адрес вообще из другого пула. Оказалось, что этот пул был следующим в

Код:
ip.resource.categoryId=


Я убрал из конфигурации dhcp.ipCategories, оставив только ip.resource.categoryId - и все работает. Из этого следующий вопрос: если адреса выдаются по ip.resource.categoryId, то как выдавать адреса отключенным абонентам? Используя dhcp.disable.ipCategories= ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP opt.82 & ISG
СообщениеДобавлено: 26 апр 2019, 16:02 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP opt.82 & ISG
СообщениеДобавлено: 26 апр 2019, 16:42 
Не в сети

Зарегистрирован: 27 сен 2016, 13:48
Сообщения: 71
Карма: 0
Спасибо.

У нас пока по какой-то причине при отрицательном балансе и состоянии "отключен (недостаточно средств)" БГ не находит устройство, к которому привязан сервис.

Код:
ERROR [dhcpLstnr-p-12-t-10] InetDhcpProcessor2 - Not found params for request: (pattern: $deviceId:$remoteId:$circuitId, servSearchMode: 1, deviceId: 50, agentDeviceId: 54)


При этом, если баланс сделать положительным - все начинает работать нормально.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP opt.82 & ISG
СообщениеДобавлено: 26 апр 2019, 17:24 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Сессия при этом в биллинге есть?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP opt.82 & ISG
СообщениеДобавлено: 26 апр 2019, 18:03 
Не в сети

Зарегистрирован: 27 сен 2016, 13:48
Сообщения: 71
Карма: 0
Нет, сессии нет. На ASR при этом идут попытки, но сессия постоянно в статусе unauthen.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP opt.82 & ISG
СообщениеДобавлено: 29 апр 2019, 11:48 
Не в сети

Зарегистрирован: 27 сен 2016, 13:48
Сообщения: 71
Карма: 0
Поведение следующее: ASR при получении dhcp-пакета от клиента стартует сессию, отправляет radius-запрос в БГ, и БГ ему отвечает access-accept. Т.е. на этом этапе они договариваются, отключенная сессия с адресом и всеми необходимыми сервисами поднимается. Однако, dhcp.log вообще молчит - как будто он не при делах вовсе. Ну и машина клиента адрес соответственно не получает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP opt.82 & ISG
СообщениеДобавлено: 29 апр 2019, 17:37 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Что-то с настройками ASR.
Или выдаются не те сервисы в Access-Accept, которые она ждет.
Или атрибуты в Access-Accept не нравятся


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP opt.82 & ISG
СообщениеДобавлено: 29 апр 2019, 17:38 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Мне кажется, что сесси не должна быть unauthen, если биллинг выдал Access-Accept


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 33 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.117s | 78 Queries | GZIP : On ]