From owner-freebsd-net@FreeBSD.ORG Tue Feb 26 16:33:49 2008 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1F71810656D6 for ; Tue, 26 Feb 2008 16:33:49 +0000 (UTC) (envelope-from eugen@www.svzserv.kemerovo.su) Received: from www.svzserv.kemerovo.su (www.svzserv.kemerovo.su [213.184.65.80]) by mx1.freebsd.org (Postfix) with ESMTP id B3D0A13C45B for ; Tue, 26 Feb 2008 16:33:44 +0000 (UTC) (envelope-from eugen@www.svzserv.kemerovo.su) Received: from www.svzserv.kemerovo.su (eugen@localhost [127.0.0.1]) by www.svzserv.kemerovo.su (8.13.8/8.13.8) with ESMTP id m1QGNBAe083421; Tue, 26 Feb 2008 23:23:11 +0700 (KRAT) (envelope-from eugen@www.svzserv.kemerovo.su) Received: (from eugen@localhost) by www.svzserv.kemerovo.su (8.13.8/8.13.8/Submit) id m1QGN7K0083416; Tue, 26 Feb 2008 23:23:07 +0700 (KRAT) (envelope-from eugen) Date: Tue, 26 Feb 2008 23:23:07 +0700 From: Eugene Grosbein To: Boris Kochergin Message-ID: <20080226162307.GA80931@svzserv.kemerovo.su> References: <47C428EC.3090909@acm.poly.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <47C428EC.3090909@acm.poly.edu> User-Agent: Mutt/1.4.2.3i Cc: freebsd-net@freebsd.org Subject: Re: if_gif/if_bridge problem X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Feb 2008 16:33:49 -0000 On Tue, Feb 26, 2008 at 09:57:48AM -0500, Boris Kochergin wrote: > bridge0: flags=8843 metric 0 mtu > 1500 > ether 3e:7f:e8:ef:f6:a4 > inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255 > id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15 > maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200 > root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0 > member: gif6 flags=143 [skip] > So, the tunnels and bridges appear to be sending the traffic around > properly, but the concentrator machine isn't replying to ARP requests > for its bridge0 interface's IP. This is where I'm stuck. Any help is > appreciated. The problem is that if_bridge(4) won't work this way - with only one gif-member without patching. I've faced this recently and debugged it in detail. Then I've produced a patch and now I run it over a month in production without a problem: ftp://www.kuzbass.ru/pub/freebsd/lagg-0.1.tgz Description inside, in Russian. In short: if_gif(4) no more kills ethernet frames returned by if_bridge(4) as designated for upper levels of TCP/IP stack but really passes them there. If the patched system does not have EtherIP-tunnels then the patch affects nothing, so it's safe to apply it. Also, you need not to reboot the system if you load if_gif/if_bridge as modules, just rebuld and reload these. The patch applies to all of 6.2, 6.3-PRERELEASE and 7.0-PRERELEASE, and works (tested). My task was a bit more complex so the patch touches if_lagg(4) too but you need not use lagg(4) if you do not need it. The patch just contains the solution for your problem too. You can read detailed discussion in Russian there: http://groups.google.com/group/fido7.ru.unix.bsd/browse_thread/thread/d6787b865515a66a/488d738afc265b19 Eugene Grosbein