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: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Christopher Cowart
Sent: Tuesday, April 01, 2008 7:55 PM
To: [EMAIL PROTECTED]
Cc: freebsd-questions@freebsd.org
Subject: Re: FreeBSD Traffic Shaping

[EMAIL PROTECTED] 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@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"




_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"




_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"




_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to