Date: Thu, 17 May 2007 09:37:32 -0400 From: "Lan Tran" <llt@recol.com> To: "Jeremy Tregunna" <info@plot.uz> Cc: freebsd-isp@freebsd.org Subject: Re: pf+altq for bandwidth management Message-ID: <003601c79888$85bd0500$d101010a@recol.us> References: <008e01c797cf$8eecda60$d101010a@recol.us> <4A5057D3-3AF7-4E3E-8165-4B821FCB0E1A@blurgle.ca>
next in thread | previous in thread | raw e-mail | index | archive | help
----- Original Message ----- From: "Jeremy Tregunna" <info@plot.uz> To: "Lan Tran" <llt@recol.com> Cc: <freebsd-isp@freebsd.org> Sent: Wednesday, May 16, 2007 1:21 PM Subject: Re: pf+altq for bandwidth management > On 16-May-07, at 11:33 AM, Lan Tran wrote: > >> Hello, >> >> Is pf and altq a right combo for bandwidth limiting? What I'm trying to >> do is limit each IP or block of IPs to predefined bandwidth. I'm not >> doing traffic shaping, just wanting to prevent servers from hogging all >> the bandwidth. >> >> My setup is as follow: >> LAN {test server} -> xl1 {FreeBSD} xl0 -> router -> net >> xl0 and xl1 are functioning as a bridge. kernel has pf and altq >> compiled. >> >> pf.conf: >> ext_if = "xl0" >> int_if = "xl1" >> pc = "any" >> set loginterface $ext_if >> >> # to net >> altq on $ext_if cbq bandwidth 100Mb queue { std_ext, test_ext } >> queue std_ext bandwidth 3Mb qlimit 1000 priority 5 cbq(default red ecn) >> queue test_ext bandwidth 2Mb priority 1 cbq(red ecn) >> >> pass out on $ext_if from $pc to any keep state queue test_ext >> --- >> The problem I'm having is that all outbound traffic from "test server" >> always shows around 3Mb instead of 2Mb per queue test_ext ruleset. What >> am I missing? > > I've noticed the best precision for bandwidth limiting on cheap cards > like realtek's (provided of course, the particular rl(4) card you're > using is supported). Cards like fxp(4) and xl(4) I've not had great luck > with getting them limited properly (always above or below the target)). > > -- > Jeremy Tregunna Jeremy, Thanks for the input on types of card. It seems the "default" cbq rule is getting hit instead of the expected ruleset. If I change queue test_ext bandwidth 2Mb priority 1 cbq(red ecn) to queue test_ext bandwidth 2Mb priority 1 cbq(red ecn default), I get the rate I want. But this causes every rule to be matched to 2Mb. Any ideas? LT
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?003601c79888$85bd0500$d101010a>