Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 25 Jan 2011 18:25:10 +0200
From:      Nikos Vassiliadis <nvass@gmx.com>
To:        Alexander Zagrebin <alex@zagrebin.ru>
Cc:        freebsd-net@freebsd.org
Subject:   Re: 8.2-PRERELEASE: if_bridge ARP and broadcasts issues
Message-ID:  <4D3EF966.7010209@gmx.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 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



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