Skip to content

Commit 592f5f6

Browse files
Adding EVPN VXLAN Dual DC Labs (#18)
* adding a dual DC EVPN L3 GW Lab files * adding a dual DC EVPN Multi domain lab v0.1 * adding a dual DC EVPN Multi domain lab v0.2 * mkdocs update dual dc
1 parent 3802e4e commit 592f5f6

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+2038
-0
lines changed
1.05 MB
Loading

docs/index.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,20 @@ The repository currently contains the following prebuilt labs.
5656

5757
![Figure avd_asym_multihoming](./images/sa_sym_mh_v2.png)
5858

59+
??? example "EVPN VXLAN Dual DC L3 Gateway"
60+
eBGP Overlay and eBGP Underlay
61+
62+
2 Spines + 2 MLAG Leaf Pairs + 2 Border Leaves + 4 Clients (per DC)
63+
64+
![Figure avd_dual_dc_l3_gw](./images/evpn-dual-dc-lab-colored.png)
65+
66+
??? example "EVPN VXLAN Dual DC Multi-Domain"
67+
eBGP Overlay and eBGP Underlay
68+
69+
2 Spines + 2 MLAG Leaf Pairs + 2 Border Leaves + 4 Clients (per DC)
70+
71+
![Figure avd_dual_dc_multi_domain](./images/evpn-dual-dc-lab-colored.png)
72+
5973
??? example "EVPN MPLS LDP All-Active Multihoming (L2EVPN)"
6074
iBGP Overlay and MPLS Underlay
6175

docs/labs/avd_dual_dc_l3_gw.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# EVPN VXLAN Dual DC L3 Gateway
2+
3+
## Lab Overview
4+
5+
| | |
6+
| ----------------------------- | -------------------------------------------------------------------------------- |
7+
| **Name** | evpnl3gw |
8+
| **Description** | eBGP Overlay and eBGP Underlay |
9+
| **Devices** | 2 Spines + 2 MLAG Leaf Pairs + 2 Border Leaves + 4 Clients (per DC) |
10+
| **Lab Directory** | `avd-cEOS-Lab/labs/evpn/avd_dual_dc_l3_gw` |
11+
12+
??? example "Reveal Topology"
13+
![Figure avd_dual_dc_l3_gw](../images/evpn-dual-dc-lab-colored.png)
14+
15+
## Deploy Lab
16+
17+
* Navigate to the lab directory
18+
19+
```bash
20+
cd avd-cEOS-Lab/labs/evpn/avd_dual_dc_l3_gw
21+
```
22+
23+
* Deploy the cEOS-lab containers.
24+
25+
```bash
26+
sudo containerlab deploy -t topology.yaml
27+
```
28+
29+
* Build and deploy the configuration to the switches using eAPI.
30+
31+
```bash
32+
ansible-playbook playbooks/fabric-deploy-config.yaml
33+
```
34+
35+
* Configure the alpine-host clients in DC1
36+
37+
```bash
38+
bash host_l3_config/dc1_l3_build.sh
39+
```
40+
41+
* Configure the alpine-host clients in DC2
42+
43+
```bash
44+
bash host_l3_config/dc2_l3_build.sh
45+
```
46+
47+
???+ info
48+
For detailed deployment and validation steps please refer to the commands and example in the Getting Started [guide](../quickStart.md).
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# EVPN VXLAN Dual DC Multi-Domain
2+
3+
## Lab Overview
4+
5+
| | |
6+
| ----------------------------- | -------------------------------------------------------------------------------- |
7+
| **Name** | evpnmultidomain |
8+
| **Description** | eBGP Overlay and eBGP Underlay |
9+
| **Devices** | 2 Spines + 2 MLAG Leaf Pairs + 2 Border Leaves + 4 Clients (per DC) |
10+
| **Lab Directory** | `avd-cEOS-Lab/labs/evpn/avd_dual_dc_multi_domain` |
11+
12+
??? example "Reveal Topology"
13+
![Figure avd_dual_dc_multi_domain](../images/evpn-dual-dc-lab-colored.png)
14+
15+
## Deploy Lab
16+
17+
* Navigate to the lab directory
18+
19+
```bash
20+
cd avd-cEOS-Lab/labs/evpn/avd_dual_dc_multi_domain
21+
```
22+
23+
* Deploy the cEOS-lab containers.
24+
25+
```bash
26+
sudo containerlab deploy -t topology.yaml
27+
```
28+
29+
* Build and deploy the configuration to the switches using eAPI.
30+
31+
```bash
32+
ansible-playbook playbooks/fabric-deploy-config.yaml
33+
```
34+
35+
* Configure the alpine-host clients in DC1
36+
37+
```bash
38+
bash host_l3_config/dc1_l3_build.sh
39+
```
40+
41+
* Configure the alpine-host clients in DC2
42+
43+
```bash
44+
bash host_l3_config/dc2_l3_build.sh
45+
```
46+
47+
???+ info
48+
For detailed deployment and validation steps please refer to the commands and example in the Getting Started [guide](../quickStart.md).

docs/releases/v3.1.4.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# v3.1.4
2+
3+
## Available Labs
4+
5+
| Lab | Underlay/Overlay Protocol | Nodes | Folder|
6+
| --- | ------------------------- | ------ | -----|
7+
| EVPN Symmetric IRB | (eBGP Overlay and eBGP Underlay) | (2 Spine + 2 MLAG Leaf Pair + 2 L2 leaf + 4 Clients) | \[`labs/evpn/avd_sym_irb/`\] |
8+
| EVPN Symmetric IRB | (iBGP Overlay and OSFP Underlay) | (2 Spine + 2 MLAG Leaf Pair + 4 Clients) | \[`labs/evpn/avd_sym_irb_ibgp`\] |
9+
| EVPN Asymmetric IRB | ( eBGP Overlay and eBGP Underlay ) | (2 Spine + 2 MLAG Leaf Pair + 4 Clients) | \[`labs/evpn/avd_asym_irb`\] |
10+
| EVPN Centralized Anycast Gateway | ( eBGP Overlay and eBGP Underlay ) | ( 2 spine + 1 MLAG Compute leaf pair + 1 MLAG Service Leaf pair + 4 Clients ) | \[`labs/evpn/avd_central_any_gw`\] |
11+
| EVPN VXLAN All-Active Multihoming Asymmetric IRB | (eBGP Overlay and eBGP Underlay) | 2 Spines + 4 PEs + 4 Clients | \[`/labs/evpn/avd_asym_multihoming`\]|
12+
| EVPN MPLS LDP All-Active Multihoming (L2EVPN) | (iBGP Overlay and MPLS Underlay) | (2 Ps + 4 PEs + 4 Clients) | \[`labs/mpls_ldp_evpn/mpls_ldp_l2evpn`\] |
13+
| EVPN VXLAN Dual DC L3 Gateway | (eBGP Overlay and eBGP Underlay) | 2 Spines + 2 MLAG Leaf Pairs + 2 Border Leaves + 4 Clients (per DC) | \[`/labs/evpn/avd_dual_dc_l3_gw`\]|
14+
| EVPN VXLAN Dual DC Multi-Domain | (eBGP Overlay and eBGP Underlay) | 2 Spines + 2 MLAG Leaf Pairs + 2 Border Leaves + 4 Clients (per DC) | \[`/labs/evpn/avd_dual_dc_multi_domain`\]|
15+
| EVPN All-Active Multihoming IRB with MPLS Underlay | (iBGP Overlay and MPLS Underlay) | 2 Ps + 4 PEs + 4 Clients) | \[`labs/mpls_ldp_evpn/mpls_evpn_irb`\] |
16+
| EVPN VXLAN Single-Active Multihoming Symmetric IRB | (eBGP Overlay and eBGP Underlay) | 2 Spines + 4 PEs + 4 Clients | \[`/labs/evpn/avd_sym_sa_multihoming`\]|
17+
18+
## Supported and Tested Versions
19+
20+
| Package | Version |
21+
| ----------- | ------- |
22+
| containerlab | 0.57.3 |
23+
| arista.avd | 4.10.2 |
24+
| arista.eos | 10.0.0 |
25+
| pyavd | 4.10.2 |
26+
27+
## Changes
28+
29+
* New documentation is now available **[here](https://arista-netdevops-community.github.io/avd-cEOS-Lab/)**.
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
.PHONY: help
2+
help: ## Display help message
3+
@grep -E '^[0-9a-zA-Z_-]+\.*[0-9a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
4+
5+
.PHONY: deploy
6+
deploy: ## Complete AVD & cEOS-Lab Deployment
7+
@echo -e "\n############### \e[1;30;42mStarting cEOS-Lab topology\e[0m ###############\n"
8+
@sudo containerlab deploy -t topology.yaml
9+
@echo -e "\n############### \e[1;30;42mGenerating and deploying switch configuration\e[0m ###############\n"
10+
@ansible-playbook playbooks/fabric-deploy-config.yaml --flush-cache
11+
@echo -e "\n############### \e[1;30;42mConfiguring client nodes\e[0m ###############\n"
12+
@bash host_l3_config/dc1_l3_build.sh
13+
@bash host_l3_config/dc2_l3_build.sh
14+
@echo -e "\n############### \e[1;30;42mcEOS-Lab Topology\e[0m ###############\n"
15+
@sudo containerlab inspect -t topology.yaml
16+
@echo -e "\n############### \e[1;30;42mcEOS-Lab Deployment Complete\e[0m ###############\n"
17+
18+
.PHONY: destroy
19+
destroy: ## Delete cEOS-Lab Deployment and AVD generated config and documentation
20+
@echo -e "\n############### \e[1;30;42mWiping nodes and deleting AVD configuration\e[0m ###############\n"
21+
@sudo containerlab destroy -t topology.yaml --cleanup
22+
@rm -rf .topology.yaml.bak config_backup/ snapshots/ reports/ documentation/ intended/ custom_anta_catalogs/
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
[defaults]
2+
host_key_checking = False
3+
inventory=./inventory.yaml
4+
gathering=explicit
5+
retry_files_enabled = False
6+
collections_paths = ../ansible-cvp:../ansible-avd:~/.ansible/collections:/usr/share/ansible/collections
7+
jinja2_extensions = jinja2.ext.loopcontrols,jinja2.ext.do,jinja2.ext.i18n
8+
duplicate_dict_key=error
9+
stdout_callback = yaml
10+
bin_ansible_callbacks = True
11+
deprecation_warnings=False
12+
13+
[persistent_connection]
14+
connect_timeout = 300
15+
command_timeout = 300
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
---
2+
fabric_name: AVD_FABRIC
3+
4+
underlay_routing_protocol: ebgp
5+
6+
overlay_routing_protocol: ebgp
7+
8+
evpn_vlan_aware_bundles: false
9+
10+
# bgp peer groups passwords
11+
bgp_peer_groups:
12+
ipv4_underlay_peers:
13+
password: "AQQvKeimxJu+uGQ/yYvv9w=="
14+
evpn_overlay_peers:
15+
password: "q+VNViP5i4rVjW1cxFv2wA=="
16+
mlag_ipv4_underlay_peer:
17+
password: "vnEaG8gMeQf3d3cN6PktXQ=="
18+
19+
# BGP defaults
20+
bgp_default_ipv4_unicast: false
21+
bgp_update_wait_install: false
22+
bgp_update_wait_for_convergence: false
23+
bgp_distance:
24+
external_routes: 20
25+
internal_routes: 200
26+
local_routes: 200
27+
28+
local_users:
29+
- name: admin
30+
privilege: 15
31+
role: network-admin
32+
sha512_password: "$6$7GTxsrRjnwheeKfR$zhJ8qycVjAJz41rf5JRSfWIzp93IL5WL7sMS/Taz1yfShz.MAnoajCf7R2n1/EZW7PN5QA3Huayl0lVQesBYN1"
33+
34+
name_servers:
35+
- 1.1.1.1
36+
- 8.8.8.8
37+
38+
ntp:
39+
servers:
40+
- name: time.google.com
41+
preferred: true
42+
vrf: MGMT
43+
iburst: true
44+
45+
service_routing_protocols_model: multi-agent
46+
47+
custom_structured_configuration_spanning_tree:
48+
mode: mstp
49+
50+
ip_routing: true
51+
52+
# hardcoding management0 for cEOS lab compatibility (default: Management1)
53+
mgmt_interface: Management0
54+
mgmt_gateway: 172.100.100.1
55+
mgmt_interface_vrf: MGMT
56+
57+
# Management eAPI | Required for this Lab
58+
custom_structured_configuration_management_api_http:
59+
https_ssl_profile: eAPI
60+
61+
# Management security required for SSL profile with strong ciphers
62+
custom_structured_configuration_management_security:
63+
ssl_profiles:
64+
- name: eAPI
65+
certificate:
66+
file: eAPI.crt
67+
key: eAPI.key
68+
cipher_list: 'HIGH:!eNULL:!aNULL:!MD5:!ADH:!ANULL'
69+
70+
# Management GNMI | Optional
71+
#management_api_gnmi:
72+
# enable_vrfs:
73+
# MGMT:
74+
# octa: true
75+
# provider: eos-native

0 commit comments

Comments
 (0)