...
При превышении количества сессий сервиса над ограничением в его свойствах при включенном pool.error выдаются несколько адресов из этого пула, после чего DHCP-запросы игнорируются. Это сделано для невозможности исчерпания пула фиктивных адресов отправкой большого количества DHCP-запросов с разными MAC-адресами. Количество сессий сверх ограничения, для которых могут быть выданы фиктивные адреса задаётся переменной конфигурации dhcp.additionalUnauthorizedSessionCount.
Так же можно Для выдачи адреса, в случае если выдачи фиктивного адреса создавать сессии на одном общем специальном сервисе. , если сервис не был найден (например, для предоставления гостевого доступа), необходимо создать договор с балансом меньше лимита и сервисом модуля Inet со статусом закрыт, а ID сервиса прописать в конфигурации устройства:
Блок кода | ||||
---|---|---|---|---|
| ||||
#код сервиса, на котором создается сессия с фиктивным адресом. dhcp.disable.servId=1 |
Таким образом, сессии с ненайденным сервисом будут привязываться к указанному сервису.
Эту опцию можно использовать в схемах, когда клиента подключают в изначально в какой-то новый порт изначально, он он получает фиктивный адрес, для него создается сессия на специальном сервисе. Потом Далее он заходит в личный кабинет и через дополнительные действия создает сервис , скрип находи скрипт находит его сессия сессию на фиктивном договоре (например, по ipIP), берет с нее информацию (порт, mac MAC-адрес и т.п.) и создает уже нормальный обычный сервис на договоре этого абонента.
При смене абонентом устройства идет новый запрос DHCP-Discover, но может быть ситуация, когда старая сессия еще не закрыта по таймауту (пример - только что было продление адреса и абонент сменил устройство). В этом случае будет считаться что у абонента уже есть одна сессия и что IP-адрес этой сессии еще занят. Для того, чтобы на DHCP-Discover происходило закрытие активных сессий на сервисе, нужно указать dhcp.connection.closeOnNew=1.
...