forum.bitel.ru http://forum.bitel.ru/ |
|
DHCP.Opt82.StaticIP http://forum.bitel.ru/viewtopic.php?f=44&t=8149 |
Страница 1 из 1 |
Автор: | iONE [ 14 июн 2013, 13:31 ] |
Заголовок сообщения: | DHCP.Opt82.StaticIP |
Столкнулись с проблемой, что при смене устройства у абонента (меняется mac адрес) DHCP сервер не выдает статический ip, выдаёт ошибку Код: 06-13/12:31:20 INFO [dhcpLstnr-p-10-t-6] InetDhcpProcessor - IP not found in service. Searching in device... 06-13/12:31:20 INFO [dhcpLstnr-p-10-t-6] InetDhcpProcessor - Free IP-address not found Где, что посмотреть, подкрутить чтоб ip выдавался при смене устройства (mac адреса) абонента??? inet вер. 5.2 сборка 1171 от 15.05.2013 19:03:34 |
Автор: | Amir [ 14 июн 2013, 13:38 ] |
Заголовок сообщения: | Re: DHCP.Opt82.StaticIP |
Можно эту часть лога (авторизацию) полностью? Привязка к MAC-адресу есть в сервисе? Есть ли дочерние сервисы на договоре? |
Автор: | Amir [ 14 июн 2013, 13:50 ] |
Заголовок сообщения: | Re: DHCP.Opt82.StaticIP |
А при такой смене старая сессия еще активна? Если да, то, скорее всего, проблема в этом - биллинг считает адрес до сих пор занятым. Тогда попробуйте опцию dhcp.connection.closeOnNew=1 При ней при получении DISCOVER все активные сессии сервиса будут закрываться. |
Автор: | iONE [ 14 июн 2013, 16:41 ] |
Заголовок сообщения: | Re: DHCP.Opt82.StaticIP |
Отсутствие активной сессии - это первое что проверил, но параметр dhcp.connection.closeOnNew=1 решил проблему. |
Автор: | PavelGloba [ 12 май 2015, 14:59 ] |
Заголовок сообщения: | Re: DHCP.Opt82.StaticIP |
Дабы не открывать новую тему, спрошу тут. У меня при смене устройства вместо этой ошибки клиенту выдается первый попавшийся свободный ip из любой подсети, вместо ipшника, привязанного к договору. Что надо сделать, чтобы добиться такой же ошибки как у автора? ![]() ![]() |
Автор: | Amir [ 12 май 2015, 15:46 ] |
Заголовок сообщения: | Re: DHCP.Opt82.StaticIP |
Пробовали указать dhcp.connection.closeOnNew=1 (чтобы при DISCOVER биллинг закрывал у себя активную сессию, тем самым освобождая у себя IP-адрес и создавал новую)? |
Автор: | PavelGloba [ 12 май 2015, 15:48 ] |
Заголовок сообщения: | Re: DHCP.Opt82.StaticIP |
Нет. Я собираюсь это сделать, но для начала хочу добиться такой же ошибки как у автора, чтобы быть уверенным в том, что клиенту никогда не будет выдаваться ip, не принадлежащий ему. |
Автор: | Amir [ 12 май 2015, 15:55 ] |
Заголовок сообщения: | Re: DHCP.Opt82.StaticIP |
Должно быть просто поменять устройство одно на другое, т.е. вытащить провод из одного работающего и подключить к другому. Ошибка возникает, т.к. биллинг закрывает сессию по умолчанию только по connection.close.timeout, подразумевая, что за это время не пришли DHCP-запросы от абонента. Поэтому на момент получения DISCOVER от нового устройства биллинг считает предыдущую сессию еще активной, а ее IP-адрес еще занятым. |
Автор: | PavelGloba [ 12 май 2015, 16:44 ] |
Заголовок сообщения: | Re: DHCP.Opt82.StaticIP |
Мне нужно, чтобы клиенту ни при каких обстоятельствах, будь то смена мака или устройства, не выдавался другой ip, кроме того, что привязан в договоре. Если сессия активна и ip занят, то пусть вылезает ошибка. |
Автор: | Amir [ 12 май 2015, 17:31 ] |
Заголовок сообщения: | Re: DHCP.Opt82.StaticIP |
Ну тогда просто разрешить только одно соединение на сервисе. Но в этом случае, например, у вас вдруг lease - одни сутки, то чтобы подключить новое устройство, абоненту нужно будет отключить старое и ждать до суток. Поэтому обычно ставят dhcp.connection.closeOnNew=1. |
Автор: | PavelGloba [ 12 май 2015, 17:38 ] |
Заголовок сообщения: | Re: DHCP.Opt82.StaticIP |
Такой подход очень странный. Разве выдача адресов не должна регулироваться здесь? При указанном статическом адресе он, по сути, выдаёт динамический. ![]() |
Автор: | Amir [ 12 май 2015, 17:52 ] |
Заголовок сообщения: | Re: DHCP.Opt82.StaticIP |
А чем ограничение на одну сессию отличается от того что не выдавать динамический адрес, если статический уже занят? Ведь если делаем ошибку, когда статический занят, а в ограничении указано 3 сессии - то зачем это ограничение на 3 сессии, когда в реальности может быть только одна? Для RADIUS сейчас работает точно так же. Если статические адреса кончились, а ограничение по кол-ву активных сессий еще не сработывает, то выдаем из динамического пула, если он указан. Ну и никто не просил, чтобы не выдавал из динамического пула (если он указан в конфиге) в этом случае. Если очень нужно, то можем сделать. Вы пишете, что нужно чтобы ни в коем случае не выдавался из динамического, так при dhcp.connection.closeOnNew=1 так и будет. |
Автор: | PavelGloba [ 12 май 2015, 18:03 ] |
Заголовок сообщения: | Re: DHCP.Opt82.StaticIP |
Ок. Спасибо. Попробую. |
Автор: | babay951 [ 02 сен 2015, 08:48 ] |
Заголовок сообщения: | Re: DHCP.Opt82.StaticIP |
Дабы не разводить тем. Перехожу с IPN на INET ver 5.2 , чтобы перейти на 6.2 Задача сделать выдачу адресов по opt.82 на порту dlinkов. 1 абонент - конкретный порт. Адрес статический. Ловлю пакеты с помощью dhcpdump . Вижу DISCOVER от абонента, вижу OFFER от BginetAccess, вижу REQUEST от абонента и всё приплыли, BginetAccess не дает ACK. Дает вместо этого ошибку "timeout" в логе. В бубен бил. Wiki читал. ActiveMQ работает и находится на том же сервере. Все настройки брал со своего же рабочего IPN и DHCP.82 сервера для IPN модуля. "Number Of Pending Messages" стабильно "0". Cервер ActiveMQ в hosts прописан. Код: dhcp 09-02/11:05:28 INFO [dhcpLstnr-p-10-t-10] InetAbstractDhcpProcessor - REQUEST:
Message type: BOOT_REQUEST Dhcp message type: DHCP Request{3} htype: 1, hlen: 6, hops: 1 xid: 2020192184, secs: 0, flags: -32768 Client IP: 0.0.0.0 Your IP: 0.0.0.0 Server IP: 0.0.0.0 Relay IP: 10.12.9.56 Client MAC: {14CC20BA33BB} {57}={0400} {61}={0114CC20BA33BB} Host name{12}={TL-WR841N} {60}={4D53465420352E30} Requested IP Address{50}=10.12.72.100 Server Identifier{54}={AC1F00FE} Parameter request list{55}={1, 3, 6, 15, 33, 43, 44, 46, 47, 121, -7} Agent information{82}= sub{1}={000400910101} sub{2}={00063CDF1EEB0896} dhcp 09-02/11:05:28 DEBUG [dhcpLstnr-p-10-t-10] InetAbstractDhcpProcessor - OP_BOOT_REQUEST dhcp 09-02/11:05:28 DEBUG [dhcpLstnr-p-10-t-10] InetAbstractDhcpProcessor - Found device by giaddr id=6 dhcp 09-02/11:05:28 DEBUG [dhcpLstnr-p-10-t-10] InetDhcpProcessor - DHCP_REQUEST dhcp 09-02/11:05:28 DEBUG [dhcpLstnr-p-10-t-10] InetDhcpProcessor - request.giaddr= 10.12.9.56, clientAddress=/10.12.9.56:68 dhcp 09-02/11:05:28 INFO [dhcpLstnr-p-10-t-10] InetDhcpDevice - Search serv on deviceId: 6; 1; interfaceId: 1 dhcp 09-02/11:05:28 INFO [dhcpLstnr-p-10-t-10] InetDhcpProcessor - InetServ found: ContractId: 11737; status: 0; servId: 11 интернет : 10.12.72.100 : 1 Options [] TariffModuleTreeSet [258:06.03.2014-…; ] Device state: 1; optionSet:2 dhcp 09-02/11:05:28 INFO [dhcpLstnr-p-10-t-10] InetDhcpProcessor - Starting connection: InetConnection [id=0-0, iface=6:1, sessId=7869afb8, start=02.09.2015 11:05:28, uname=null, addr=10.12.72.100] mq 09-02/11:05:28 DEBUG [dhcpLstnr-p-10-t-10] EventProcessor - Request, timeout 4000 : Event[ru.bitel.bgbilling.modules.inet.accounting.event.InetAccountingManageEvent] moduleId: 12; pluginId: no; cid: 11737; scid: -1; userId: -1; type: 1; deviceId: 6; connectionId: 0; timestamp: 1441159528174 dhcp 09-02/11:05:32 ERROR [dhcpLstnr-p-10-t-10] InetDhcpProcessor - Timeout exceed! ru.bitel.bgbilling.common.BGException: Timeout exceed! at ru.bitel.bgbilling.modules.inet.access.InetConnectionManager.accountingStart(InetConnectionManager.java:529) at ru.bitel.bgbilling.modules.inet.dhcp.InetDhcpProcessor.processOption82RequestImpl0(InetDhcpProcessor.java:631) at ru.bitel.bgbilling.modules.inet.dhcp.InetDhcpProcessor.processOption82RequestImpl(InetDhcpProcessor.java:213) at ru.bitel.bgbilling.modules.inet.dhcp.InetAbstractDhcpProcessor.processOption82Request(InetAbstractDhcpProcessor.java:504) at ru.bitel.bgbilling.modules.inet.dhcp.InetAbstractDhcpProcessor.processRequest(InetAbstractDhcpProcessor.java:274) at ru.bitel.bgbilling.kernel.network.dhcp.DhcpListenerWorker.runImpl(DhcpListenerWorker.java:57) at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40) |
Автор: | PavelGloba [ 02 сен 2015, 14:46 ] |
Заголовок сообщения: | Re: DHCP.Opt82.StaticIP |
А inet.accounting запущен? |
Автор: | babay951 [ 02 сен 2015, 15:38 ] |
Заголовок сообщения: | Re: DHCP.Opt82.StaticIP |
Не запущен был. Запустил, все тоже самое ошибки те же, да и он тут вроде не при чем, хотя это ведают только разработчики ![]() |
Автор: | PavelGloba [ 02 сен 2015, 15:51 ] |
Заголовок сообщения: | Re: DHCP.Opt82.StaticIP |
Смею предположить, что он и не настраивался до этого ни разу. В inet-accounting.xml указан app.id moduleId rootDeviceId? В логах ошибок нет? |
Автор: | Amir [ 02 сен 2015, 15:58 ] |
Заголовок сообщения: | Re: DHCP.Opt82.StaticIP |
Да, InetAccounting должен быть настроен и запущен - он занимается созданием и тарификацией сессий. В данном случае, когда InetAccess получает DHCP-запрос, он отправляет команду InetAccounting на создание сессии. В данном случае ответа от InetAccounting не последовало. |
Автор: | babay951 [ 02 сен 2015, 16:04 ] |
Заголовок сообщения: | Re: DHCP.Opt82.StaticIP |
Аккаутинг был оставлен на потом, app.id , moduleid, root deviceid указаны. Запущено, ошибок нет. Логи аккаунтинга стоят на месте, предпологаю что все в порядке. Реальный сбор статистики через netflow пока ещё не делал, смысла не вижу. Что меня настораживает версия биллинга 5.2 , а Accounting и Access для него с 2013 года не обновлялись. Radius не используется у меня. IPOE. Шлюз на манаде, но до этого не доходил ещё. С DHCP надо разобраться. Amir, ок спасибо за разъяснения. Буду думать. И заодно ставлю тестовую 6.2. |
Автор: | Amir [ 02 сен 2015, 16:09 ] |
Заголовок сообщения: | Re: DHCP.Opt82.StaticIP |
А билды ядра и модуля в сервере не старые? Цитата: Что меня настораживает версия биллинга 5.2 , а Accounting и Access для него с 2013 года не обновлялись. Это значит, что не обновлялись скрипты запуска, сторонние библиотеки. Библиотеки биллинга обновляются из BGBillingServer при запуске update.sh в InetAccess/InetAccounting.Параметр accounting.deviceTypeIds указан правильный? Ранее он указывался в inet-access.xml, теперь мы рекондуем из inet-access.xml его убирать и указывать в конфиге модуля. Значение должно быть - ID ТИПА корневого устройства Access+Accounting. Возможно дело в этом параметре. После его изменения нужен перезапуск InetAccess/InetAccounting. |
Автор: | babay951 [ 03 сен 2015, 13:43 ] |
Заголовок сообщения: | Re: DHCP.Opt82.StaticIP |
На 5.2 все заработало. По update понятно. Делал его, так и предполагал, что с сервера тянется, наподобие обновления клиента. Спасибо PavelGloba и Amir, проблема была действительно в не запущенном Accounting. Даже в доке это есть красненькими буквами http://www.bgbilling.ru/v5.2/doc/ch18s13s08.html ))) Но вот в логе этого нет. Оставлю пожалуй свои настройки, чтобы сделать выдачу статических адресов на DLink подобных коммутаторах, с таким же Circuit-ID. Вдруг кому то помогут, не с этой так с другой проблемой. Всего сделано 3 типа устройств. В устройствах они в виде дерева "Access and Accounting" - "Шлюз linux типа manad" - "Коммутатор DLink" Кнопка "Текущая конфигурация" у последнего устройства в ветке устройств, тип устройства "Коммутатор DLink", у этого типа устройства добавлены интерфейсы 24 штуки (1-24). Код: accounting.period.activation.mode=1
connector.http=*:8080 connector.https=*:8443 context.path=/bgbilling contract.status.active.codes=0 contract.status.suspend.codes=3,4 db.maxActive=500 db.maxIdle=30 db.validationTimeout=20 deviceId=6 dhcp.option.leaseTime=86400 dhcp.option.serverIdentifier=10.12.1.1 dhcp.option82.agentRemoteId.type=0 dhcp.option82.interfaceId.code=1 dhcp.option82.interfaceId.length=1 dhcp.option82.interfaceId.position=5 dhcp.option82.removeHeader=0 ip.resource.categoryId=2 port.admin=2005 serv.password.chars=1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz serv.password.chars.description=В пароле допустимы только цифры и латинские буквы. serv.password.length.auto=6 serv.password.length.max=16 serv.password.length.min=5 web.menuItem1=Отчет по сессиям Inet web.menuItem2=Смена пароля на логины Inet web.menuItem3=none |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |