Date: Wed, 26 Jan 2011 06:15:55 +1300 From: Andrew Thompson <thompsa@FreeBSD.org> To: Alexander Zagrebin <alex@zagrebin.ru> Cc: freebsd-net@freebsd.org Subject: Re: 8.2-PRERELEASE: if_bridge ARP and broadcasts issues Message-ID: <AANLkTimB%2BmvukHHipTCnRbB=sX4SfrF0x4H-6nhKwS6y@mail.gmail.com> In-Reply-To: <20110125133226.GD67220@gw.zagrebin.ru> References: <20110125133226.GD67220@gw.zagrebin.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
On 26 January 2011 02:32, Alexander Zagrebin <alex@zagrebin.ru> 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: > > =A0192.168.0.1 > ---nic0---+ =A0 =A0 =A0 +---nic2--- > =A0 =A0 =A0 =A0 =A0| =A0 =A0 =A0 | > =A0 =A0 =A0 bridge0 bridge1 > =A0 =A0 =A0 =A0 =A0| =A0 =A0 =A0 | > ---nic1---+ =A0 =A0 =A0 +---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 nic= 0, > though networks on the bridge0 and bridge1 are completely independent. > IMHO, it isn't correct. > > The reason is in ARP handling code: it looks for an address of the interf= ace > 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 have committed this, thanks.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTimB%2BmvukHHipTCnRbB=sX4SfrF0x4H-6nhKwS6y>