[ovs-discuss] OVS learned duplicated FDB entries on two different Virtual Machine interfaces

Ben Pfaff blp at ovn.org
Wed Jul 13 22:31:42 UTC 2016


Before, you said "I thought VM interface should be access port."  If
they are actually trunk ports, then I do not understand your
environment.

OVS only learns MACs that it actually receives from a port, within the
VLANs associated with the packets.  If you see the same MAC learned on
multiple VLANs, then it is because that MAC was observed within multiple
VLANs.

On Wed, Jul 13, 2016 at 09:47:29PM +0000, Chen, Weiwen wrote:
> Hi Ben,
> 
> Unfortunately I need to configure the port as trunk mode as I need to bring up VLAN subinterfaces inside the VM. However, I do not expect OVS will learn the MAC of VM2 on port of VM1, right?
> 
> In addition, I double checked there is no real duplicated MAC existing in my env.
> 
> Thanks & Regards
> -weiwen
> 
> -----Original Message-----
> From: Ben Pfaff [mailto:blp at ovn.org] 
> Sent: Wednesday, July 13, 2016 3:21 PM
> To: Chen, Weiwen <wei-wen.chen at hpe.com>
> Cc: discuss at openvswitch.org
> Subject: Re: [ovs-discuss] OVS learned duplicated FDB entries on two different Virtual Machine interfaces
> 
> On Tue, Jul 12, 2016 at 04:03:33AM +0000, Chen, Weiwen wrote:
> > I have RHEL KVM host with both OVS 2.50/2.31 (on different systems) 
> > but experienced the VM interface has a large forward entries. I 
> > thought VM interface should be access port and with single VM MAC in 
> > FDB. Is this a bug in OVS? If not, please let me what is configured 
> > wrong.
> > 
> > Thanks a lot!
> > 
> > Here are my configuration:
> > 
> > # ovs-vsctl show
> >     Bridge "cs-eno1"
> >         Port "vnet5"
> >             Interface "vnet5"
> >         Port "cs-eno1"
> >             Interface "cs-eno1"
> >                 type: internal
> >         Port "vnet3"
> >             Interface "vnet3"
> >         Port "vnet8"
> >             Interface "vnet8"
> >         Port "vnet4"
> >             Interface "vnet4"
> >         Port conf
> >             Interface conf
> >                 type: internal
> >         Port "eno1"
> >             Interface "eno1"
> >         Port "vnet1"
> >             Interface "vnet1"
> >         Port "vnet2"
> >             Interface "vnet2"
> >         Port "vnet0"
> >             Interface "vnet0"
> > ovs_version: "2.5.0"
> 
> OVS certainly supports access ports, but all of the above are configured as trunks.  To configure an OVS port as an access port, one must set the "tag" column to a VLAN ID (and this would show up in "ovs-vsctl show"
> output), either at the time of adding the port or later.
> 
> The ovs-vsctl manpage explains how to set an access VLAN at the time of adding a port:
> 
>        [--may-exist] add-port bridge port [column[:key]=value]...
>               Creates on bridge a new port named port from the network  device
>               of the same name.
> 
>               Optional  arguments set values of column in the Port record cre‐
>               ated by the command.  For example, tag=9 would make the port  an
>               access  port for VLAN 9.  The syntax is the same as that for the
>               set command (see Database Commands below).
> 
>               Without --may-exist, attempting to create a port that exists  is
>               an  error.   With --may-exist, this command does nothing if port
>               already exists on bridge and is not a bonded port.
> 



More information about the discuss mailing list