Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 Dec 2004 15:49:31 +0100
From:      Andre Oppermann <andre@freebsd.org>
To:        Gleb Smirnoff <glebius@freebsd.org>
Cc:        net@freebsd.org
Subject:   Re: per-interface packet filters
Message-ID:  <41BDABFB.E64C0A31@freebsd.org>
References:  <20041213124051.GB32719@cell.sick.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?41BDABFB.E64C0A31>