Hextra theme (#1)

* Adapt theme
* Update Contents to match with new theme
* chore: few updates
* adapt HomePage
* Add icons and french version
* fix fr homepage
* Fix Netlab view
* Fix Netlab articles
* devpod post
* French version of DevPod
* my_first_lab
This commit is contained in:
D. Arnodo
2025-02-19 19:46:53 +01:00
committed by GitHub
parent 33f66e242f
commit b47a267dc0
52 changed files with 2059 additions and 324 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 30 KiB

View File

@@ -0,0 +1,217 @@
---
title: "Mon Premier Lab"
date: 2025-02-14T12:00:00+02:00
weight: 1
cascade:
type: docs
---
## Introduction 📚
Dans cet article, nous allons explorer comment installer notre tout premier netlab Containerlab en utilisant **DevPod**.
Nous nous concentrerons sur l'utilisation d'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 l'efficacité financière. 💡💰
Nous y parviendrons en combinant :
- **DevPod**
- **DevContainer**
- **Containerlab**
De plus, nous utiliserons une topologie simple que vous pouvez retrouver sur mon [dépôt GitHub](https://github.com/darnodo/VXLAN-EVPN). Notre objectif principal est de déployer ce lab sur AWS avec DevPod.
Allons-y, c'est parti ! 🚀😊
## Prérequis 🔧
Avant de commencer, quelques étapes importantes sont à réaliser :
1. **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](/documentation/devpod). 🔑
2. **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 :
![Topologie VXLAN](VXLAN.svg#center)
Voici le fichier de topologie Containerlab (`lab_vxlan.yml`) utilisé pour cette configuration :
```yaml
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 🧐
1. **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).
2. **Nodes** :
- **Couche Spine** :
- `spine1` : Un switch Arista cEOS containerisé utilisant l'image version `4.32.0.1F`.
- **IP de gestion** : `172.20.20.101`
- **Couche Leaf** :
- `leaf1` et `leaf2` : Des switches Arista cEOS utilisant la même version d'image.
- **IPs de gestion** : `172.20.20.11` et `172.20.20.12`
- **Couche Host** :
- `host1` et `host2` : 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.21` et `172.20.20.22`
3. **Links** :
- **De Spine à Leaf** :
- `spine1:eth1``leaf1:eth1`
- `spine1:eth2``leaf2:eth1`
- **De Leaf à Host** :
- `leaf1:eth2``host1:eth1`
- `leaf2:eth2``host2:eth1`
Cette topologie représente 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 📥
1. **Valider la configuration du fournisseur AWS** :
Assurez-vous que votre fournisseur AWS est correctement configuré. Plus de détails [ici](/documentation/devpod). ✅
2. **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](https://github.com/darnodo/VXLAN-EVPN).
- Sélectionnez **AWS** comme fournisseur.
- Choisissez votre IDE par défaut.
- Enfin, cliquez sur **Create Workspace**.
![Configuration DevPod](devpod_configuration.png#center)
### 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 vous suffit de le pointer vers votre dépôt local.
![Configuration DevPod - Local](devpod_configuration_local.png#center)
## Démarrer le Lab 🎬
> [!WARNING] 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](https://www.arista.com/en/support/software-download). ⚠️
1. **Importer l'image cEOS** :
Enregistrez l'image cEOS dans votre dossier `network_images` en la glissant-déposant dans VSCode.
Importez l'image en utilisant la commande suivante :
```bash
docker import network_images/cEOS64-lab-4.32.0.1F.tar.xz ceos:4.32.0.1F
```
2. **Déployer le Lab** :
Déployez le lab en utilisant Containerlab :
```bash
sudo containerlab deploy -t lab_vxlan.yml
```
Suivez les instructions du CLI pour configurer vos périphériques. Pour des étapes de configuration détaillées, consultez [ce guide](https://github.com/darnodo/VXLAN-EVPN/tree/main/documentation/eos_configuration). 🔧🖥️
3. **Visualiser l'Architecture** :
Vérifiez la topologie déployée grâce à la vue graphique de Containerlab :
```bash
containerlab graph -t lab_vxlan.yml
```
Les ports (par exemple, le port 50080 mentionné dans le `devcontainer.json`) sont redirigés. Accédez à la vue graphique via [localhost](http://localhost:50080).
![Vue Graphique](Graph_view.png#center)
## 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](https://edgeshark.siemens.io/#/getting-started?id=optional-capture-plugin).
### Configuration d'EdgeShark dans le DevContainer 🐳
Dans la configuration du **DevContainer**, la commande `postCreateCommand` suivante a été ajoutée :
```bash
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.yaml
```
Cette commande télécharge un fichier Docker Compose pour faciliter l'utilisation d'EdgeShark. 🚀
### Lancer EdgeShark ⚡
Pour démarrer EdgeShark, exécutez :
```bash
cd /opt/edgeshark
DOCKER_DEFAULT_PLATFORM= docker compose up -d
```
Accédez à EdgeShark via [localhost:5001](http://localhost:5001).
- **Vue d'EdgeShark** :
![Vue d'EdgeShark](edgeshark.png#center)
- **Intégration avec Wireshark** :
En cliquant sur l'icône Wireshark dans EdgeShark, vous pouvez lancer Wireshark localement.
![Interface EdgeShark](edgeshark_interface.png#center)
![EdgeShark et Wireshark](edge_wireshark.png#center)
## Conclusion 🎉
Dans cet article, nous avons parcouru les étapes pour déployer un lab VXLAN EVPN en utilisant Containerlab, DevPod et AWS. Nous avons abordé les points clés suivants :
- **Mise en place des prérequis** pour AWS et Containerlab. 🔑
- **Création d'un fichier de topologie détaillé** pour une architecture spine-leaf. 🗺️
- **Déploiement du lab** en utilisant à la fois un dépôt GitHub et un dossier local. 📥🗂️
- **Démarrage du lab** avec Docker et Containerlab. 🚀🐳
- **Utilisation d'EdgeShark** pour capturer des paquets et intégrer Wireshark pour une analyse approfondie. 🦈🔍
En suivant ces étapes, vous pourrez déployer et gérer facilement un environnement de lab réseau évolutif dans le cloud. Bon networking et profitez bien de vos aventures en lab ! 😄🎊

View File

@@ -0,0 +1,214 @@
---
title: "My First Lab"
date: 2025-02-14T12:00:00+02:00
weight: 1
cascade:
type: docs
---
## Introduction 📚
In this article, well explore how to install our very first Containerlab netlab using **DevPod**. We'll focus on leveraging a cloud provider—specifically **AWS**—to host our project. Why **Cloud**? Because network labs can consume a huge amount of resources, and we need the ability to deploy, stop, and destroy them quickly for both performance and financial efficiency. 💡💰
We'll achieve this using a combination of:
- **DevPod**
- **DevContainer**
- **Containerlab**
Additionally, we will use a small topology, which you can find on my [GitHub repository](https://github.com/darnodo/VXLAN-EVPN). Our main objective is to deploy this lab on AWS using DevPod. Let's dive in and get started! 🚀😊
## Prerequisites 🔧
Before we get started, there are a couple of important steps to complete:
1. **AWS Environment Authorization**:
Ensure that DevPod is authorized to access your AWS environment. For a detailed guide on configuring DevPod with AWS, please refer to my post on this [topic](/documentation/devpod). 🔑
2. **Containerlab Topology**:
We need a topology file that Containerlab can understand. In our case, we're building a simple VXLAN topology. 🗺️
## Containerlab Topology 🔄
Our lab will simulate a VXLAN topology with:
- **1 Spine switch**
- **2 Leaf switches**
- **2 Host nodes**
The following diagram illustrates the VXLAN topology:
![VXLAN Topology](VXLAN.svg#center)
Below is the Containerlab topology file (`lab_vxlan.yml`) used for this setup:
```yaml
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"]
```
### Breaking Down the Topology 🧐
1. **Name and Structure**:
- `name: vxlan-evpn-irb` This is the lab's name.
- The topology is divided into **nodes** (devices) and **links** (connections between devices).
2. **Nodes**:
- **Spine Layer**:
- `spine1`: A containerized Arista cEOS switch using image version `4.32.0.1F`.
- **Management IP**: `172.20.20.101`
- **Leaf Layer**:
- `leaf1` and `leaf2`: Arista cEOS switches with the same image version.
- **Management IPs**: `172.20.20.11` and `172.20.20.12`
- **Host Layer**:
- `host1` and `host2`: Linux containers running Alpine Linux.
- They include custom network interface configurations mounted from the host.
- **Management IPs**: `172.20.20.21` and `172.20.20.22`
3. **Links**:
- **Spine to Leaf**:
- `spine1:eth1``leaf1:eth1`
- `spine1:eth2``leaf2:eth1`
- **Leaf to Host**:
- `leaf1:eth2``host1:eth1`
- `leaf2:eth2``host2:eth1`
This topology represents a typical spine-leaf architecture, common in data center networks to enable both Layer 2 and Layer 3 connectivity with VXLAN EVPN configurations. 🔗💻
## Deploy the Lab 🛠️
We will deploy the lab using **DevPod** in two ways:
### 1. Using the Repository 📥
1. **Validate AWS Provider Configuration**:
Ensure that your AWS provider is correctly configured. More details can be found [here](/documentation/devpod). ✅
2. **Create a Workspace**:
- Navigate to the **Workspace** tab and click on **Create Workspace**.
- Enter the **Workspace source**: use the [GitHub repository](https://github.com/darnodo/VXLAN-EVPN).
- Select **AWS** as the provider.
- Choose your default IDE.
- Finally, click on **Create Workspace**.
![DevPod Configuration](devpod_configuration.png#center)
### 2. Using a Local Folder 🗂️
If you prefer to use your local repository:
- The only difference is in the **Workspace source**.
- Simply point it to your local repository.
![DevPod Configuration - Local](devpod_configuration_local.png#center)
## Starting the Lab 🎬
> [!WARNING] cEOS Images
> The lab uses **cEOS image v4.32.0.1F**.
> To download this image, visit the [Arista download webpage](https://www.arista.com/en/support/software-download). ⚠️
1. **Import the cEOS Image**:
Save the cEOS image in your `network_images` folder by dragging and dropping it into VSCode.
Import the image using the following command:
```bash
docker import network_images/cEOS64-lab-4.32.0.1F.tar.xz ceos:4.32.0.1F
```
2. **Deploy the Lab**:
Deploy the lab using Containerlab:
```bash
sudo containerlab deploy -t lab_vxlan.yml
```
Follow the CLI prompts to configure your devices. For detailed configuration steps, refer to [this guide](https://github.com/darnodo/VXLAN-EVPN/tree/main/documentation/eos_configuration). 🔧🖥️
3. **Visualize the Architecture**:
Validate the deployed topology using Containerlabs graph view:
```bash
containerlab graph -t lab_vxlan.yml
```
Ports (e.g., port 50080 as mentioned in the `devcontainer.json`) are forwarded. Access the graph view via [localhost](http://localhost:50080).
![Graph View](Graph_view.png#center)
## Using EdgeShark 🦈
EdgeShark is a web UI tool that helps capture packets from your lab environment. It tunnels captures from the lab to Wireshark running locally. 📡🔍
For more details, check out [EdgeSharks Getting Started Guide](https://edgeshark.siemens.io/#/getting-started?id=optional-capture-plugin).
### EdgeShark Setup in the DevContainer 🐳
In the **DevContainer** configuration, the following `postCreateCommand` has been added:
```bash
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.yaml
```
This command downloads a Docker Compose file to facilitate the use of EdgeShark. 🚀
### Running EdgeShark ⚡
To start EdgeShark, execute:
```bash
cd /opt/edgeshark
DOCKER_DEFAULT_PLATFORM= docker compose up -d
```
Access EdgeShark via [localhost:5001](http://localhost:5001).
- **EdgeShark View**:
![Edgeshark View](edgeshark.png#center)
- **Wireshark Integration**:
Using the Wireshark icon in EdgeShark, you can launch Wireshark locally.
![Edgeshark Interface](edgeshark_interface.png#center)
![Edgeshark and Wireshark](edge_wireshark.png#center)
## Conclusion 🎉
In this article, we walked through the steps to deploy a VXLAN EVPN lab using Containerlab, DevPod, and AWS. We covered the following key points:
- **Setting up prerequisites** for AWS and Containerlab. 🔑
- **Creating a detailed topology** file for a spine-leaf network. 🗺️
- **Deploying the lab** using both repository and local methods. 📥🗂️
- **Starting the lab** with Docker and Containerlab. 🚀🐳
- **Using EdgeShark** to capture packets and integrate with Wireshark for detailed analysis. 🦈🔍
By following these steps, you can easily deploy and manage a scalable network lab environment in the cloud. Happy networking and enjoy your lab adventures! 😄🎊

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB