pf+altq for bandwidth control

Lan Tran llt at recol.com
Thu May 17 14:14:38 UTC 2007


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 transparent 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"
matches the "queue std_ext" instead of "queue test_ext" rule.  It appears 
the cbq(default) child rule is overriding the other rule.

What am I missing?

LT 



More information about the freebsd-pf mailing list