From owner-freebsd-current Fri Apr 24 09:51:36 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id JAA01860 for freebsd-current-outgoing; Fri, 24 Apr 1998 09:51:36 -0700 (PDT) (envelope-from owner-freebsd-current@FreeBSD.ORG) Received: from orion.tamu.edu (orion.tamu.edu [128.194.177.3]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id JAA01854 for ; Fri, 24 Apr 1998 09:51:33 -0700 (PDT) (envelope-from daved@orion.tamu.edu) Received: from orion (localhost [127.0.0.1]) by orion.tamu.edu (8.8.7/8.8.8) with ESMTP id LAA09933; Fri, 24 Apr 1998 11:53:24 -0500 (CDT) (envelope-from daved@orion.tamu.edu) Message-Id: <199804241653.LAA09933@orion.tamu.edu> From: Dave Duchscher To: Luigi Rizzo cc: current@FreeBSD.ORG Subject: Re: Bridging... In-reply-to: Your message of "Fri, 24 Apr 1998 08:07:24 +0200." <199804240607.IAA20557@labinfo.iet.unipi.it> Date: Fri, 24 Apr 1998 11:53:23 -0500 Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG > I am trying to see what could be the best way to implement bridging > within FreeBSD. The main app would be to connect 10/100 Mbit > interfaces in the most transparent way (I know doing packet filtering > on a 100 Mbit segment places a bit of load on the host and a > dedicated solution could be cheaper/more efficient). > > After thinking a bit, how about the following: > > + add a "linked" (or whatever name you like) command to "ifconfig" > so that you can say > > ifconfig de1 linked ed0 > > and then de1 inherits all features (ethernet and ip addresses, > aliases, netmasks...) of ed0. (Using the same ethernet addr makes > life easier when responding to ARP requests...) > > Implementing this probably requires adding a list of pointers > to the clustered interfaces in the descriptor of the parent > interface. > > + add a small table (perhaps this info is already in the arp table) > to determine on what interface is each destination. This is > used on output as follows: if the interface to use is known, > then use it, otherwise send to all interfaces which are part > of the same cluster. > > + when not configured as a bridge, interfaces are configured the > usual way (non promiscuous). Input is straightforward, output is > managed as above. > > + when configured as a bridge, just set the interfaces in promiscuous > mode, and pass incoming packets to the other interfaces in the > cluster using the usual bridging algorithms (see my bridge code on > my web page). > > Comments/opinions ? You might want to look at Drawbrdige beta. It may do most of what you want already. DaveD To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message