Bridging in FreeBSD without one side being blocked?

Maxim Konovalov maxim at FreeBSD.org
Mon Aug 11 01:55:15 PDT 2003


Hello Will,

On Sun, 10 Aug 2003, 23:52-0700, Will Andrews wrote:

> Hello (please cc: me as I am not subscribed, thanks),
>
> I was wondering if anyone has managed to set up bridge in such a
> way that hosts on both sides will be able to access the machine
> doing the bridging.  The reason I need this is because I need to
> join two media types (10baseT/100baseTX and 1000baseSX), and both
> sides of the bridge need access to the machine in question.  I'd
> prefer to do it like this instead of buying another switch with
> the necessary media ports or a media converter just for this.
>
> As far as I can tell, it does not seem like FreeBSD's BRIDGE is
> capable of doing this sort of thing.  Does someone know if
>
> ng_bridge can do it, or if it could be made to with some slight
> modifications?  I could not find any documentation about someone
> that has done something like this.
>
> I should note.. later I may add an Atheros card to the bridge,
> configured in 802.11a host AP mode.  Same conditions apply.  :)
>
> Seems to me that if a packet is destined for an IP associated
> with any of the bridge's child interfaces, the code should
> recognize that the packet can be delivered directly to it, as
> opposed to simply dropping it.

First, there is a bug in bridge code when it is loaded as module.
Use static compiled bridge instead.

Second, if your NICs in a bridge cluster have different if_hwassist
checksum capabilities, you hit another bug.

Third, if you use vlan(4) there is a bug with bridging them too.

Forth, you have to turn net.inet.ip.check_interface off (sysctl
net.inet.ip.check_interface=0).

I have a gross hack

http://people.freebsd.org/~maxim/diff/bridge.diff

to work around all these bugs but I still can't figure how to fix them
properly.

--
Maxim Konovalov, maxim at macomnet.ru, maxim at FreeBSD.org


More information about the freebsd-net mailing list