вобщем ситуация:
есть циса 17-ая, на ней поднят сервер pppoe c аутентификацией на внешнем радиус-сервере... alive пакеты отсылает на радиус с периодичность 1 раз в минуту...
на сервере используеться freeradius, всё лежит в базе mysql...
люди аутентифицируются без проблем, качают потом что надо и не надо...
статистика по трафику в базу слаживаеться...вопрос: как использовать эту статистику ? т.е. выставить пользователям лимиты по трафику, при превышении сбрасывать сессию (пока могу скидывать тока вручную по snmp). и еще: даже если юзер ничего не качает - циса обмениваеться с ним пакетами (вроде lcp), этот трафик тоже попадает в базу (т.е. если юзер просто провисит на соединении и ничего не будет качать - у него просто может кончиться лимит))), как сделать, чтоб эти пакеты не считались ?
надеюсь на помощь ! запарился доки рыть...
P.S. готовые решения ввиде бесплатных билингов не предлагать )
P.P.S. надеюсь разберете, что я тут понаписал )
>вобщем ситуация:
>есть циса 17-ая, на ней поднят сервер pppoe c аутентификацией на внешнем
>радиус-сервере... alive пакеты отсылает на радиус с периодичность 1 раз в
>минуту...
>на сервере используеться freeradius, всё лежит в базе mysql...
>люди аутентифицируются без проблем, качают потом что надо и не надо...
>статистика по трафику в базу слаживаеться...
>
>вопрос: как использовать эту статистику ? т.е. выставить пользователям лимиты по трафику,
>при превышении сбрасывать сессию (пока могу скидывать тока вручную по snmp).
>и еще: даже если юзер ничего не качает - циса обмениваеться
>с ним пакетами (вроде lcp), этот трафик тоже попадает в базу
>(т.е. если юзер просто провисит на соединении и ничего не будет
>качать - у него просто может кончиться лимит))), как сделать, чтоб
>эти пакеты не считались ?
>
>надеюсь на помощь ! запарился доки рыть...
>
>P.S. готовые решения ввиде бесплатных билингов не предлагать )
>P.P.S. надеюсь разберете, что я тут понаписал )Насчет lcp точно не помню, но по-моему они к конечный биллинг не попадают (по крайней мере у меня на линуксовом рррое сервере).
Лимиты выставлять можно при установлении сессии. В радиусе существуют соответствующие атрибуты. Под линуксом они описаны следующим образом:# Limit session traffic
ATTRIBUTE Session-Octets-Limit 227 integer
# What to assume as limit - 0 in+out, 1 in, 2 out, 3 max(in,out)
ATTRIBUTE Octets-Direction 228 integer
А как срубаете пользователя по SNMP вручную?
>А как срубаете пользователя по SNMP вручную?
#!/usr/bin/perl$ip = 1.1.1.1 #например
$ifnumber=`snmpget -v1 -Ov 172.26.87.4 -c public2 .1.3.6.1.2.1.4.21.1.2.$ip`;
$ifnumber=~ m/\d+/;
$ifnumber="$&";
`snmpset -v1 -c public2 172.26.87.4 1.3.6.1.2.1.2.2.1.7.$ifnumber i 2 > /dev/null 2>&1`;