Jump to content
Калькуляторы

freeradius + mysql + Simultaneous Use Checking не всегда срабатывет Simultaneous Use := 1

Если очень быстро подключаться к NAS, то sql не успевает отрабатывать и иногда пускает юзера больше чем 1 раз. Видел 3-4 одновременных подключения при разрешённом числе 1, с чем связано со стороны юзера не знаю, но судя по tcpdump, юзер просто очень быстро подключается и успевает-таки влезть в NAS более одного раза одновременно. Видимо это связано с тем, что в стандартной схеме нет транзакций и всё делается отдельными запросами. Т.о. между запросами + реакцией радиуса есть некоторые моменты времени, в которые можно успешно подключиться более положенного количества раз.

 

Может быть можно этого как-то избежать ?

 

Вопрос возник вот в какой связи: пока что используется схема со статическими адресами, login->ip, Simultaneous Use :=1 . Если у юзера так или иначе получается подключиться более одного раза, то работать всё равно будет только одна сессия, т.к. всем будет выдан один и тот же ip. Хотелось бы уйти на динамические адреса. Если не устранить проблему, то скорее всего юзеру в разных сессиях будут выданы разные ip адреса и у него всё будет работать. Хотелось бы этого избежать.

Share this post


Link to post
Share on other sites

Так и напрашивается написать в ip-pre-up что-то типа:

 

sleep 1

 

zapros.pl (который будет SELECT UserName FROM radacct WHERE UserName='$PEERNAME')

 

если там ничего нет, то exit(0), иначе замочить родителя, т.е. этот pppd ...

 

А если у меня не линукс, что делать ? :-).

Share this post


Link to post
Share on other sites

Периодически сканировать по SNMP (или что там есть в наличии) сессии и убивать лишние.

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this