Re: [LARTC] problem in large bandwidth management

Linux Advanced Routing and Traffic Control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Monday 31 March 2003 11:01, hotmail wrote:
> Hi!
>
> I have to manage the bandwitdh of a cable operator and share it.
>
> They have a total bandwidth of 4Mb and 250 customers connected on this
> network.
>
> They divided their bandwith in 3 category:
>
> 64kb => subnet 172.16.64.X
> 128k => subnet 172.16.128.X
> 256k => subnet 172.16.254.X
>
> So I have to limit the bandwith of eith user:
> 64Kb for a user in the subnet 172.16.64.X
> ....
>
> After reading the LARC HOWTO, i tried to make a script for sharing the
> bandwith. The example 12.4 (Hashing filters for very fast massive
> filtering) correspond exactly to my problem but i'm not able to implement
> it, my script doesn't work, the bandwitdh is not share.:((
>
> Can anyone can help me and tell me what is wrong in my script below?
> The only difference i see between my script and the example in the howto
> is:
>
> - In my script i define the rules for ip dst
> -In the howto they define the rules for ip src
>
>
> Thank you very much for your help
Some remarks.
- Bandwidth is the real link bandwidth.  So if you have a 100mbit link, it's 
100mbit.
- Remove all the isolated parameters.  It's not working and it can disturb the 
cbq setup.
- Create 1 bounded root class with rate = link bandwidth and attach all other 
classes (1,2 and 3 in your case) to that class.
- Try htb if you can (kernel 2.4.20 has htb support, for older kernels, you 
need a patch).

Maybe the docs on www.docum.org can help.

> The script:
>
> tc qdisc del dev eth1 root
>
> tc qdisc add dev eth1 root handle 1:0 cbq bandwidth 4Mbit avpkt 1000 cell 8
>
>
> tc class add dev eth1 parent 1:0 classid 1:1 cbq bandwidth 64kbit \
> rate 64kbit prio 5  allot 1514  weight 6kbit cell 8 maxburst 20      \
> avpkt 1000 isolated
>
> tc class add dev eth1 parent 1:0 classid 1:2 cbq bandwidth 128kbit \
> rate 128kbit prio 5  allot 1514 weight 12kbit cell 8 maxburst 20      \
> avpkt 1000 isolated
>
> tc class add dev eth1 parent 1:0 classid 1:3 cbq bandwidth 256kbit  \
> rate 256kbit prio 5  allot 1514 weight 25kbit cell 8 maxburst 20      \
> avpkt 1000 isolated
>
> tc filter add dev eth1 parent 1:0 prio 5 protocol ip u32
> tc filter add dev eth1 parent 1:0 prio 5 handle 2: u32 divisor 256
>
> j=0;
> while [ $j -le 255 ]; do
> hex=`echo "obase=16; $j" |bc`
> tc filter add dev eth1 protocol ip parent 1:0 prio 5 u32 ht 2:$hex: \
> match ip dst 172.16.64.$j flowid 1:1
> tc filter add dev eth1 protocol ip parent 1:0 prio 5 u32 ht 2:$hex: \
> match ip dst 172.16.128.$j flowid 1:2
> tc filter add dev eth1 protocol ip parent 1:0 prio 5 u32 ht 2:$hex: \
> match ip dst 172.16.254.$j flowid 1:3
> j=$((j+1))
> done
>
> tc filter add dev eth1 protocol ip parent 1:2 prio 5 u32 ht 800:: \
> match ip dst 172.16.0.0/16 \
> hashkey mask 0x000000ff at 12 \
> link 2:

-- 

stef.coene@xxxxxxxxx
 "Using Linux as bandwidth manager"
     http://www.docum.org/
     #lartc @ irc.oftc.net



[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux