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