[RP-PPPoE] radattr.so cant receive values from radius

Evgeniy Kozhuhovskiy ugenk at mgts.by
Tue Sep 7 08:27:29 EDT 2010


You can try this one:

if cat /var/run/radattr.${IFNAME} |grep Upstream-Speed-Limit
then
  UP=`cat /var/run/radattr.${IFNAME} |grep Upstream-Speed-Limit |awk 
'{print $2}'`
  DOWN=`cat /var/run/radattr.${IFNAME} |grep Downstream-Speed-Limit |awk 
'{print $2}'`
fi

#[ -z $UP ] && UP=128
#[ -z $DOWN ] && DOWN=256

[ -z $UP ] && [ -z $DOWN ] && exit

/sbin/tc qdisc del dev $IFNAME root
/sbin/tc qdisc add dev $IFNAME root tbf rate ${DOWN}Kbit latency 10ms 
burst $[$DOWN*128]

/sbin/tc qdisc del dev $IFNAME handle ffff: ingress
/sbin/tc qdisc add dev $IFNAME handle ffff: ingress
/sbin/tc filter add dev $IFNAME parent ffff: protocol ip prio 10 u32 
match ip src 0.0.0.0/0 police rate ${UP}Kbit burst $[$DOWN*128] mtu 9k 
drop flowid :1


Mike Tesliuk пишет:
> this is my script to set the bandwidth
> 
> #!/bin/bash
> #PPP_IFACE PPP_TTY PPP_SPEED PPP_LOCAL PPP_REMOTE PPP_IPPARAM
> 
> UPB="64kbit"
> DOB="64kbit"
> 
> /sbin/tc qdisc add dev $PPP_IFACE root handle 1: htb default 30
> /sbin/tc class add dev $PPP_IFACE parent 1: classid 1:1 htb rate $UPB
> /sbin/tc class add dev $PPP_IFACE parent 1: classid 1:2 htb rate $DOB
> /sbin/tc filter add dev $PPP_IFACE protocol ip parent 1:0 prio 1 u32
> match ip dst $PPP_REMOTE/32 flowid 1:1
> /sbin/tc filter add dev $PPP_IFACE protocol ip parent 1:0 prio 1 u32
> match ip src $PPP_REMOTE/32 flowid 1:2
> 
> 
> look on this file, i have a UPB e DOB variable, this is static for
> now, i want to get the value of the radattr file to get this function
> dynamic.
> 
> 
> when i do a freeradius -X i get this
> 
> 
> rlm_sql (sql): Reserving sql socket id: 2
> rlm_sql (sql): Released sql socket id: 2
> ++[sql] returns ok
> ++[exec] returns noop
> Sending Access-Accept of id 55 to 127.0.0.1 port 44560
>         Framed-Protocol = PPP
>         Framed-Compression = Van-Jacobson-TCP-IP
>         RP-Downstream-Speed-Limit := 64
>         RP-Upstream-Speed-Limit := 64
>         Framed-IP-Address = 187.109.35.137
>         Framed-IP-Netmask = 255.255.255.0
> Finished request 13.
> Going to the next request
> Waking up in 4.9 seconds.
> 
> 
> 
> on the tcpdump i receive this.
> 
>         Access Accept (2), id: 0x4f, Authenticator:
> 5e73ab60745587970ee22eee96aeb604
>           Framed Protocol Attribute (7), length: 6, Value: PPP
>             0x0000:  0000 0001
>           Framed Compression Attribute (13), length: 6, Value: VJ TCP/IP
>             0x0000:  0000 0001
>           Vendor Specific Attribute (26), length: 12, Value: Vendor:
> Unknown (10055)
>             Vendor Attribute: 2, Length: 4, Value: ...@
>             0x0000:  0000 2747 0206 0000 0040
>           Vendor Specific Attribute (26), length: 12, Value: Vendor:
> Unknown (10055)
>             Vendor Attribute: 1, Length: 4, Value: ...@
>             0x0000:  0000 2747 0106 0000 0040
>           Framed IP Address Attribute (8), length: 6, Value: 187.109.35.137
>             0x0000:  bb6d 2389
>           Framed IP Network Attribute (9), length: 6, Value: 255.255.255.0
>             0x0000:  ffff ff00
> 
> 
> 
> 
> 2010/9/6 Insane Laughing Clown <mike-rppppoe at tiedyenetworks.com>:
>> Mike Tesliuk wrote:
>>> I read this thread before and i have the script to do the shapping on
>>> ppp interface, but the question is that i dont receive the parameter
>>> on radattr.ppp0
>>>
>> Mike - I would try to verify that your radius server is in fact returing the
>> attributes. Yes you can expect the radattr.so plugin to put everything it
>> gets into the file as you noted, but since it's not there, the explanation
>> is more than likely that your radius server is simply not returning those
>> attributes at all in the first place.
>>
>> If using freeradius, you can verify this simply by running 'freeradius -X'
>> and watching the debug output. Although voluminous, its not too hard to pick
>> out what it's doing and what it's sending back. Another way if you have it,
>> use a (more recent) tcpdump to capture the output from your radius server;
>>
>> tcpdump -lni ethXX -s1500 -vvv host <radiusserver> and port 1812
>>
>> where 'XX' is on the path to your radius. You outta see the access-request
>> and the access-accept response here.
>>
>> By the way.. I am still looking for a decent script to establish
>> per-user-session bandwidth controls. TC has always been so confusing to me I
>> never get it right.
>>
>> Mike-
>>
>> _______________________________________________
>> RP-PPPoE mailing list
>> RP-PPPoE at lists.roaringpenguin.com
>> http://lists.roaringpenguin.com/cgi-bin/mailman/listinfo/rp-pppoe
>>
> 
> 
> 


-- 
С уважением, Евгений Кожуховский
Руководитель группы сервисных платформ
УИТ ЦИТС МГТС РУП Белтелеком
+375-29-3998175
+375-29-7561625
+375-17-3060026



More information about the RP-PPPoE mailing list