BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 19 июн 2025, 00:52

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




Начать новую тему Ответить на тему  [ Сообщений: 21 ] 
Автор Сообщение
 Заголовок сообщения: DHCP.Opt82.StaticIP
СообщениеДобавлено: 14 июн 2013, 13:31 
Не в сети
Клиент

Зарегистрирован: 25 ноя 2007, 22:48
Сообщения: 472
Карма: 8
Столкнулись с проблемой, что при смене устройства у абонента (меняется 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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP.Opt82.StaticIP
СообщениеДобавлено: 14 июн 2013, 13:38 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Можно эту часть лога (авторизацию) полностью?
Привязка к MAC-адресу есть в сервисе? Есть ли дочерние сервисы на договоре?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP.Opt82.StaticIP
СообщениеДобавлено: 14 июн 2013, 13:50 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
А при такой смене старая сессия еще активна? Если да, то, скорее всего, проблема в этом - биллинг считает адрес до сих пор занятым.
Тогда попробуйте опцию
dhcp.connection.closeOnNew=1
При ней при получении DISCOVER все активные сессии сервиса будут закрываться.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP.Opt82.StaticIP
СообщениеДобавлено: 14 июн 2013, 16:41 
Не в сети
Клиент

Зарегистрирован: 25 ноя 2007, 22:48
Сообщения: 472
Карма: 8
Отсутствие активной сессии - это первое что проверил, но параметр dhcp.connection.closeOnNew=1 решил проблему.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP.Opt82.StaticIP
СообщениеДобавлено: 12 май 2015, 14:59 
Не в сети

Зарегистрирован: 23 янв 2015, 19:11
Сообщения: 189
Карма: 5
Дабы не открывать новую тему, спрошу тут. У меня при смене устройства вместо этой ошибки клиенту выдается первый попавшийся свободный ip из любой подсети, вместо ipшника, привязанного к договору. Что надо сделать, чтобы добиться такой же ошибки как у автора?


Изображение

Изображение

_________________
Сервер: вер. 7.0.1409 / 03.09.2018 20:20:58
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP.Opt82.StaticIP
СообщениеДобавлено: 12 май 2015, 15:46 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Пробовали указать
dhcp.connection.closeOnNew=1
(чтобы при DISCOVER биллинг закрывал у себя активную сессию, тем самым освобождая у себя IP-адрес и создавал новую)?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP.Opt82.StaticIP
СообщениеДобавлено: 12 май 2015, 15:48 
Не в сети

Зарегистрирован: 23 янв 2015, 19:11
Сообщения: 189
Карма: 5
Нет. Я собираюсь это сделать, но для начала хочу добиться такой же ошибки как у автора, чтобы быть уверенным в том, что клиенту никогда не будет выдаваться ip, не принадлежащий ему.

_________________
Сервер: вер. 7.0.1409 / 03.09.2018 20:20:58
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP.Opt82.StaticIP
СообщениеДобавлено: 12 май 2015, 15:55 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Должно быть просто поменять устройство одно на другое, т.е. вытащить провод из одного работающего и подключить к другому.
Ошибка возникает, т.к. биллинг закрывает сессию по умолчанию только по connection.close.timeout, подразумевая, что за это время не пришли DHCP-запросы от абонента.
Поэтому на момент получения DISCOVER от нового устройства биллинг считает предыдущую сессию еще активной, а ее IP-адрес еще занятым.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP.Opt82.StaticIP
СообщениеДобавлено: 12 май 2015, 16:44 
Не в сети

Зарегистрирован: 23 янв 2015, 19:11
Сообщения: 189
Карма: 5
Мне нужно, чтобы клиенту ни при каких обстоятельствах, будь то смена мака или устройства, не выдавался другой ip, кроме того, что привязан в договоре. Если сессия активна и ip занят, то пусть вылезает ошибка.

_________________
Сервер: вер. 7.0.1409 / 03.09.2018 20:20:58
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP.Opt82.StaticIP
СообщениеДобавлено: 12 май 2015, 17:31 
Не в сети
Разработчик
Аватара пользователя

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

Но в этом случае, например, у вас вдруг lease - одни сутки, то чтобы подключить новое устройство, абоненту нужно будет отключить старое и ждать до суток.
Поэтому обычно ставят dhcp.connection.closeOnNew=1.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP.Opt82.StaticIP
СообщениеДобавлено: 12 май 2015, 17:38 
Не в сети

Зарегистрирован: 23 янв 2015, 19:11
Сообщения: 189
Карма: 5
Такой подход очень странный. Разве выдача адресов не должна регулироваться здесь? При указанном статическом адресе он, по сути, выдаёт динамический.

Изображение

_________________
Сервер: вер. 7.0.1409 / 03.09.2018 20:20:58
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP.Opt82.StaticIP
СообщениеДобавлено: 12 май 2015, 17:52 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
А чем ограничение на одну сессию отличается от того что не выдавать динамический адрес, если статический уже занят?
Ведь если делаем ошибку, когда статический занят, а в ограничении указано 3 сессии - то зачем это ограничение на 3 сессии, когда в реальности может быть только одна?

Для RADIUS сейчас работает точно так же. Если статические адреса кончились, а ограничение по кол-ву активных сессий еще не сработывает, то выдаем из динамического пула, если он указан.
Ну и никто не просил, чтобы не выдавал из динамического пула (если он указан в конфиге) в этом случае. Если очень нужно, то можем сделать.

Вы пишете, что нужно чтобы ни в коем случае не выдавался из динамического, так при
dhcp.connection.closeOnNew=1
так и будет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP.Opt82.StaticIP
СообщениеДобавлено: 12 май 2015, 18:03 
Не в сети

Зарегистрирован: 23 янв 2015, 19:11
Сообщения: 189
Карма: 5
Ок. Спасибо. Попробую.

_________________
Сервер: вер. 7.0.1409 / 03.09.2018 20:20:58
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP.Opt82.StaticIP
СообщениеДобавлено: 02 сен 2015, 08:48 
Не в сети

Зарегистрирован: 09 июн 2010, 08:32
Сообщения: 38
Карма: 0
Дабы не разводить тем.
Перехожу с 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)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP.Opt82.StaticIP
СообщениеДобавлено: 02 сен 2015, 14:46 
Не в сети

Зарегистрирован: 23 янв 2015, 19:11
Сообщения: 189
Карма: 5
А inet.accounting запущен?

_________________
Сервер: вер. 7.0.1409 / 03.09.2018 20:20:58
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP.Opt82.StaticIP
СообщениеДобавлено: 02 сен 2015, 15:38 
Не в сети

Зарегистрирован: 09 июн 2010, 08:32
Сообщения: 38
Карма: 0
Не запущен был. Запустил, все тоже самое ошибки те же, да и он тут вроде не при чем, хотя это ведают только разработчики :-).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP.Opt82.StaticIP
СообщениеДобавлено: 02 сен 2015, 15:51 
Не в сети

Зарегистрирован: 23 янв 2015, 19:11
Сообщения: 189
Карма: 5
Смею предположить, что он и не настраивался до этого ни разу. В inet-accounting.xml указан app.id moduleId rootDeviceId? В логах ошибок нет?

_________________
Сервер: вер. 7.0.1409 / 03.09.2018 20:20:58
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP.Opt82.StaticIP
СообщениеДобавлено: 02 сен 2015, 15:58 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Да, InetAccounting должен быть настроен и запущен - он занимается созданием и тарификацией сессий.
В данном случае, когда InetAccess получает DHCP-запрос, он отправляет команду InetAccounting на создание сессии.
В данном случае ответа от InetAccounting не последовало.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP.Opt82.StaticIP
СообщениеДобавлено: 02 сен 2015, 16:04 
Не в сети

Зарегистрирован: 09 июн 2010, 08:32
Сообщения: 38
Карма: 0
Аккаутинг был оставлен на потом, app.id , moduleid, root deviceid указаны. Запущено, ошибок нет. Логи аккаунтинга стоят на месте, предпологаю что все в порядке. Реальный сбор статистики через netflow пока ещё не делал, смысла не вижу. Что меня настораживает версия биллинга 5.2 , а Accounting и Access для него с 2013 года не обновлялись. Radius не используется у меня. IPOE. Шлюз на манаде, но до этого не доходил ещё. С DHCP надо разобраться.

Amir, ок спасибо за разъяснения. Буду думать. И заодно ставлю тестовую 6.2.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP.Opt82.StaticIP
СообщениеДобавлено: 02 сен 2015, 16:09 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
А билды ядра и модуля в сервере не старые?
Цитата:
Что меня настораживает версия биллинга 5.2 , а Accounting и Access для него с 2013 года не обновлялись.
Это значит, что не обновлялись скрипты запуска, сторонние библиотеки. Библиотеки биллинга обновляются из BGBillingServer при запуске update.sh в InetAccess/InetAccounting.

Параметр accounting.deviceTypeIds указан правильный? Ранее он указывался в inet-access.xml, теперь мы рекондуем из inet-access.xml его убирать и указывать в конфиге модуля. Значение должно быть - ID ТИПА корневого устройства Access+Accounting. Возможно дело в этом параметре. После его изменения нужен перезапуск InetAccess/InetAccounting.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DHCP.Opt82.StaticIP
СообщениеДобавлено: 03 сен 2015, 13:43 
Не в сети

Зарегистрирован: 09 июн 2010, 08:32
Сообщения: 38
Карма: 0
На 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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 21 ] 

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


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

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


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

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