Linux Bridges – Tags on interface vs. on bridge

bridgelinuxvlan

What is the difference between tagging on the bridge vs a physical interface then adding that tagged interface onto the bridge?

I'm assuming if I want two total VLANs segmenting network traffic to guests on KVM. I don't want the guests seeing the tag, I just want the VLANs to segregate traffic through the interfaces. Meaning the guests should not see the tags (unless packets are double-tagged).

Each scenario would look as follows:

Tagging on interface:
em1 -> em1.3 -> br0 -> vnet0 -> em1
em1 -> em1.4 -> br1 -> vnet1 -> em2

Tagging on bridge:
em1 -> br0 -> br0.3 -> vnet0 -> em1
em1 -> br0 -> br0.4 -> vnet1 -> em2

Is net effect the same?
Or is there some functional difference I'm missing here?

EDIT: I've been reading (http://blog.davidvassallo.me/2012/05/05/kvm-brctl-in-linux-bringing-vlans-to-the-guests/), and it seems like tagging on physical interfaces (em1.3) causes linux to strip the tag prior to it sending it off to the bridge. Whereas tagging on the bridge just passes the tagged traffic through. True? If not, where is the tagged stripped/added?

Best Answer

What is the difference between tagging on the bridge vs a physical interface then adding that tagged interface onto the bridge?

The difference is that you may not want all the interfaces in the bridge to be tagged.

Is net effect the same? Or is there some functional difference I'm missing here?

If you want all traffic traversing the bridge to be tagged, then there is no difference.

Convention, though, is to tag interfaces.