Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 20 Jun 2003 23:41:10 +0400 (MSD)
From:      Maxim Konovalov <maxim@macomnet.ru>
To:        Han Hwei Woo <hhwoo@nb.sympatico.ca>
Cc:        freebsd-net@freebsd.org
Subject:   Re: VLAN/Bridge No response from trunk Interface
Message-ID:  <20030620233323.W47630@news1.macomnet.ru>
In-Reply-To: <000c01c33739$cf3d9910$0200a8c0@a7n8x>
References:  <000c01c33739$cf3d9910$0200a8c0@a7n8x>

next in thread | previous in thread | raw e-mail | index | archive | help

Hello,

On Fri, 20 Jun 2003, 11:39-0300, Han Hwei Woo wrote:

> Here's the network I'm trying to setup
>
>             192.168.0.3                            192.168.0.1    192.168.0.2
> OpenBSD | vlan0----><--- vlan0 | FreeBSD | em0 ---><--- em0 | Windows 2000
>
> with net.link.ether.bridge_cfg: vlan0,em0
>
> If I try to ping the FreeBSD machine from OpenBSD, arp requests are
> sent out, and they are seen on both of the FreeBSD machine's
> interfaces. However, no arp response is generated.
>
> So, I enter in the arp entries myself.
>
> Once I do that, when I again try to ping the FreeBSD host from
> OpenBSD, the ping requests are seen on both the FreeBSD interfaces.
> However, no response is generated.
>
> If I instead try to ping the OpenBSD machine from FreeBSD, the ping
> requests get to the OpenBSD machine, and the OpenBSD replies, and
> both the FreeBSD interfaces receive the reply, according to tcpdump.
> However, the ping program does not receive them.
>
>
> I also tried this setup:
>
>             192.168.0.3                            192.168.0.1    192.168.0.2
> OpenBSD | vlan0----><--- vlan0 | FreeBSD | vlan1 ---><--- vlan0 | Windows 2000
>
> with net.link.ether.bridge_cfg: vlan0,vlan1
>
> And the same problem occurs. I have also tried with different
> network cards as the parent interface of vlan0 on FreeBSD
> (fxp0,dc0).

1) Please try a hack below;
2) Don't use bridge.ko, it is semi-broken, compile the bridging code
in kernel instead (options BRIDGE);
3) sysctl net.inet.ip.check_interface=0 is mandatory in some
topologies.

Index: if_ethersubr.c
===================================================================
RCS file: /home/ncvs/src/sys/net/if_ethersubr.c,v
retrieving revision 1.147
diff -u -r1.147 if_ethersubr.c
--- if_ethersubr.c	5 May 2003 09:15:50 -0000	1.147
+++ if_ethersubr.c	20 May 2003 15:06:50 -0000
@@ -625,6 +625,7 @@
 	if (rule)	/* packet was already bridged */
 		goto post_stats;

+#if 0
 	if (!(BDG_ACTIVE(ifp))) {
 		/*
 		 * Discard packet if upper layers shouldn't see it because it
@@ -641,6 +642,7 @@
 			    return;
 		}
 	}
+#endif

 	/* Discard packet if interface is not up */
 	if ((ifp->if_flags & IFF_UP) == 0) {
%%%

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



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