ipfw dummynet bandwidth limiting questions

Alex de Kruijff freebsd at akruijff.dds.nl
Tue Nov 18 12:59:06 PST 2003


On Tue, Nov 18, 2003 at 12:02:27PM -0800, Kelsey Cummings wrote:
> On Tue, Nov 18, 2003 at 03:48:57AM +0100, Alex de Kruijff wrote:
> > On Mon, Nov 17, 2003 at 04:03:52PM -0800, Kelsey Cummings wrote:
> > > I've had some trouble getting ipfw to behave as expected.  I've got a ipfw
> > > box sitting as a firewall and traffic shaper in bridge mode.  It's working
> > > great for the most part but I'm having trouble getting some specific behavior
> > > to work right.
> > > 
> > > I'm currently limiting all outbound streams to 1.5mbits, and this works
> > > great.  However, I'd also like to setup an overall cap for all traffic to
> > > run at 25mbits.  I can only get one or the other of these rule/pipe combos
> > > to take affect at any given time.  I must be missing something obvious:
> > > 
> > > The rules in questions are as follows:
> > > 
> > >   add 420 pipe 420 tcp from $slb_www 80 to any
> > >   pipe 420 config bw 1500Kbit/s queue 35 mask dst-ip 0xffffffff buckets 1024
> > > 
> > >   add 440 pipe 440 tcp from $slb_www 80 to any
> > >   pipe 440 config bw 25Mbit/s queue 100
> > > 
> > > 'ipfw show' shows zero hits on rule 440, it sure seems like it should work.
> > 
> > The packets are allowed on 420 you can disable this with:
> >   exec = /sbin/sysctl net.inet.ip.fw.one_pass=0
> 
> Alex, any other suggestions?  I'd already played with one_pass without
> luck, and have tried again. 
> 
> # sysctl -a net.inet.ip.fw.one_pass
> net.inet.ip.fw.one_pass: 0
> 
> #ipfw show
> ..
> 00420 4942806 6549461073 pipe 420 tcp from IP 80 to any
> 00440       0          0 pipe 440 tcp from IP 80 to any
> ..

Could you try this firewall:
ipfw flush
ipfw add pipe 1 ip from any to any out
ipfw add pipe 2 ip from any to any out
ipfw pipe 1 config bw 1500Kbit/s dst-ip 0xffffffff
ipfw pipe 2 config bw 25Mbit/s

With net.inet.ip.fw.one_pass set to 0 all packets should pass though
both pipes.

-- 
Alex

Articles based on solutions that I use:
http://www.kruijff.org/alex/index.php?dir=docs/FreeBSD/


More information about the freebsd-questions mailing list