yes , i tray to limit bandwidth download and upload so if users get all limit they get access reject what is best way to limit it . thank u your replay very helpful all things now clear , but from your first replay u say " If you're trying to enforce download limits on users, this isn't part of standard RADIUS. You cannot put Acct-Input-Octets into an Access-Accept, and expect that the NAS will enforce that. You have to read the NAS documentation to see (1) if the NAS is capable of this, and (2) which vendor-specific attributes to use. " i need to limit total bandwidth octets not (rx/tx) limit Note : i use my openwrt as nas ( wpa-enterprise ) On Sun, Jun 16, 2019 at 4:03 PM Alan DeKok <aland@deployingradius.com> wrote:
On Jun 16, 2019, at 7:56 AM, Mustafa Nassir <mustafa.n.gaid@gmail.com> wrote:
ok , i need to limit total octets for users so i add sqlcounter :
sqlcounter total_limit{ counter_name = 'Max-Total-Bandwidth' check_name = 'Total-Bandwidth' sql_module_instance = sql key = 'User-Name' dialect = mysql reset = never query = "SELECT SUM(acctinputoctets) + SUM(acctoutputoctets) FROM
radacct
WHERE UserName='%{${key}}'" }
its work fine for 4 GB but if i need to limit it to 10 GB or more the server give another value not what i add some examble :
You shouldn't need to do that. The sqlcounter module has supported 64-bit counters since 3.0.4, in 2014.
insert into radcheck (username,attribute,op,value) values ("sw392"," Cleartext-Password",":=","sw"); insert into radcheck (username,attribute,op,value) values ("sw392"," Monthly-Bandwidth ",":="," 10737418240");
when i do radtest sw392 sw 127.0.0.1 10 XXXXX
i get
User-Name = "sw392" User-Password = "sw" NAS-IP-Address = 127.0.0.1 NAS-Port = 10 Message-Authenticator = 0x00 Cleartext-Password = "sw" Received Access-Accept Id 61 from 127.0.0.1:1812 to 0.0.0.0:0 length 26 Session-Timeout = 2147483648
the session-timeout is my Monthly-Bandwidth attribute as you see i get different value from what i insert in sql
Yes, because Session-Timeout is a 32-bit integer.
If you're doing to put values larger than 4G into a 32-bit integer, it won't work.
If you're going to limit bandwidth by putting bandwidth values into Session-Timeout, it won't work.
The sqlcounter module supports 64-bit values just fine. One issue, though is that the module is made to count *time* not *bandwidth*. All of the documentation and examples show it counting time. And when you test it, you see the module setting Session-Timeout. *Not* any bandwidth limitation.
So again, what are you trying to do? You've posted a configuration here, but you're not really describing the problem.
Are you trying to limit bandwidth that the users can download? Did you *READ* my previous response which explained the problem with that?
Alan DeKok.
- List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html