You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

3.1 KiB

ISC-DHCP Сервер, взаимодействие с биллингом.

Вобщих чертах взаимодействие происходит с помощью скрипта dhcp_lever.py в корне проекта. Запущенный DHCP сервер, при возникновении событий запускает этот сценарий , а тот говорит биллингу подробнее что произошло.

При событии expiry или release биллингу нужно освободить ip, а при commit нужно назначить динамическую аренду ip для учётной записи абонента в биллинге.

Сам скрипт не выполняет все эти действия, он просто отправляет полученные от dhcp сервера параметры на url адрес для обработки dhcp. View распологается в abonapp.views.DhcpLever.

Выделение аренды ip

Как происходит выделение аренды ip, от события в dhcp сервере и до появления интернета у абонента.

Когда в dhcp сервере происходит событие commit то из abonapp.views.DhcpLever вызывается функция agent.commands.dhcp.dhcp_commit, с помощью DHCP OPTION.82 получаем mac адрес управляемого свича и порт через который пришёл запрос. Каждое такое устройство должно быть зарегистрировано в биллинге. Далее ищем в базе абонента, или абонентов к которому привязано устройство с переданным mac адресом. Проверяем может-ли данный тип устройства содержать несколько подключённых абонентов(напрмер PON ONU, в основном, содержит одного абонента). Проверка происходит по свойству is_use_device_port из менеджера устройства, которое открыто для кастомизации, подробнее в Менеджер устройства. А далее, если может быть несколько абонентов, то фильтруем вывод ещё по порту свича. Получется что на управляемом свиче мы авторизуем абонентов при помощи dhcp option.82 по маку свича и порту абонента. Если наше устройство PON ONU(ONT) то авторизуем только по mac адресу оптического юнита(onu).

После добавления абоненту аренды динамического ip, он(абонент) синхронизуется с nas сервером и открывается доступ к интернету в соответствии с тарифом абонента.