vlans + bridging is "interesting"

From: John-Mark Gurney <jmg_at_funkthat.com>
Date: Fri, 24 Nov 2017 17:47:55 -0800
Hello,

I decided to try to run some bhyve VM's on my machine and bridge
them to a guest vlan on my main interface.  I also want to support
running bhyve VM's on the untagged part of the interface as well
(this is the key problem as I'll describe later).

I configure it as you'd expect.  Bridge the main interface em0, and
put the local IP's on the bridge0.  Then I added an interface em0.14
that untags packets from em0, and added it to bridge1 along w/ a tap0
for the VM.  This does not work.  Packet goes out and comes back and
is observed on em0, but never appears on either em0.14 or bridge1.

After seeing: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=139268

I decide to look on bridge0, and see the tagged vlan packet on that
interface.  I attempted to add bridge0 as the vlandev for em0.14, but
that doesn't work:
#ifconfig em0.14 vlan 14 vlandev bridge0
ifconfig: SIOCSETVLAN: Protocol not supported

So, I did finally get things working by using epair.  I added an epair
to the bridge, and that allows me to untag the packet, and pass on to
bridge1.

I have not attempted to use the patch in 139268, but if people think
it is an acceptable solution (with patch, if I set LINK0, it should work
w/ original configuration), I'll test and commit the patch.

Otherwise, please submit another fix.

Thanks.

-- 
  John-Mark Gurney				Voice: +1 415 225 5579

     "All that I will do, has been done, All that I have, has not."
Received on Sat Nov 25 2017 - 00:48:41 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:13 UTC