Linux Bridge – multiple VLANs into default vlan

bridgekvm-virtualizationvlan

I have a CentOS 6 Box (Kernel 2.6.32-642.6.1.el6.x86_64) where 2 KVM instances are running.

I am getting two VLANs from the datacenter. Unfortunately, they wont combine both VLANs to one VLAN. I need to use both VLANs at the same time on the same KVM guests.

The default VLAN is untagged and the second vlan is tagged on id 471.

Currently, i make it this way:

bridge name     bridge id               STP enabled     interfaces
br0             8000.0cc47a7fed0a       no              eth1
                                                        kvm1100.0
br1             8000.0cc47a7fed0a       no              eth1.471
                                                        kvm1101.0

That is working as expected. I can use the untagged VLAN on KVM instance 1100 and VLAN 471 on KVM instance 1101.

Now i want that KVM 1101 can use IP addresses from the untagged VLAN and from VLAN 471.

So I have added eth1.471 to br0 and then added kvm1101.0 to br0 too.

bridge name     bridge id               STP enabled     interfaces
br0             8000.0cc47a7fed0a       no              eth1
                                                        eth1.471
                                                        kvm1100.0
                                                        kvm1101.0

That is working and I can access both VLANs on both instances. It works as I would like it.

But when eth1.471 gets added to br0 I see packet loss on the whole network. Not only on this server, it affects everything. When I remove eth.471 from br0 the packet loss stops.

It seems that this is not the correct way. I have tried various things but I always end up with the same result.

What am I missing? As mentioned, the datacenter is not willing to combine both VLANs to one.

It is not an option to pass the VLANs to the KVM instance and configure the VLAN + IP addresses there. The KVM instance should be able to use both vlans without additional configuration.

Best Answer

When you bridge eth1 with eth1.174 you actually create a topology loop in the datacenter network on your interface, hence the packet loss and other woes.

The possible solution to your problem is introduction of a second interface to kvm1101 and add that KVM interface to br0, keeping br0 and br1 as separate bridges bound to their respective VLANs on the physical adapter.