diff --git a/README.md b/README.md index e3d9af3..778d6d2 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,10 @@ This project provides a hands-on lab environment for understanding and experimenting with VXLAN-EVPN (Ethernet VPN) technology. Using ContainerLab, the lab sets up a VXLAN topology featuring 1 spine and 2 leaves nodes. The lab can be deployed directly on a PC with ContainerLab installed or through a DevContainer environment. +Here is a schema of the topology: + +![alt text](documentation/assets/images/VXLAN.svg) + ## Project Structure The project directory is structured as follows: @@ -30,22 +34,44 @@ The project directory is structured as follows: Open the project in a compatible IDE (like Visual Studio Code) and start the DevContainer environment. 2. **ContainerLab Setup:** - - Direct Installation: Install ContainerLab on your host machine. - - Via Terraform, documentation avalaible [here](https://github.com/MasqAs/AWS-ContainerLab-Deployment) + - Direct Installation: Install ContainerLab on your host machine. Follow the [official installation guide](https://containerlab.dev/install/). + - Via Terraform: Documentation available [here](https://github.com/MasqAs/AWS-ContainerLab-Deployment). 3. **Start the Lab:** - - Navigate to the project directory. - - Add Arista image to Docker `docker import network_images/cEOS64-lab-4.32.0.1F.tar.xz ceos:4.32.0.1F` - - Run `sudo containerlab deploy -t lab_vxlan.yml` to deploy the lab topology. + 1. Navigate to the project directory. + 2. Add the Arista image to Docker: + + ```bash + docker import network_images/cEOS64-lab-4.32.0.1F.tar.xz ceos:4.32.0.1F + ``` + + 3. Deploy the lab topology: + + ```bash + sudo containerlab deploy -t lab_vxlan.yml + ``` ## Usage -- Once the lab is deployed, you can access the individual nodes (spines and leaves) via CLI or SSH to configure and test VXLAN-EVPN functionalities. -- Use the `hosts` directory to modify or apply specific configurations. +- Once the lab is deployed, you can access the individual nodes (spines and leaves) via CLI or SSH to configure and test VXLAN-EVPN functionalities. +- Use the `hosts` directory to modify or apply specific configurations for end user hosts +- To list the nodes deployed via the `lab_vxlan.yml`: + + ```bash + containerlab inspect --name vxlan-evpn-irb + ```` + +- Example command to configure a VXLAN interface: + + ```bash + show bgp summary + ``` + + The configurations to apply on each node are listed [here](documentation/eos_configuration). ## Known Issues -On Alpine Linux hosts 1 and 2, it is necessary to install the vlan package: +To install the VLAN package on Alpine Linux hosts 1 and 2, follow these steps: ```bash apk add vlan diff --git a/documentation/assets/images/VXLAN.svg b/documentation/assets/images/VXLAN.svg new file mode 100644 index 0000000..e993d98 --- /dev/null +++ b/documentation/assets/images/VXLAN.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: 65101
AS: 65101
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/documentation/eos configuration/leaf1.md b/documentation/eos_configuration/leaf1.md similarity index 100% rename from documentation/eos configuration/leaf1.md rename to documentation/eos_configuration/leaf1.md diff --git a/documentation/eos configuration/leaf2.md b/documentation/eos_configuration/leaf2.md similarity index 100% rename from documentation/eos configuration/leaf2.md rename to documentation/eos_configuration/leaf2.md diff --git a/documentation/eos configuration/spine1.md b/documentation/eos_configuration/spine1.md similarity index 100% rename from documentation/eos configuration/spine1.md rename to documentation/eos_configuration/spine1.md diff --git a/lab_vxlan.yml b/lab_vxlan.yml index 29df629..704dc40 100644 --- a/lab_vxlan.yml +++ b/lab_vxlan.yml @@ -1,4 +1,4 @@ -name: vxlan-evpn-l2 +name: vxlan-evpn-irb topology: nodes: spine1: