Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 17 Nov 1995 09:20:06 +0100 (MET)
From:      Luigi Rizzo <luigi@labinfo.iet.unipi.it>
To:        gpalmer@westhill.cdrom.com (Gary Palmer)
Cc:        chuckr@glue.umd.edu, PLAZAS_CHRISTIAN@mercury.csg.peachnet.edu, questions@freebsd.org
Subject:   Re: Unix program to make a pc into an ethernet bridge
Message-ID:  <199511170820.JAA06726@labinfo.iet.unipi.it>
In-Reply-To: <555.816585499@westhill.cdrom.com> from "Gary Palmer" at Nov 16, 95 09:18:00 pm

next in thread | previous in thread | raw e-mail | index | archive | help
> > >     I am wondering if there was a program (daemon) that runs under 
> > > FreeBSD or Unix in general that will do ethernet to ethernet 
> > > bridging...I found one such program, its called PCBridge, but its for 
> > > dos and its written in assembler.  Thanks
> 
> > No special program needed.  FreeBSD does this, when the GATEWAY ip option 
> > is enabled.  This isn't a simple thing, you know, setting up a node, you 
> > have to know a bit about tcpip routing, things like how to set up named.  
> > If you don't know how to do this, write again asking for a reference or 
> > two, you are in for some study time.
> 
> Umm. I'm not sure that's what Christian was looking for. I believe
> he's looking for a system with does ethernet packet forwarding, not IP
> packet forwarding. i.e. a full ethernet bridge.
> 
> This possibly won't be TOO difficult to do using the bpf i/f's, it's
> just a question of writing the software to do it. I haven't heard of
> any for FreeBSD.

It's not too difficult, but performance is going to be *very* bad
if you have to copy every single packet into memory, just to discover
that it must be thrown away. Especially if you have ISA ethernet
cards.

Better performance can be achieved if you copy just the ethernet
header (DST+SRC+IP TYPE), check it, and then decide whether to
throw it away, or copy the rest of the packet.

There are several DOS-based bridges. The one I made (pcbridge
2.77, available from ftp://ftp.iet.unipi.it/pub/bridge/bdg277.tar.Z)
has the advantage of being ROMable, supports up to 5 cards on
a single PC, accumulates statistics on the network, runs on 286+
with as low as 128K RAM, and can be remotely controlled. It uses
the technique described before to achieve good performance. We
have several of them here, they have been running for more than
two years without problems (ftp through 3 bridges in a row can run
at 500KB/s with no problem, if other traffic allows it).

The only limitation is that it requires WD80x3 cards (or clones).
At the time I wrote the code, they were among the best price/performance
choice. Now I have troubles finding WD clones, SMC has apparently
discontinued them and the ones I can find cost more than a PCI
Ethernet card.

This summer I started a rewrite of the bridge code using the FreeBSD
bootrom code, in order to support other cards (NE2000 etc.),
unfortunately I did not have time to complete the port.

	Luigi
====================================================================
Luigi Rizzo                     Dip. di Ingegneria dell'Informazione
email: luigi@iet.unipi.it       Universita' di Pisa
tel: +39-50-568533              via Diotisalvi 2, 56126 PISA (Italy)
fax: +39-50-568522              http://www.iet.unipi.it/~luigi/
====================================================================



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