Устройство само себе не переназначит адрес, придется перезагружать, и делать не только стоп скрипт но и старт.
Со схемой без переназначения адресов можно сделать не сброс сессии а чтоб на клиента навешивался сервис негативного депозита.
echo "Acct-Session-Id =\"342\", ERX-Service-Deactivate = \"INET-SERVICE\", ERX-Service-Activate:1 = \"LK-SERVICE\"" | /usr/bin/radclient -t1 -r1 -c1 -x 192.168.168.50:3799 coa radsecret
Вот с включением пока плохо разобрался в частности скорость при включении будет предаваться не из радиус атрибута заведенного в билинге а из поля Ограничение полосы: в свойствах тарифа.
Примерно так скорость и id сессии заменить на переменные из атрибутов.
echo "Acct-Session-Id =\"342\", ERX-Service-Deactivate = \"LK-SERVICE\"", ERX-Service-Activate = \"INET-SERVICE(5M,5M)\"" | /usr/bin/radclient -t1 -r1 -c1 -x 192.168.168.50:3799 coa radsecret
Можно мигнуть портом на доступе, и адрес будет перезапрошен.
Мигать портом это проблема, кому-то приспичит в три часа ночи оплатить интернет а попользоваться не сможет если не додумается перезагрузить роутер и не факт что с браса сессия сбросится...