18. KVM and promiscuous Mode for the Guest Operating Systems

When BalanceNG is run on a KVM guest operating system, the guests are commonly connected through a Linux kernel bridge.

An ethernet bridge is a device commonly used to connect different networks of ethernets together, so that these ethernets will appear as one ethernet to the participants.

Each of the ethernets being connected corresponds to one physical interface in the bridge. These individual ethernets are bundled into one bigger (‘logical’) ethernet, this bigger ethernet corresponds to the bridge network interface.

Requesting promiscuous mode from a KVM guest VM is successfully propagated to the KVM host with no further actions required, however the MAC address ageing of the kernel bridge needs to be set to 0 like this (on the KVM hosts assuming your bridge is called br0):

# brctl setageing br0 0
#

With that applied, the bridge “acts as a hub” and will not forget any MAC addresses. The effect can be proved by executing brctl showmacs like this - on the KVM host (again, br0 assumed as the name of the bridge):

# brctl showmacs br0
...
#

With ip -d link you are able to identify the promiscuity status per interface (when promiscuity 1 shows up, this is active for the particular interface):

# ip -d link
...
#