diff --git a/content/blog/migration-gitlab-gitea/global_architecture.en.svg b/content/blog/migration-gitlab-gitea/global_architecture.en.svg new file mode 100644 index 0000000..3e2f7af --- /dev/null +++ b/content/blog/migration-gitlab-gitea/global_architecture.en.svg @@ -0,0 +1,4 @@ + + +🏠 HomelabProxmox VELXC: GiteaLXC: RunnerLXC: Grafana/AnsibleScaleway DediboxNginx Proxy Manager☁️ InternetHTTPSWireguard VPNWireguard VPN \ No newline at end of file diff --git a/content/blog/migration-gitlab-gitea/index.en.md b/content/blog/migration-gitlab-gitea/index.en.md index 3fa58ae..d2759de 100644 --- a/content/blog/migration-gitlab-gitea/index.en.md +++ b/content/blog/migration-gitlab-gitea/index.en.md @@ -28,7 +28,7 @@ But several needs emerged: ## The Overall Architecture -![Architecture](global_architecture.fr.svg) +![Architecture](global_architecture.en.svg) ### Tech Stack diff --git a/content/documentation/VXLAN/beginners/media_layers.en.png b/content/documentation/VXLAN/beginners/media_layers.en.png new file mode 100644 index 0000000..472eb66 Binary files /dev/null and b/content/documentation/VXLAN/beginners/media_layers.en.png differ diff --git a/content/documentation/VXLAN/beginners/transports.en.png b/content/documentation/VXLAN/beginners/transports.en.png new file mode 100644 index 0000000..d9bbf14 Binary files /dev/null and b/content/documentation/VXLAN/beginners/transports.en.png differ diff --git a/content/documentation/VXLAN/beginners/vxlan-for-beginners.en.md b/content/documentation/VXLAN/beginners/vxlan-for-beginners.en.md index f88ea9f..e3a3def 100644 --- a/content/documentation/VXLAN/beginners/vxlan-for-beginners.en.md +++ b/content/documentation/VXLAN/beginners/vxlan-for-beginners.en.md @@ -55,7 +55,7 @@ The goal of **VXLAN** is to **extend layer 2** across a layer 3 (IP) network. Th > **In plain terms:** Ethernet frames (layer 2) are encapsulated inside a UDP packet (layer 4), which is itself carried over IP (layer 3). -![OSI Layers](media_layers.fr.png#center) +![OSI Layers](media_layers.en.png#center) > [!NOTE]**The "hardware" layers** > @@ -87,7 +87,7 @@ The train runs on rails (the **IP network**, layer 3). The rail tracks are alrea - **Isolation and segmentation:** Just as several trains can run on the same railway line, it's possible to operate different VXLAN tunnels (each with its own VNI) over the same IP infrastructure. - **Elasticity and reliability:** By relying on layer 3, VXLAN benefits from all the optimizations of IP routing (route recalculation, fault tolerance, etc.). -![Container transport](transports.fr.png#center) +![Container transport](transports.en.png#center) ## Real-world use cases 🏭 diff --git a/content/documentation/devpod/_index.en.md b/content/documentation/devpod/_index.en.md index bd7277e..8865b3a 100644 --- a/content/documentation/devpod/_index.en.md +++ b/content/documentation/devpod/_index.en.md @@ -66,11 +66,11 @@ In my day-to-day networking adventures, I deploy ContainerLab-based setups with DevPod uses **Providers**, which are configuration modules that define where and how DevPod launches your environment. Here's the list of providers: -![Provider_list](provider.fr.png#center) +![Provider_list](provider.en.png#center) We're going to focus on the **AWS Provider** — even though there are plenty of configuration options: -![Provider_list](aws_options.fr.png#center) +![Provider_list](aws_options.en.png#center) Before you panic at all these settings, don't worry. If you're just doing a bit of experimenting, the default values will usually do the job. 🙌 @@ -245,7 +245,7 @@ Go back to **Users** → **devpod-tool-user** → **Permissions** to confirm tha - If you created a programmatic user, make sure to note down the **Access Key ID** and the **Secret Access Key**. -![devpod_user_sumup](devpod_user.fr.png#center) +![devpod_user_sumup](devpod_user.en.png#center) **Bonus**: Note your **VPC ID** (in the VPC section on AWS). You'll need it when configuring DevPod. @@ -277,7 +277,7 @@ When prompted for: Click **Add Provider**. -![added_new_provider](new_provider.fr.png#center) +![added_new_provider](new_provider.en.png#center) ## Testing a deployment 🧪 @@ -292,23 +292,23 @@ Let's do a quick test using one of the pre-built Docker images: 5. On the right, select a quick-start example (e.g., Python). 🐍 6. Click **Create Workspace**. -![new_worspace](new_worskapce.fr.png#center) +![new_worspace](new_worskapce.en.png#center) Wait a few moments, and your cloud-based environment will pop up in VS Code. 🎊 -![vscode](vscode.fr.png#center) +![vscode](vscode.en.png#center) ### Stop When you're not using the environment, click **Stop** to shut down the EC2 instance. You'll only pay for storage — no compute time. Great for your wallet. 💰 -![Stopped Instance](stopped_instance.fr.png#center) +![Stopped Instance](stopped_instance.en.png#center) ### Delete Deleting the workspace removes all AWS resources associated with that environment, so you won't pay a dime. But you'll need to redeploy if you want to use it again. ♻️ -![Delete Instance](delete_instance.fr.png#center) +![Delete Instance](delete_instance.en.png#center) ## Conclusion 💡 diff --git a/content/documentation/devpod/aws_options.en.png b/content/documentation/devpod/aws_options.en.png new file mode 100644 index 0000000..894b6fd Binary files /dev/null and b/content/documentation/devpod/aws_options.en.png differ diff --git a/content/documentation/devpod/delete_instance.en.png b/content/documentation/devpod/delete_instance.en.png new file mode 100644 index 0000000..616f618 Binary files /dev/null and b/content/documentation/devpod/delete_instance.en.png differ diff --git a/content/documentation/devpod/devpod_user.en.png b/content/documentation/devpod/devpod_user.en.png new file mode 100644 index 0000000..4f3ba2c Binary files /dev/null and b/content/documentation/devpod/devpod_user.en.png differ diff --git a/content/documentation/devpod/new_provider.en.png b/content/documentation/devpod/new_provider.en.png new file mode 100644 index 0000000..cf8b1ac Binary files /dev/null and b/content/documentation/devpod/new_provider.en.png differ diff --git a/content/documentation/devpod/new_worskapce.en.png b/content/documentation/devpod/new_worskapce.en.png new file mode 100644 index 0000000..46d56e2 Binary files /dev/null and b/content/documentation/devpod/new_worskapce.en.png differ diff --git a/content/documentation/devpod/provider.en.png b/content/documentation/devpod/provider.en.png new file mode 100644 index 0000000..629f3c7 Binary files /dev/null and b/content/documentation/devpod/provider.en.png differ diff --git a/content/documentation/devpod/stopped_instance.en.png b/content/documentation/devpod/stopped_instance.en.png new file mode 100644 index 0000000..e869662 Binary files /dev/null and b/content/documentation/devpod/stopped_instance.en.png differ diff --git a/content/documentation/devpod/vscode.en.png b/content/documentation/devpod/vscode.en.png new file mode 100644 index 0000000..d256906 Binary files /dev/null and b/content/documentation/devpod/vscode.en.png differ diff --git a/content/documentation/securité/cadenas_vert/certificat.en.png b/content/documentation/securité/cadenas_vert/certificat.en.png new file mode 100644 index 0000000..c7e0688 Binary files /dev/null and b/content/documentation/securité/cadenas_vert/certificat.en.png differ diff --git a/content/documentation/securité/cadenas_vert/ssl.en.md b/content/documentation/securité/cadenas_vert/ssl.en.md index a7fb087..386c439 100644 --- a/content/documentation/securité/cadenas_vert/ssl.en.md +++ b/content/documentation/securité/cadenas_vert/ssl.en.md @@ -10,7 +10,7 @@ cascade: You've seen it thousands of times, haven't you? That little **green padlock** (or sometimes gray, depending on your browser and the site) that shows up next to a website's address in your navigation bar. You click on it, you look at it, you think "cool, it's secure," and you move on. -![Certificat](certificat.png) +![Certificat](certificat.en.png) But... do you really know what it means? 🤔 All the **mechanics that kick in** just so this little symbol appears? It's much more than a simple icon! It's the visible part of an iceberg. \ **So, what's our mission today? 🚀** diff --git a/content/documentation/securité/ssl_bumping/images/architecture_du_lab_ssl.en.svg b/content/documentation/securité/ssl_bumping/images/architecture_du_lab_ssl.en.svg new file mode 100644 index 0000000..e698642 --- /dev/null +++ b/content/documentation/securité/ssl_bumping/images/architecture_du_lab_ssl.en.svg @@ -0,0 +1,4 @@ + + + +
Port 3128
Votre Machine

💻 Navigateur
+ CA installée

Container Docker

Squid Proxy
  • SSL Bump
  • CA Cert : /ssl/squid-ca.pem
  • Cache : /var/cache/squid/
  • Logs : /var/log/squid
Fluent Bit
  • Parse
  • Transform avec lua
  • Export OTLP (port 4318)
(optionnel)
Internet

🌐

Architecture du lab SSL

\ No newline at end of file diff --git a/content/documentation/securité/ssl_bumping/images/generation_des_faux_certificats.en.svg b/content/documentation/securité/ssl_bumping/images/generation_des_faux_certificats.en.svg new file mode 100644 index 0000000..6e474d4 --- /dev/null +++ b/content/documentation/securité/ssl_bumping/images/generation_des_faux_certificats.en.svg @@ -0,0 +1,4 @@ + + + +
CA du Proxy
🏰 (Root CA)
Clé Privée 🔑

1. Configuration Initiale

Proxy intercepte
Client :
"Je veux https://example.com"
Proxy Génère à la volée :
  • CN = example.com
  • Signé par le CA du proxy
  • Validité = Courte durée
Faux certificat envoyé au client

2. Interception d'une requête

3. Validation par le client

Navigateur vérifie:
  • Nom correspond (example.com)
  • Pas expiré
  • Signé par une CA de confiance
    (CA du Proxy doit être installée
\ No newline at end of file diff --git a/content/documentation/securité/ssl_bumping/images/ssl_bumping_explique.en.svg b/content/documentation/securité/ssl_bumping/images/ssl_bumping_explique.en.svg new file mode 100644 index 0000000..8cbf949 --- /dev/null +++ b/content/documentation/securité/ssl_bumping/images/ssl_bumping_explique.en.svg @@ -0,0 +1,4 @@ + + + +
🔒 Contenu invisible pour tous les intermédiaires
Tunnel HTTPS Chiffré
Connexion directe E2E

Sans SSL Bumping

Client
Serveur
Client
Woman Detective Streamline Emoji: https://streamlinehq.com
Serveur
👀 Le proxy peut voir tout le contenu déchiffré 
HTTPS Connexion 1
(Faux Certificat)
HTTPS Connexion 2
(Vrai Certificat)
Proxy MITM

Avec SSL Bumping

\ No newline at end of file diff --git a/content/documentation/securité/ssl_bumping/ssl_bumping.en.md b/content/documentation/securité/ssl_bumping/ssl_bumping.en.md index b834cc9..e64ff0d 100644 --- a/content/documentation/securité/ssl_bumping/ssl_bumping.en.md +++ b/content/documentation/securité/ssl_bumping/ssl_bumping.en.md @@ -22,7 +22,7 @@ The principle of HTTPS is comparable to sending mail in a safe where only the se **SSL Bumping** gets around this problem by inserting itself in the middle of the communication: -![SSL Bumping Expliqué](images/ssl_bumping_explique.fr.svg#center) +![SSL Bumping Expliqué](images/ssl_bumping_explique.en.svg#center) The proxy will: 1. **Intercept** the client's HTTPS connection. @@ -57,7 +57,7 @@ For SSL Bumping to work, the proxy must be able to generate certificates on the When you try to access `https://www.example.com`: -![Génération des faux certificats](images/generation_des_faux_certificats.fr.svg) +![Génération des faux certificats](images/generation_des_faux_certificats.en.svg) 1. The proxy intercepts your request. 2. It connects to the real `example.com` server and retrieves its legitimate certificate. @@ -77,7 +77,7 @@ To really understand the mechanism, nothing beats hands-on practice. I've prepar ### Lab Architecture -![Architecture du lab SSL](images/architecture_du_lab_ssl.fr.svg) +![Architecture du lab SSL](images/architecture_du_lab_ssl.en.svg) ### Quick Deployment diff --git a/content/netlab/automatisation réseau/vxlan_automation/Render Config.en.png b/content/netlab/automatisation réseau/vxlan_automation/Render Config.en.png new file mode 100644 index 0000000..b2b1082 Binary files /dev/null and b/content/netlab/automatisation réseau/vxlan_automation/Render Config.en.png differ diff --git a/content/netlab/automatisation réseau/vxlan_automation/Site Standard.drawio.en.svg b/content/netlab/automatisation réseau/vxlan_automation/Site Standard.drawio.en.svg new file mode 100644 index 0000000..da1f1d3 --- /dev/null +++ b/content/netlab/automatisation réseau/vxlan_automation/Site Standard.drawio.en.svg @@ -0,0 +1,4 @@ + + + +
Datacenter

...

Spine 1
Spine 2
Leaf 1
Leaf 2
Leaf X
Access 1
Access 1
Access 1
\ No newline at end of file diff --git a/content/netlab/automatisation réseau/vxlan_automation/_index.en.md b/content/netlab/automatisation réseau/vxlan_automation/_index.en.md index 03ef361..5131c6a 100644 --- a/content/netlab/automatisation réseau/vxlan_automation/_index.en.md +++ b/content/netlab/automatisation réseau/vxlan_automation/_index.en.md @@ -44,7 +44,7 @@ In a standard site, the connection of leaf devices to the spines follows these r * **Leaf Eth2 Interface:** Always connected to the Spine 2 Eth2 interface. * **Leaf Eth3 Interface:** Always dedicated to connecting to the access switch present in the same building. -![Site Standard]() +![Site Standard]() > [!NOTE] Simplification for the POC > For the purposes of this **Proof of Concept**, we opted for a simplified architecture without advanced redundancy at the leaf-spine connection level. @@ -155,7 +155,7 @@ Choose site number or 'new': 1 > [!NOTE] Netbox Plugin > The configuration can easily be visualized with the help of the plugin: [netbox_topology_views](https://github.com/netbox-community/netbox-topology-views) -![Topologie de Paris](fabric_topology.png) +![Topology of Paris](fabric_topology.en.png) > [!TIP] > Link to the Cookbook [here](https://github.com/darnodo/projet-vxlan-automation/blob/dev/documentation/CookBook.md#%EF%B8%8F-create-fabric) @@ -262,7 +262,7 @@ Now that we know how Netbox generates the configurations, let's see how we use t * Click on the device you're interested in (for example, one of our leafs). * And there we have a magic tab: **Render Config**! Clicking on it shows the configuration Netbox generated for this device using the Jinja2 template and its own data. - ![PA01 Leaf Configuration]() + ![PA01 Leaf Configuration]() 2. **The Human Touch in Containerlab 🖐️** For now, we don't have a script that automatically pushes these configurations to our devices in Containerlab. So we're going to do it the old-fashioned way (but that's fine for a demo!): @@ -312,9 +312,9 @@ For more information, I'll point you to the article on [My First Lab](../../netl And then, via VSCode, it's possible to launch Wireshark directly: -![Extension vscode](leaf1_capture_eth1.png) +![Extension vscode](leaf1_capture_eth1.en.png) -![Capture Wireshark](wireshark_eth2_leaf1.png) +![Capture Wireshark](wireshark_eth2_leaf1.en.png) ## Conclusion ✨ diff --git a/content/netlab/automatisation réseau/vxlan_automation/fabric_topology.en.png b/content/netlab/automatisation réseau/vxlan_automation/fabric_topology.en.png new file mode 100644 index 0000000..1728d99 Binary files /dev/null and b/content/netlab/automatisation réseau/vxlan_automation/fabric_topology.en.png differ diff --git a/content/netlab/automatisation réseau/vxlan_automation/leaf1_capture_eth1.en.png b/content/netlab/automatisation réseau/vxlan_automation/leaf1_capture_eth1.en.png new file mode 100644 index 0000000..208c00b Binary files /dev/null and b/content/netlab/automatisation réseau/vxlan_automation/leaf1_capture_eth1.en.png differ diff --git a/content/netlab/automatisation réseau/vxlan_automation/wireshark_eth2_leaf1.en.png b/content/netlab/automatisation réseau/vxlan_automation/wireshark_eth2_leaf1.en.png new file mode 100644 index 0000000..9308f8d Binary files /dev/null and b/content/netlab/automatisation réseau/vxlan_automation/wireshark_eth2_leaf1.en.png differ diff --git a/content/netlab/first_lab/Graph_view.en.png b/content/netlab/first_lab/Graph_view.en.png new file mode 100644 index 0000000..cc1ba70 Binary files /dev/null and b/content/netlab/first_lab/Graph_view.en.png differ diff --git a/content/netlab/first_lab/VXLAN.en.svg b/content/netlab/first_lab/VXLAN.en.svg new file mode 100644 index 0000000..8b45abe --- /dev/null +++ b/content/netlab/first_lab/VXLAN.en.svg @@ -0,0 +1 @@ +
Arista cEOS
Arista cEOS
Arista cEOS
Arista cEOS
Leaf 2
10.10.110.2/32
Leaf 210.10.11...
Host 1 
10.50.0.10/24
Host 1...
Host 2 
10.50.0.20/24
Host 2...
Arista cEOS
Arista cEOS
VNI 1050
IRB VxLAN Tunnel
VNI 1050...
VLAN 50
VLAN 50
VLAN 50
VLAN 50
AS: 65001
AS: 65001
Leaf 1
10.10.110.1/32
Leaf 110.10.11...
Leaf 1
10.10.100.1/32
Leaf 110.10.10...
AS: 65101
AS: 65101
AS: 65102
AS: 65102
10.1.1.0/31
10.1.1.0/31
10.1.1.2/31
10.1.1.2/31
10.1.1.1/31
10.1.1.1/31
10.1.1.3/31
10.1.1.3/31
SVI VLAN 50
10.50.0.1/24
SVI VLAN 50...
SVI VLAN 50
10.50.0.1/24
SVI VLAN 50...
Text is not SVG - cannot display
\ No newline at end of file diff --git a/content/netlab/first_lab/_index.en.md b/content/netlab/first_lab/_index.en.md index 79fd609..5f89305 100644 --- a/content/netlab/first_lab/_index.en.md +++ b/content/netlab/first_lab/_index.en.md @@ -43,7 +43,7 @@ Our lab will simulate a VXLAN topology consisting of: The following diagram illustrates the VXLAN topology: -![VXLAN Topology](VXLAN.fr.svg#center) +![VXLAN Topology](VXLAN.en.svg#center) Here's the Containerlab topology file (`lab_vxlan.yml`) used for this configuration: @@ -126,7 +126,7 @@ We'll deploy the lab with **DevPod** in two ways: - Choose your default IDE. - Finally, click **Create Workspace**. - ![DevPod Configuration](devpod_configuration.fr.png#center) + ![DevPod Configuration](devpod_configuration.en.png#center) ### 2. Using a Local Folder 🗂️ @@ -135,7 +135,7 @@ 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.fr.png#center) + ![DevPod Configuration - Local](devpod_configuration_local.en.png#center) ## Starting the Lab 🎬 @@ -169,7 +169,7 @@ If you prefer to use your local repository: Ports (for example, port 50080 mentioned in `devcontainer.json`) are forwarded. Access the graphical view via [localhost](http://localhost:50080). - ![Graph View](Graph_view.fr.png#center) + ![Graph View](Graph_view.en.png#center) ## Using EdgeShark 🦈 @@ -199,12 +199,12 @@ DOCKER_DEFAULT_PLATFORM= docker compose up -d Access EdgeShark via [localhost:5001](http://localhost:5001). - **EdgeShark View**: - ![EdgeShark View](edgeshark.fr.png#center) + ![EdgeShark View](edgeshark.en.png#center) - **Integration with Wireshark**: By clicking the Wireshark icon in EdgeShark, you can launch Wireshark locally. - ![EdgeShark Interface](edgeshark_interface.fr.png#center) - ![EdgeShark and Wireshark](edge_wireshark.fr.png#center) + ![EdgeShark Interface](edgeshark_interface.en.png#center) + ![EdgeShark and Wireshark](edge_wireshark.en.png#center) ## Conclusion 🎉 diff --git a/content/netlab/first_lab/devpod_configuration.en.png b/content/netlab/first_lab/devpod_configuration.en.png new file mode 100644 index 0000000..f9da189 Binary files /dev/null and b/content/netlab/first_lab/devpod_configuration.en.png differ diff --git a/content/netlab/first_lab/devpod_configuration_local.en.png b/content/netlab/first_lab/devpod_configuration_local.en.png new file mode 100644 index 0000000..189edb9 Binary files /dev/null and b/content/netlab/first_lab/devpod_configuration_local.en.png differ diff --git a/content/netlab/first_lab/edge_wireshark.en.png b/content/netlab/first_lab/edge_wireshark.en.png new file mode 100644 index 0000000..c3962e4 Binary files /dev/null and b/content/netlab/first_lab/edge_wireshark.en.png differ diff --git a/content/netlab/first_lab/edgeshark.en.png b/content/netlab/first_lab/edgeshark.en.png new file mode 100644 index 0000000..b494aba Binary files /dev/null and b/content/netlab/first_lab/edgeshark.en.png differ diff --git a/content/netlab/first_lab/edgeshark_interface.en.png b/content/netlab/first_lab/edgeshark_interface.en.png new file mode 100644 index 0000000..e87eb12 Binary files /dev/null and b/content/netlab/first_lab/edgeshark_interface.en.png differ