Updated: May 5, 2019
This post is going to introduce you to basic Layer2 functionality on the Cumulus platform. Like before, we are going to be working with Cumulus VX.
We will be using the following network topology for this post:
PC1 and PC2 are two end clients in the same Layer2 domain (VLAN 10) that want to communicate with each other.
Cumulus uses the traditional concept of a Linux bridge for bridging. It also allows you to configure a VLAN-aware bridge which is what we will be using today (more documentation about this can be found here - https://docs.cumulusnetworks.com/display/DOCS/VLAN-aware+Bridge+Mode).
A 'bridge' interface will be created when the first VLAN is created on the system. So, let's start by creating a VLAN using Cumulus' NCLU and looking at the relevant changes that will be made to the /etc/network/interfaces file:
From the above, you can see that a 'bridge' interface is created by adding 'iface bridge' and under this, you specify what VLANs are part of this bridge using 'bridge-vids <>'. The 'bridge-vlan-aware yes' option under the bridge makes this a VLAN-aware bridge as opposed to a traditional Linux bridge.
Do the same thing on SPINE2 as well.
Now, let's start mapping these VLANs to our interfaces. We want swp3 on SPINE1 and swp4 on SPINE2 to be untagged, host facing interfaces in VLAN 10 while the interconnection between SPINE1 and SPINE2 (via swp1) needs to allow multiple VLANs, making it a trunk.
Notice how under the bridge interface, there is an interface mapping that is created using 'bridge-ports'. This tells the bridge what interfaces are part of it.
Similar configuration needs to be done on SPINE2. Finally, we need to do a 'net commit' to commit these changes.
At this point, PC1 can successfully ping PC2:
Let's take a final look at the configuration of both SPINE1 and SPINE2 that was needed to make this work:
Finally, a quick configuration comparison between a Cisco box and a Cumulus box to achieve the same thing we did earlier:
I hope this was informative. See y'all in the next post!