Add Arista cEOS to Containerlab on macOS

Arista has recently released a cEOS ARM64-based container image. This post will guide you through the process of downloading and importing the container image for Containerlab on macOS. Prerequisite Containerlab with macOS on Apple Silicon macOS Point your web browser to the Arista Software Download page. Log in with your Arista credentials. Click the cEOSarm-lab-4.33.1-EFT3.tar.xz file link to download. Save the cEOSarm-lab-4.33.1-EFT3.tar.xz file to your Downloads folder. ...

February 15, 2025 · 2 min

Add Cisco IOL to Containerlab on macOS

The content in this post is intended for educational and informational purposes only. All software rights belong to their respective owners. Cisco recently made the IOS on Linux (IOL) images available through the Cisco Modeling Labs (CML) Free Tier . IOL is an implementation of Cisco IOS-XE that operates as an executable binary on Linux. This post will guide you through the process of creating Cisco IOL container images using Containerlab on macOS. ...

February 8, 2025 · 3 min

Containerlab with macOS on Apple Silicon

Containerlab is rapidly emerging as a viable solution on macOS, thanks to the increasing availability of ARM64-based NOS container images. The following Containerlab kinds work excellent with macOS on Apple Silicon: Nokia SR Linux Arista cEOS Cisco IOL with Rosetta Prerequisites Mac computer with Apple silicon macOS 13.0 or later Git Steps Download OrbStack and open it. Open your favorite terminal emulator. We will work from the command line for the following steps. ...

February 7, 2025 · 2 min

Install vagrant-libvirt plugin on Arch Linux

I use Vagrant with the vagrant-libvirt plugin on my Arch Linux host quite extensively to quickly spin up dev and lab environments. The plugin’s development is mature and generally feature-complete, but the latest release was June 24, 2023. In the meantime, multiple commits were added to the main branch. I use the following process rather than the standard installation sourced from RubyGems . Prerequisites Verify these Arch packages are installed: pacman -Q git vagrant dnsmasq iptables-nft libvirt qemu-base bridge-utils ruby pkgconf gcc make Steps Open your favorite terminal emulator. ...

January 25, 2025 · 2 min

Netmiko with GNS3 console connection

The content in this post is intended for educational and informational purposes only. All software rights belong to their respective owners. I’ve read quite a few tutorials on Netmiko with GNS3, but none of them show you how to directly utilize the console connection as the management interface for Cisco devices. In addition to the CiscoIosSSH driver, Kirk Byers also implemented the CiscoIosTelnet driver for establishing a connection to a Cisco device. This is perfect for GNS3 because the default console connection is essentially a Telnet connection without authentication. ...

December 18, 2024 · 12 min

GNS3 with macOS on Apple Silicon

Before we work our way through the steps, I will start by pointing out GNS3 server has the following constraints when running on Apple Silicon: Lack of Linux KVM for x86_64 virtualized guests Slight performance penalty with emulated x86_64 Linux binaries (Rosetta ) The following are my results after testing a number of different Cisco device types: Device Working? Information IOL ✅ - IOL L2 ✅ - IOSv ✅ - IOSv L2 ✅ - ASAv ❌ Requires SSSE3 CPU instructions for cryptographic operations Catalyst 8000V ❌ Requires vmx or svm CPU flag for Linux KVM Nexus 9000v ❌ Requires vmx or svm CPU flag for Linux KVM As you can see, we’re primarily limited to Cisco (IOL , IOSv , Dynamips ) images, VPCS, and Docker containers. The upside is that we’re rarely CPU-bound running labs on Apple Silicon. The amount of system memory in the Mac is usually the limiting factor. And let’s face it: connecting to a dedicated x86_64 GNS3 compute server with ample CPU cores and RAM is the ideal solution for running large labs. ...

April 29, 2024 · 4 min

Wireshark with Vagrant point-to-point (UDP tunnel) links

Vagrant supports three types of networks: public, private, and port-forwarding. The private network type has the option to use a UDP tunnel for a point-to-point link when using the vagrant-libvirt plugin. This connection type is ideal for links between virtual network devices. Refer to the following resources if you need more information: Pseudo-wires With Vagrant and Libvirt vagrant-libvirt Networks Vagrant Private Networks The only drawback with this type of connection is concerning packet sniffing. Since the connection uses a tunnel for encapsulation, we need a method to view the relevant data within the tunnel somehow. ...

February 12, 2020 · 3 min

SSH local port forwarding with remote GNS3 server

After opening the GNS3 client and starting nodes, we primarily access the remote virtual devices with a console connection. This console connection is either Telnet, VNC, or SPICE. A console connection covers our requirement for physical access to virtual devices, but today, most administrative tasks are carried out with a link to the network management interface . I define the GNS3 server as remote if the gns3server process is not running on the host operating system. I consider the GNS3 VM remote because the gns3server process runs on a guest operating system (Ubuntu). ...

June 24, 2019 · 16 min

Store and retrieve GNS3 images with Azure Blob Storage

This post is a companion to the previous GNS3 with Microsoft Azure post. For many of us, an asymmetrical Internet connection usually equates to a much slower upload than download speed. Specifically, in our case, this results in a time-consuming process of uploading GNS3 image files to our remote gns3server VM instance. What if we need to recreate the disk attached to our gns3server VM instance? Modify the type (i.e., HDD to SSD) or decrease the size of the disk, which again would require us to recreate the disk? What if we need to spin up multiple gns3server VM instances for training purposes? Each situation may require a good amount of unnecessary (re)uploading. ...

October 24, 2018 · 4 min

GNS3 with Microsoft Azure

Microsoft Azure is one of the big three public cloud computing providers for services such as virtual machines (VMs), containers, server-less computing, and machine learning. Azure is a large platform, but we’re focused solely on the Infrastructure as a Service (IaaS) resources in this guide. The GNS3 architecture is comprised of three primary components: User Interface (UI), Controller, and the (Compute) Server. The Server is the component that puts a strain on computer hardware resources. The more routers, switches, firewalls, and servers we add to our GNS3 topologies, the more CPU, RAM, and data storage we require. We usually come to a point where the hardware requirements of our GNS3 labs may exceed what our laptops and desktops can deliver. ...

September 24, 2018 · 11 min