bhyve bridge not passing traffic between bhyve vm and external hosts

I'm using vm-bhyve to manage. I created a switch as:

vm switch create -n 2000 -i bge0 b2k

then assigned an ip to the interface created:

ifconfig bge0.2000 10.1.1.1

then assigned this bridge to my vm. the vm has no vlan configured.
  • from Inside the VM: I can ping 10.1.1.1 (the hypervisor host), but not another host in the network
  • from another host in the network: I can ping 10.1.1.1, but not the VM behind it

I'm not sure what I'm missing
 
OK after hours of testing and googling it seems this configuration is not supported.

I failed to mention that I have two bridges

(names changed for simplicity)

bridge0 is bridging bge0 and tap0
bridge2000 is bridging vlan2000 and tap1

vlan2000 is vlan 2000 vlandev bge0

there seems to be a bug: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=240106 , when the parent interface is member of a bridge, the vlan interfaces won't get traffic.

So i removed bge0 from bridge0 and things started working as expected.

(tap0 and tap1 to a VM, with tap0 connected to the interface without VLAN and tap1 to an interface with tagged VLAN)

I think a solution would be to simply VLAN all traffic, like so:
bridge0 members bge0.1 tap0
bridge1 members bge0.2000 tap1

move all in my rc.conf from bge0 to bridge0 and treat it as my "main interface" now

This would rely on the switch supporting this behavior, but I think it can be done.
 
Back
Top