Re: Bug in IPFW+Bridge?

From: Bernd Walter <ticso(at)cicely9.cicely.de>
Date: Sat, 3 May 2003 16:36:08 +0200

On Sat, May 03, 2003 at 02:23:18PM +0200, Ulrich Spoerlein wrote:
> On Sat, 03.05.2003 at 12:51:13 +0200, Bernd Walter wrote:
> > Natürlich geht das mit ipfw - und auch einfach.
> > Das Problem mit dem Bridging ist nur, das Filtern mit IPFW erst dann
> > verständlich wird, wenn man sich bewußt macht wie die Interaktion
> > abläuft.
>
> Die ist mir inzwischen klar (denke ich mal), aber es ist mir nicht klar,
> warum das gerade _so_ geloest wurde.

Weils performanter ist.
ipfw ist weniger auf leichte Verständlichkeit, als auf Performance
designed.
Letzlich ist es aber gut verständlich, wenn man weiß wie es
funktioniert.

> Ohne den Code anzuschauen, sollte das m.M.n. so ablaufen:
> xl? -> incoming -> bridge -> net.link.ether.bridge_ipfw: 1 -> ipfw (als
> incoming Paket). Wird durchgereicht -> bridge (macht ein outgoing Frame
> draus) -> outgoing -> xl?

Warum fängst du an zu spekulieren?
Es steht doch in der ipfw Manpage im Abschnitt »PACKET FLOW« genau drin.

> Normalerweise hat man fuer IP Pakete ja zwei durchgaenge in der
> Firewall. Die Firewall umschliesst die Schicht 4 einer Verbindung:
> IN -> IPFW -> ftp/http/ssh -> IPFW -> OUT

Das ist der Sonderfall, daß nicht geroutet oder gebridged wird.

> Es waere natuerlich ungeschickt, jetzt bridge(4) da bei ftp/http/ssh mit
> rein zutun. Die wenigstens wollen wahrscheinlich gebridgte Frames
> filtern. Aber man koennte das ja mit zwei Zweigen doch noch effektiv
> loesen:
> > IPFW > bridge* > IPFW > bridge > OUT
> /
> IN > bridge /(net.link.ether.bridge_ipfw?)
> \
> \ bridge* > OUT
>
> Wobei bridge* das Frame/Paket fuer IPFW als outgoing markiert und das
> Interface aendert, etc.
> Das Schema ist natuerlich nur sehr simpel gehalten und es gibt
> wahrscheinlich auch Anwendungsfaelle bei denen es versagt (oder?)

Auszug aus der bridge(4):
     Also remember that bridged packets are accepted after the first pass
     through the firewall irrespective of the setting of the sysctl variable
     net.inet.ip.fw.one_pass, and that some ipfw(8) actions such as divert do
     not apply to bridged packets.
[...]

Nach einem Eingangs Match gibt es kein Ausgangs Match mehr.
Bridging ist eh eine Notlösung wenn man nicht routen kann.

-- 
B.Walter                   BWCT                http://www.bwct.de
ticso(at)bwct.de                                  info(at)bwct.de
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Sat 03 May 2003 - 16:37:01 CEST

search this site