Mon Premier Lab
Introduction
Dans cet article, nous allons installer notre tout premier netlab Containerlab en utilisant DevPod. Nous utiliserons un fournisseur cloud, en l’occurrence AWS, pour hĂ©berger notre projet. Pourquoi le cloud ? Parce que les labs rĂ©seau peuvent consommer Ă©normĂ©ment de ressources, et nous avons besoin de pouvoir les dĂ©ployer, les arrĂŞter et les dĂ©truire rapidement, tant pour la performance que pour le coĂ»t.
Nous y parviendrons en combinant :
- DevPod
- DevContainer
- Containerlab
Nous utiliserons une topologie simple que vous pouvez retrouver sur mon dépôt GitHub. Notre objectif est de déployer ce lab sur AWS avec DevPod.
Prérequis
Avant de commencer, quelques éléments doivent être en place :
-
Autorisation de l’environnement AWS : assurez-vous que DevPod est autorisĂ© Ă accĂ©der Ă votre environnement AWS. Pour un guide dĂ©taillĂ© sur la configuration de DevPod avec AWS, consultez mon article sur ce sujet.
-
Topologie Containerlab : nous avons besoin d’un fichier de topologie comprĂ©hensible par Containerlab. Dans notre cas, nous crĂ©ons une topologie VXLAN simple.
Topologie Containerlab
Notre lab simulera une topologie VXLAN comprenant :
- 1 switch Spine
- 2 switches Leaf
- 2 nœuds Host
Le diagramme suivant illustre la topologie VXLAN :
Voici le fichier de topologie Containerlab (lab_vxlan.yml) utilisé pour cette configuration :
name: vxlan-evpn-irb
topology:
nodes:
spine1:
kind: ceos
image: ceos:4.32.0.1F
mgmt-ipv4: 172.20.20.101
leaf1:
kind: ceos
image: ceos:4.32.0.1F
mgmt-ipv4: 172.20.20.11
leaf2:
kind: ceos
image: ceos:4.32.0.1F
mgmt-ipv4: 172.20.20.12
host1:
kind: linux
image: alpine:latest
binds:
- hosts/h1_interfaces:/etc/network/interfaces
mgmt-ipv4: 172.20.20.21
host2:
kind: linux
image: alpine:latest
binds:
- hosts/h2_interfaces:/etc/network/interfaces
mgmt-ipv4: 172.20.20.22
links:
- endpoints: ["spine1:eth1", "leaf1:eth1"]
- endpoints: ["spine1:eth2", "leaf2:eth1"]
- endpoints: ["leaf1:eth2", "host1:eth1"]
- endpoints: ["leaf2:eth2", "host2:eth1"]Décryptage de la topologie
-
Nom et Structure :
name: vxlan-evpn-irb– C’est le nom du lab.- La topologie se divise en nodes (pĂ©riphĂ©riques) et links (connexions entre les pĂ©riphĂ©riques).
-
Nodes :
- Couche Spine :
spine1: Un switch Arista cEOS containerisĂ© utilisant l’image version4.32.0.1F.- IP de gestion :
172.20.20.101
- Couche Leaf :
leaf1etleaf2: Des switches Arista cEOS utilisant la mĂŞme version d’image.- IPs de gestion :
172.20.20.11et172.20.20.12
- Couche Host :
host1ethost2: Des conteneurs Linux exĂ©cutant Alpine Linux.- Ils incluent des configurations personnalisĂ©es pour les interfaces rĂ©seau montĂ©es depuis l’hĂ´te.
- IPs de gestion :
172.20.20.21et172.20.20.22
- Couche Spine :
-
Links :
- De Spine Ă Leaf :
spine1:eth1↔leaf1:eth1spine1:eth2↔leaf2:eth1
- De Leaf Ă Host :
leaf1:eth2↔host1:eth1leaf2:eth2↔host2:eth1
- De Spine Ă Leaf :
Cette topologie est une architecture spine-leaf typique, courante dans les datacenters pour permettre une connectivité en couche 2 et en couche 3 avec des configurations VXLAN EVPN.
Déployer le lab
Nous allons déployer le lab avec DevPod de deux manières :
1. En utilisant le dépôt
-
Valider la configuration du fournisseur AWS : assurez-vous que votre fournisseur AWS est correctement configuré. Plus de détails ici.
-
Créer un workspace :
- Rendez-vous dans l’onglet Workspace et cliquez sur Create Workspace.
- Indiquez la source du Workspace : utilisez le dépôt GitHub.
- Sélectionnez AWS comme fournisseur.
- Choisissez votre IDE par défaut.
- Enfin, cliquez sur Create Workspace.

2. En utilisant un dossier local
Si vous préférez utiliser votre dépôt local, la seule différence se trouve dans la source du Workspace : il suffit de le pointer vers votre dépôt local.

Démarrer le lab
Images cEOS
Le lab utilise l’image cEOS v4.32.0.1F. Pour tĂ©lĂ©charger cette image, rendez-vous sur la page de tĂ©lĂ©chargement Arista.
-
Importer l’image cEOS : enregistrez l’image cEOS dans votre dossier
network_imagesen la glissant-dĂ©posant dans VSCode. Importez l’image en utilisant la commande suivante :docker import network_images/cEOS64-lab-4.32.0.1F.tar.xz ceos:4.32.0.1F -
Déployer le lab en utilisant Containerlab :
sudo containerlab deploy -t lab_vxlan.ymlSuivez les instructions du CLI pour configurer vos périphériques. Pour des étapes de configuration détaillées, consultez ce guide.
-
Visualiser l’architecture : vĂ©rifiez la topologie dĂ©ployĂ©e grâce Ă la vue graphique de Containerlab.
containerlab graph -t lab_vxlan.ymlLes ports (par exemple, le port 50080 mentionné dans le
devcontainer.json) sont redirigés. Accédez à la vue graphique via localhost.
Utiliser EdgeShark
EdgeShark est un outil web qui permet de capturer des paquets depuis votre environnement de lab. Il redirige les captures du lab vers Wireshark exécuté localement.
Pour plus d’informations, consultez le guide de dĂ©marrage d’EdgeShark.
Configuration d’EdgeShark dans le DevContainer
Dans la configuration du DevContainer, la commande postCreateCommand suivante a été ajoutée :
sudo mkdir -p /opt/edgeshark && sudo curl -sL https://github.com/siemens/edgeshark/raw/main/deployments/wget/docker-compose.yaml -o /opt/edgeshark/docker-compose.yamlCette commande tĂ©lĂ©charge un fichier Docker Compose pour faciliter l’utilisation d’EdgeShark.
Lancer EdgeShark
Pour démarrer EdgeShark, exécutez :
cd /opt/edgeshark
DOCKER_DEFAULT_PLATFORM= docker compose up -dAccédez à EdgeShark via localhost:5001.
-
Vue d’EdgeShark :

-
IntĂ©gration avec Wireshark : cliquer sur l’icĂ´ne Wireshark dans EdgeShark lance Wireshark localement.

Conclusion
VoilĂ pour l’ensemble de la mise en place : prĂ©requis, topologie VXLAN, dĂ©ploiement du lab avec DevPod sur AWS, et capture de trafic avec EdgeShark et Wireshark. Vous disposez maintenant d’un lab spine-leaf fonctionnel, que vous pouvez dĂ©truire et redĂ©ployer selon vos besoins.