I'm running two identical FreeBSD 12.1-RELEASE VMs on VirtualBox. Each VM has 2 network interfaces, em0 and em1, set to Internal network mode. em0 interfaces are set to intnet0 network and em1 are to intnet1.

I have configured LAGG on both machines in the following way:

ifconfig_lagg0="laggproto lacp laggport em0 laggport em1 192.168.33.x/24"

x equals 1 for the first VM and 2 for the second one.

After booting, I get nice ifconfig output on both machines:

lagg0: flags=8843<UP,BROADCAST,RUNNING...
    inet ...
    laggproto lacp lagghash l2,l3,l4
    laggport: em0 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
    laggport: em1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
    status: active

However, pings simply do not pass.

Now if I go into VM's settings and enable promiscuous mode for both adapters and both machines, it starts to work.

Does LACP require setting adapters into promiscuous mode? Or maybe I'm facing a bug in VirtualBox/FreeBSD?


This is more of a question of the hypervisor. The VM is only passing packets into the VM if they have the VM's MAC address on it, so you will need to enable promiscuous mode in order to use LACP in ANY operating system.

  • I still don't quite get it. Can you elaborate, please? You mean, that even on real hardware I'd need to put adapters into promiscuous mode? Handbook doesn't mention that. – arrowd Apr 26 '20 at 8:00
  • No. In this case, it is basically a 'virtual switch' that is part of the hypervisor. By default it is filtering packets that go into the VM. If you don't enable this mis-named feature in the hypervisor, then the LACP packets never make it into the VM. – Allan Jude Apr 27 '20 at 14:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.