---
title: "Introducing NetLabs"
weight: 1
cascade:
  type: docs
---

## Introduction

Computer networks are everywhere in daily life now, and understanding how they work matters more than it used to.

Virtual network labs (also known as "NetLab" or "Virtual Network Lab") are an ideal approach to teaching these concepts, allowing us to simulate complex network environments and experiment risk-free.

I want to share with you how my "NetLabs" work, which will regularly be linked to documentation articles (in the **documentation** category). They will let us practice, observe, or understand the workings of concepts explained theoretically beforehand.

As part of NetLab, these will mainly be deployed using the ContainerLab tool. For more complex architectures, we'll use GNS3.

## What is ContainerLab?

ContainerLab is an open-source tool for building complete virtual network labs. With it, you can simulate complex network architectures, with equipment such as routers, switches, servers, and other network devices.

This platform offers great flexibility in designing exercises, making it possible to cover various topics such as learning network protocols, security, or device configuration. Users can therefore focus on analyzing and solving problems without worrying about the underlying technical details.

Installing ContainerLab won't be covered here, but all the information is available on the official website [here](https://containerlab.dev/install/).

## What is GNS3?

GNS3, or Graphical Network Simulator-3, is open-source software mainly used for the **simulation** and **emulation** of computer networks. It allows network engineers, students, and professionals to design, test, and troubleshoot complex networks in a virtual environment before deploying them in the real world. GNS3 is particularly appreciated for its ability to integrate various network hardware and software, such as Cisco routers and switches, as well as virtual machines, to create realistic network topologies.

As before, installing GNS3 won't be covered here; for more information, the documentation is available [here](https://docs.gns3.com/docs/).

## GNS3 vs ContainerLab

GNS3 and ContainerLab are two powerful tools for network simulation and emulation, but they differ in their approach, features, and main use cases. Here's a quick comparison between the two:

### GNS3

**Advantages:**

1. Intuitive graphical interface: GNS3 offers a user-friendly graphical interface that lets users drag and drop components to build network topologies.
2. Multivendor support: it supports a wide range of network hardware and software, including Cisco routers and switches, as well as virtual machines.
3. Flexibility: GNS3 can be used on Windows, macOS, and Linux, and it integrates well with other tools like Wireshark for traffic analysis.
4. Active community: a large community of users and developers provides support and online resources.

**Drawbacks:**

1. System resources: GNS3 can be resource-intensive, especially when emulating complex devices or large topologies.
2. Configuration complexity: initial setup can be complex, especially for new users.

### ContainerLab

**Advantages:**

1. Lightweight and performant: ContainerLab uses containers to emulate network devices, making it lighter and faster than VM-based solutions.
2. Automation and DevOps: it integrates well with DevOps and automation tools like Ansible, making automated deployment and network management easier.
3. Simplified configuration: topologies are defined via YAML files, making configuration simpler and scriptable.
4. Support for modern technologies: it supports Docker and Kubernetes, offering more flexibility for cloud-native environments.

**Drawbacks:**

1. Less multivendor support: while ContainerLab supports several types of network containers, it may not match GNS3's level of multivendor support.
2. Learning curve: for those unfamiliar with containerization concepts, the learning curve can be steeper.

## Conclusion

**GNS3** is ideal for those looking for an intuitive graphical interface and broad device support, particularly useful for students and traditional network engineers. **ContainerLab**, on the other hand, is better suited to modern environments and DevOps practices, offering a lightweight and scriptable solution for network simulation.

The choice between GNS3 and ContainerLab therefore mainly depends on the user's specific needs in terms of flexibility, performance, and integration with other tools and technologies.
