From owner-freebsd-net@FreeBSD.ORG Tue Jan 25 16:25:19 2011 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 88F801065696 for ; Tue, 25 Jan 2011 16:25:19 +0000 (UTC) (envelope-from nvass@gmx.com) Received: from mailout-eu.gmx.com (mailout-eu.gmx.com [213.165.64.42]) by mx1.freebsd.org (Postfix) with SMTP id EAEFE8FC14 for ; Tue, 25 Jan 2011 16:25:18 +0000 (UTC) Received: (qmail invoked by alias); 25 Jan 2011 16:25:17 -0000 Received: from john73.static.otenet.gr (EHLO [195.10.10.45]) [85.72.35.251] by mail.gmx.com (mp-eu001) with SMTP; 25 Jan 2011 17:25:17 +0100 X-Authenticated: #46156728 X-Provags-ID: V01U2FsdGVkX1/v1dYx8I3vzZTHfOL6l22Fob3pG6oJEOnxJ77IIx +vs0X6ywGyuTdd Message-ID: <4D3EF966.7010209@gmx.com> Date: Tue, 25 Jan 2011 18:25:10 +0200 From: Nikos Vassiliadis User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101207 Thunderbird/3.1.7 MIME-Version: 1.0 To: Alexander Zagrebin References: <20110125133226.GD67220@gw.zagrebin.ru> In-Reply-To: <20110125133226.GD67220@gw.zagrebin.ru> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Y-GMX-Trusted: 0 Cc: freebsd-net@freebsd.org Subject: Re: 8.2-PRERELEASE: if_bridge ARP and broadcasts issues 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, 25 Jan 2011 16:25:19 -0000 On 1/25/2011 3:32 PM, Alexander Zagrebin wrote: > Hi! > > I've found some issues with the if_bridge on 8.2-PRERELEASE. > > 1. An ARP issue > > Suppose we have a box with the 4 interfaces: nic0, nic1, nic2, nic3. > The interfaces are linked pairwise using 2 bridge(4) interfaces: bridge0 > and bridge1. Only nic0 has an IP address assigned (for example, > 192.168.0.1/24). > So we have configuration like this: > > 192.168.0.1 > ---nic0---+ +---nic2--- > | | > bridge0 bridge1 > | | > ---nic1---+ +---nic3--- > > The problem: when ARP query about MAC address of 192.168.0.1 is received > on the nic2 or nic3, then system responds with the MAC address of the nic0, > though networks on the bridge0 and bridge1 are completely independent. > IMHO, it isn't correct. > Yes, I tried the setup and it behaves as you described. > The reason is in ARP handling code: it looks for an address of the interface > belonging to a bridge, but there is not check that a bridge is the same. > > Attached patch (patch-if_ether.c) fixes the issue. > I tried your patch and it works for me. > 2. Broadcasts issue > > I have a box with two NICs: re0 and wlan0. re0 and wlan0 are members of the > bridge0. re0 has IP address 192.168.1.1; wlan0 hasn't an address configured. > I have the samba installed. The smbd and nmbd listens on the 192.168.1.1. > There are no problems with the clients connected to the re0, but the samba > clients connected to the wlan0 has problems with the network browsing and > domain logons. > I've found that nmbd doesn't receive udp broadcasts received on the wlan0, > though bridge0 successfully retransmits this broadcast out of re0. > I've looked in the sources, and it seems that in this case subnet broadcasts > have to be handled in ether_output(), but this doesn't work anyway... > > Can anybody help to fix this issue? As far as I recall, the recommended setup is to assign IP addresses to the bridge interface, not the member interfaces. Could you try this? HTH, Nikos