FreeBSD Traffic Shaping

freebsd at freebsd at
Wed Apr 2 08:07:36 UTC 2008


I've tried

ipfw pipe 2 config mask all bw 100Kbit/s
ipfw add 10 pipe 2 tcp from localip to any 80

it appears to be working but I don't have enough connections on right  
now to find out if it really gives 100kbit/sec to each or if it shares  
the bw

will come back with an update :)

> I gave port 80 as an example but I need this configuration for  
> limiting other services as well.
> If you have a 100mbps connection and only one client, you want him  
> to only use 50kbps, not the full pipe. If you have 200 clients, they  
> still get 50kbps each.
> Is this feature that I need so complicated that it can't be  
> implemented easily into FreeBSD or is it that not many people need  
> it ? It sounds quite useful to me :)
>> I have personally tried that before and it did not worked as described, in
>> fact it didn't work at all to limit anything on FBSD6.
>> -----Original Message-----
>> From: owner-freebsd-questions at
>> [mailto:owner-freebsd-questions at] On Behalf Of Christopher Cowart
>> Sent: Tuesday, April 01, 2008 7:55 PM
>> To: freebsd at
>> Cc: freebsd-questions at
>> Subject: Re: FreeBSD Traffic Shaping
>> freebsd at wrote:
>>> I am trying to limit the bandwidth available to some connections and
>>> I'm not sure FreeBSD can handle this. Maybe some of you can help.
>>> Here's what I need to have exactly.
>>> No matter what the number of connections, each connection should have
>>> at most/least 50kbps guaranteed outbound on port 80.
>>> I've tried dummynet but it doesn't do what I need because if I define
>>> a pipe with 1mbps and if I have 1000 connections, each connection will
>>> have less than 50kbps.
>>> Any way to do this in FreeBSD ?
>> The ipfw(8) man page describes a "mask" configuration parameter.
>> # /sbin/ipfw pipe 1 config mask src-ip 0xffffffff bw 56Kbit/s
>> This creates a separate dynamic pipe per source ip address. Each pipe has a
>> dedicated 56kbps. The man page implies that the mask can combine fields, so
>> to uniquely identify "each connection", you would mask all bits of source
>> and destination IP and ports. It looks like the "all"
>> keyword might do just the trick.
>> --
>> Chris Cowart
>> Network Technical Lead
>> Network & Infrastructure Services, RSSP-IT UC Berkeley
>> _______________________________________________
>> freebsd-questions at mailing list
>> To unsubscribe, send any mail to "freebsd-questions-unsubscribe at"
> _______________________________________________
> freebsd-questions at mailing list
> To unsubscribe, send any mail to "freebsd-questions-unsubscribe at"

More information about the freebsd-questions mailing list