|
|
|
@ -0,0 +1,28 @@ |
|
|
|
## 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** из менеджера устройства, |
|
|
|
которое открыто для кастомизации, подробнее в [Менеджер устройства](./docs/dev.md). |
|
|
|
А далее, если может быть несколько абонентов, то фильтруем вывод ещё по порту свича. |
|
|
|
Получется что на управляемом свиче мы авторизуем абонентов при помощи dhcp option.82 по маку свича и порту абонента. |
|
|
|
Если наше устройство PON ONU(ONT) то авторизуем только по mac адресу оптического юнита(onu). |
|
|
|
|
|
|
|
После добавления абоненту аренды динамического ip, он(абонент) синхронизуется с nas сервером и открывается доступ |
|
|
|
к интернету в соответствии с тарифом абонента. |