FreeBSD Traffic Shaping

freebsd at top-consulting.net freebsd at top-consulting.net
Wed Apr 2 12:38:07 UTC 2008


I can now confirm that these two commands do exactly what I mentioned  
originally.

All outbound connections towards any host port 80 will have a maximum  
bandwidth of 100Kbit/s individually ( output )

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

Problem solved :)

> Hmm,
>
> 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 freebsd.org
>>> [mailto:owner-freebsd-questions at freebsd.org] On Behalf Of  
>>> Christopher Cowart
>>> Sent: Tuesday, April 01, 2008 7:55 PM
>>> To: freebsd at top-consulting.net
>>> Cc: freebsd-questions at freebsd.org
>>> Subject: Re: FreeBSD Traffic Shaping
>>>
>>> freebsd at top-consulting.net 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 freebsd.org mailing list
>>> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
>>> To unsubscribe, send any mail to  
>>> "freebsd-questions-unsubscribe at freebsd.org"
>>>
>>
>>
>>
>> _______________________________________________
>> freebsd-questions at freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
>> To unsubscribe, send any mail to "freebsd-questions-unsubscribe at freebsd.org"
>>
>
>
>
> _______________________________________________
> freebsd-questions at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> To unsubscribe, send any mail to "freebsd-questions-unsubscribe at freebsd.org"
>





More information about the freebsd-questions mailing list