per-interface packet filters
Andre Oppermann
andre at freebsd.org
Mon Dec 13 06:49:33 PST 2004
Gleb Smirnoff wrote:
>
> Dear networkers,
>
> I finally managed to pronounce my idea, although I'm afraid
> of a bikeshed it is going to be burried under.
>
> When managing a complex router with many interfaces the output
> of `ipfw show` (or ipf/pf analog) is getting long and difficult to
> understand. It is also important that many packets are checked
> against the rules that can never be applied to them, wasting CPU
> cycles.
>
> A simple example can be local network router with many inner interfaces
> and with one interface to internet. Actually filtering is desired
> only in external interface, and there is no need for local traffic
> to enter packet fitlering routines, e.g. ipfw_chk().
Then you argument about long ipfw show doesn't hold... ;)
> I'd like to implement per-interface pfil hooks, like in Cisco
> world. Each interface may have 'in' list of rules, 'out' list
> of rules. Current global ip_{input,output}, filters may coexist
> with per-interface ones, but can be turned off.
Different worlds. I wonder why everything has to "like Cisco". It's
not always the most clever way they solve a given problem.
> Our PFIL interface is quite ready for this, and this is very nice.
I don't see any changes to pfil for this. Pfil already passes the
interface in the argument call. This is something for the packet
filters (ipfw/pf/ipf) than the pfil API?
> I'll start with creating/editing alternative chains in ipfw. Then
> we will need to add possibility to register per-interface hooks
> in pfil, and add possibility to pass one more optional argument
> from pfil to the filter itself.
Can you provide example how you think the syntax should be?
> I'm glad to see any constructive comments on plan.
You have to be careful not to collide with the "in|out|via" inside
the rules.
--
Andre
More information about the freebsd-net
mailing list