Lubomir Georgiev escreveu:
OK, so let's get started. Here's my ruleset -

00300   131732   19262748 skipto 1200 ip from any to any { MAC any
00:19:d2:36:b8:48 or MAC 00:19:d2:36:b8:48 any } layer2

Good. I have never used it this way and I am not sure if it will work. First, try to use two rules, one per flow.

ipfw add 300 skipto 1200 ip from any to any MAC 00:19:d2:36:b8:48 any layer2
ipfw add 301 skipto 1200 ip from any to any MAC any 00:19:d2:36:b8:48 layer2

Later, you try to put both flows all in a single rule. I am not sure if both flows aren't checked together and the rule will match once, since layer2 MAC filter happens as it happens on the wire.

00500     4723    1941536 skipto 1400 ip from any to any layer2
01203    68479    8449298 divert 8668 ip from 192.168.1.0/24 to any out via
fxp0
01205    71215   16745674 divert 8668 ip from any to me in via fxp0
*01250   410160  534966441 queue 1 ip from any to any src-port 80 via fxp0
*01251   143290   14139299 queue 1 ip from any to any dst-port 80 via fxp0
*01300  2711668 1462734503 queue 2 ip from any to any not src-port 80 via
fxp0
01400 12581325 6691776490 allow ip from any to any

Seems almost ok here; please, add "not layer2" to dummynet rules, if not you will have your bw controlled twice.

I've marked the dummynet rules with an asterisk. I'm using Patrick's ruleset - since I'm only allowing internet access for a single machine I've combined
his first two rules into one. My internal network is 192.168.1.0/24 and my
external iface is fxp0. What I'm experiencing right now as I'm using this
set is this - I have internet on this machine I desired /OK/ and on all
others with ip 192.168.1.X /not OK, obviously :)/ regardless of MAC. For me,
the rules that concern layer2 don't do what they're supposed to and thusly
the traffic reaches rule 1203 and 1205 and onward. Interestingly enough
traffic does hit the first and second rule. Here's my uname -

FreeBSD bogoqho.com 6.1-RELEASE FreeBSD 6.1-RELEASE #1: Sun Apr  8 10:54:10
EEST
2007     [EMAIL PROTECTED]:/usr/src/sys/i386/compile/bogoqho  i386

And my sysctl -

bogoqho# sysctl -a | egrep "one_pass\|ether"
If there's anything that would help you - just say the word... Let's
brainstorm :)


sysctl -a | egrep "one_pass|ether"; my fault, \| is only need for grep, not egrep.

Just to be sure net.link.ether.ipfw=1 and net.inet.ip.fw.one_pass=1.

--
Patrick Tracanelli

FreeBSD Brasil LTDA.
(31) 3281-9633 / 3281-3547
[EMAIL PROTECTED]
http://www.freebsdbrasil.com.br
"Long live Hanin Elias, Kim Deal!"

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

Reply via email to