Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 09 Apr 2013 12:43:29 +0200
From:      Pablo Ribalta Lorenzo <rlp@semihalf.com>
To:        freebsd-net@freebsd.org
Subject:   Bridge of vlan with a bridge
Message-ID:  <5163F0D1.1060206@semihalf.com>

next in thread | raw e-mail | index | archive | help
Hi there,

Lately I was experiencing an issue while trying to recreate a particular setup for my networking interfaces that I
would like to share.

I'm running FreeBSD 8.3, but I also see the same issue in FreeBSD 10.0 (CURRENT).

My setup looks like this:

                     em0 --- vlan0
                     / \           \
                    /   \           \
eth0 --- eth0.100        bridge0     bridge1
                    \   /           /
                     \ /           /
                     em1 --- vlan1

|----------------| |------------------------|
       Linux                  FreeBSD


Where eth0 and eth0.100 are interfaces in a Linux PC. The rest of the interfaces belong to the FreeBSD setup and you
can see their topology. em1 and vlan1 interfaces are not active.

The issue goes as it follows:

I'm trying to establish communication between eth0 and bridge1 trying to ping from both sides, with unsuccessful
results. From bridge1 towards eth0 the traffic looks fine through tcpdump, being the route:

bridge1 -> vlan0 -> em0 -> eth0.100 -> eth0

However, once the packets attempt to do the route in different direction, they get stuck in bridge0, being the route:

eth0 -> eth0.100 -> em0 -> bridge0

 From my investigations seems that this setup is not supported by both FreeBSD implementations (8.3 and CURRENT), but
I'd like to know if you can provide some insight about:

- Why packets are forwarded from 'em0' to 'bridge0', and 'vlan0' is ignored. I'm aware that bridges introduce some changes
in the packet routing, but it seems weird that being in promisc mode, 'em0' is not forwarding any package to 'vlan0'.

- Why the packets are stuck in bridge0. I guess that because of the mechanism of the bridge, packets cannot be pushed
back to the same channel they were received... and being 'em1' not active, 'bridge0' is sort of a dead end for the packets.

I have some explanations for the second point, but the first one is puzzling me. I'd appreciate some comments about
this issue.

Thank you.

-- 
Pozdrawiam,
Pablo Ribalta Lorenzo




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