Today finally I have managed to get a very basic cumulus setup. It is annoying because I tried several months ago and found some issues with libvirt (and I opened a ticket but didnt follow up) and gave up.
Now it works. I just want to use KVM-QEMU and Vagrant, that I have already installed in my system. So based on the link, I just created a folder and copied the vagrant file. Then “vagrant up” and wait.
/cumulus/1s2l$ vagrant up Bringing machine 'spine01' up with 'libvirt' provider… Bringing machine 'leaf01' up with 'libvirt' provider… Bringing machine 'leaf02' up with 'libvirt' provider… ==> leaf01: Box 'CumulusCommunity/cumulus-vx' could not be found. Attempting to find and install… leaf01: Box Provider: libvirt leaf01: Box Version: 4.2.0 ==> leaf01: Loading metadata for box 'CumulusCommunity/cumulus-vx' leaf01: URL: https://vagrantcloud.com/CumulusCommunity/cumulus-vx ==> leaf01: Adding box 'CumulusCommunity/cumulus-vx' (v4.2.0) for provider: libvirt leaf01: Downloading: https://vagrantcloud.com/CumulusCommunity/boxes/cumulus-vx/versions/4.2.0/providers/libvirt.box Download redirected to host: d2cd9e7ca6hntp.cloudfront.net ==> leaf01: Successfully added box 'CumulusCommunity/cumulus-vx' (v4.2.0) for 'libvirt'! ==> spine01: Box 'CumulusCommunity/cumulus-vx' could not be found. Attempting to find and install… spine01: Box Provider: libvirt spine01: Box Version: 4.2.0 ==> leaf01: Uploading base box image as volume into Libvirt storage… ==> spine01: Loading metadata for box 'CumulusCommunity/cumulus-vx' spine01: URL: https://vagrantcloud.com/CumulusCommunity/cumulus-vx Progress: 0%==> spine01: Adding box 'CumulusCommunity/cumulus-vx' (v4.2.0) for provider: libvirt Progress: 0%==> leaf02: Box 'CumulusCommunity/cumulus-vx' could not be found. Attempting to find and install… leaf02: Box Provider: libvirt leaf02: Box Version: 4.2.0 Progress: 1%==> leaf02: Loading metadata for box 'CumulusCommunity/cumulus-vx' leaf02: URL: https://vagrantcloud.com/CumulusCommunity/cumulus-vx ==> leaf02: Adding box 'CumulusCommunity/cumulus-vx' (v4.2.0) for provider: libvirt ==> leaf01: Creating image (snapshot of base box volume). ==> spine01: Creating image (snapshot of base box volume). ==> leaf02: Creating image (snapshot of base box volume). ==> leaf01: Creating domain with the following settings… ==> leaf01: -- Name: 1s2l_leaf01 ==> leaf02: Creating domain with the following settings… ==> spine01: Creating domain with the following settings… ==> leaf02: -- Name: 1s2l_leaf02 ==> spine01: -- Name: 1s2l_spine01 ==> leaf01: -- Domain type: kvm ==> leaf02: -- Domain type: kvm ==> spine01: -- Domain type: kvm ==> leaf01: -- Cpus: 1 ==> leaf02: -- Cpus: 1 ==> spine01: -- Cpus: 1 ==> leaf01: -- Feature: acpi ==> leaf02: -- Feature: acpi ==> spine01: -- Feature: acpi ==> leaf01: -- Feature: apic ==> leaf01: -- Feature: pae ==> leaf01: -- Memory: 768M ==> leaf02: -- Feature: apic ==> spine01: -- Feature: apic ==> spine01: -- Feature: pae .... ....
You can check the VMs are up:
/cumulus/1s2l$ vagrant status
Current machine states:
spine01 running (libvirt)
leaf01 running (libvirt)
leaf02 running (libvirt)
This environment represents multiple VMs. The VMs are all listed
above with their current state. For more information about a specific
VM, run vagrant status NAME
.
/cumulus/1s2l$
And we can login and create some network interfaces as per documentation:
/cumulus/1s2l$ vagrant ssh leaf01 Linux leaf01 4.19.0-cl-1-amd64 #1 SMP Cumulus 4.19.94-1+cl4u5 (2020-07-10) x86_64 Welcome to Cumulus VX (TM) Cumulus VX (TM) is a community supported virtual appliance designed for experiencing, testing and prototyping Cumulus Networks' latest technology. For any questions or technical support, visit our community site at: http://community.cumulusnetworks.com The registered trademark Linux (R) is used pursuant to a sublicense from LMI, the exclusive licensee of Linus Torvalds, owner of the mark on a world-wide basis. vagrant@leaf01:mgmt:~$ net add interface swp1,swp2,swp3 vagrant@leaf01:mgmt:~$ net commit --- /etc/network/interfaces 2020-07-15 01:15:58.000000000 +0000 +++ /run/nclu/ifupdown2/interfaces.tmp 2020-10-31 14:12:30.826000000 +0000 @@ -5,15 +5,24 @@ # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet dhcp vrf mgmt +auto swp1 +iface swp1 + +auto swp2 +iface swp2 + +auto swp3 +iface swp3 + auto mgmt iface mgmt address 127.0.0.1/8 address ::1/128 vrf-table auto net add/del commands since the last "net commit" User Timestamp Command ------- -------------------------- -------------------------------- vagrant 2020-10-31 14:12:27.070219 net add interface swp1,swp2,swp3 vagrant@leaf01:mgmt:~$
And after configuring the interfaces in the three VMs, we have LLDP working:
/cumulus/1s2l$ vagrant ssh leaf01 Linux leaf01 4.19.0-cl-1-amd64 #1 SMP Cumulus 4.19.94-1+cl4u5 (2020-07-10) x86_64 Welcome to Cumulus VX (TM) Cumulus VX (TM) is a community supported virtual appliance designed for experiencing, testing and prototyping Cumulus Networks' latest technology. For any questions or technical support, visit our community site at: http://community.cumulusnetworks.com The registered trademark Linux (R) is used pursuant to a sublicense from LMI, the exclusive licensee of Linus Torvalds, owner of the mark on a world-wide basis. Last login: Sat Oct 31 14:12:04 2020 from 10.255.1.1 vagrant@leaf01:mgmt:~$ vagrant@leaf01:mgmt:~$ vagrant@leaf01:mgmt:~$ vagrant@leaf01:mgmt:~$ net show lldp LocalPort Speed Mode RemoteHost RemotePort --------- ----- ------- ---------- ---------- swp1 1G Default spine01 swp1 swp2 1G Default leaf02 swp2 swp3 1G Default leaf02 swp3 vagrant@leaf01:mgmt:~$ vagrant@leaf01:mgmt:~$ net show system Hostname……… leaf01 Build………… Cumulus Linux 4.2.0 Uptime……….. 0:06:09.180000 Model………… Cumulus VX Memory……….. 669MB Vendor Name…… Cumulus Networks Part Number…… 4.2.0 Base MAC Address. 52:54:00:17:87:07 Serial Number…. 52:54:00:17:87:07 Product Name….. VX vagrant@leaf01:mgmt:~$ exit
So I am happy because now I have something to play with and try to build an MPLS lab with cumulus. At some point I would like to try some quaga/frr lab.
I am pretty sure that in the past, I didnt have to type my password every single time I run a vagrant command….
Ok, we can shutdown the VMs and start the work for the next time:
/cumulus/1s2l$ vagrant halt spine01 leaf01 leaf02
==> leaf02: Halting domain…
==> leaf01: Halting domain…
==> spine01: Halting domain…
/cumulus/1s2l$
/cumulus/1s2l$
/cumulus/1s2l$ vagrant status
Current machine states:
spine01 shutoff (libvirt)
leaf01 shutoff (libvirt)
leaf02 shutoff (libvirt)
This environment represents multiple VMs. The VMs are all listed
above with their current state. For more information about a specific
VM, run vagrant status NAME
.
/cumulus/1s2l$