diff --git a/docs/tutorials/l2evpn/evpn.md b/docs/tutorials/l2evpn/evpn.md index c4fc07f4..74160ae5 100644 --- a/docs/tutorials/l2evpn/evpn.md +++ b/docs/tutorials/l2evpn/evpn.md @@ -53,8 +53,8 @@ Then for each leaf we add a new BGP neighbor addressed by the remote `system0` i /network-instance default protocols bgp group iBGP-overlay { - export-policy all - import-policy all + export-policy [ all ] + import-policy [ all ] peer-as 100 afi-safi ipv4-unicast { admin-state disable @@ -84,8 +84,8 @@ Then for each leaf we add a new BGP neighbor addressed by the remote `system0` i /network-instance default protocols bgp group iBGP-overlay { - export-policy all - import-policy all + export-policy [ all ] + import-policy [ all ] peer-as 100 afi-safi ipv4-unicast { admin-state disable @@ -394,13 +394,13 @@ For your convenience, in case you want to jump over the config routines and star admin-state enable } group eBGP-underlay { - export-policy all - import-policy all + export-policy [ all ] + import-policy [ all ] peer-as 201 } group iBGP-overlay { - export-policy all - import-policy all + export-policy [ all ] + import-policy [ all ] peer-as 100 afi-safi ipv4-unicast { admin-state disable @@ -520,13 +520,13 @@ For your convenience, in case you want to jump over the config routines and star admin-state enable } group eBGP-underlay { - export-policy all - import-policy all + export-policy [ all ] + import-policy [ all ] peer-as 201 } group iBGP-overlay { - export-policy all - import-policy all + export-policy [ all ] + import-policy [ all ] peer-as 100 afi-safi ipv4-unicast { admin-state disable @@ -637,8 +637,8 @@ For your convenience, in case you want to jump over the config routines and star autonomous-system 201 router-id 10.0.1.1 group eBGP-underlay { - export-policy all - import-policy all + export-policy [ all ] + import-policy [ all ] } afi-safi ipv4-unicast { admin-state enable diff --git a/docs/tutorials/l2evpn/fabric.md b/docs/tutorials/l2evpn/fabric.md index 38b1ce60..d809f2e8 100644 --- a/docs/tutorials/l2evpn/fabric.md +++ b/docs/tutorials/l2evpn/fabric.md @@ -24,10 +24,9 @@ Let's start with configuring the IP interfaces on the inter-switch links to ensu On each leaf and spine we will bring up the relevant [interface](../../get-started/interface.md) and address its routed subinterface to achieve L3 connectivity. -We begin with connecting to the CLI of our nodes via SSH[^1]: +We begin with connecting to the CLI of our leaf1 node via SSH[^1]: ```bash -# connecting to leaf1 ssh clab-evpn01-leaf1 ``` @@ -301,10 +300,10 @@ Here is a breakdown of the steps that are needed to configure EBGP on `leaf1` to A:leaf1# peer-as 201 --{ +* candidate shared default }--[ network-instance default protocols bgp group eBGP-underlay ]-- - A:leaf1# export-policy all + A:leaf1# export-policy [ all ] --{ +* candidate shared default }--[ network-instance default protocols bgp group eBGP-underlay ]-- - A:leaf1# import-policy all + A:leaf1# import-policy [ all ] ``` 1. **Configure neighbor** @@ -330,8 +329,8 @@ Here is a breakdown of the steps that are needed to configure EBGP on `leaf1` to + autonomous-system 101 + router-id 10.0.0.1 + group eBGP-underlay { - + export-policy all - + import-policy all + + export-policy [ all ] + + import-policy [ all ] + peer-as 201 + } + afi-safi ipv4-unicast { @@ -370,8 +369,8 @@ network-instance default { autonomous-system 101 router-id 10.0.0.1 group eBGP-underlay { - export-policy all - import-policy all + export-policy [ all ] + import-policy [ all ] peer-as 201 } afi-safi ipv4-unicast { @@ -403,8 +402,8 @@ network-instance default { autonomous-system 102 router-id 10.0.0.2 group eBGP-underlay { - export-policy all - import-policy all + export-policy [ all ] + import-policy [ all ] peer-as 201 } afi-safi ipv4-unicast { @@ -437,8 +436,8 @@ network-instance default { autonomous-system 201 router-id 10.0.1.1 group eBGP-underlay { - export-policy all - import-policy all + export-policy [ all ] + import-policy [ all ] } afi-safi ipv4-unicast { admin-state enable @@ -776,8 +775,8 @@ set / network-instance default protocols bgp set / network-instance default protocols bgp autonomous-system 101 set / network-instance default protocols bgp router-id 10.0.0.1 set / network-instance default protocols bgp group eBGP-underlay -set / network-instance default protocols bgp group eBGP-underlay export-policy all -set / network-instance default protocols bgp group eBGP-underlay import-policy all +set / network-instance default protocols bgp group eBGP-underlay export-policy [ all ] +set / network-instance default protocols bgp group eBGP-underlay import-policy [ all ] set / network-instance default protocols bgp group eBGP-underlay peer-as 201 set / network-instance default protocols bgp afi-safi ipv4-unicast set / network-instance default protocols bgp afi-safi ipv4-unicast admin-state enable @@ -824,8 +823,8 @@ set / network-instance default protocols bgp set / network-instance default protocols bgp autonomous-system 102 set / network-instance default protocols bgp router-id 10.0.0.2 set / network-instance default protocols bgp group eBGP-underlay -set / network-instance default protocols bgp group eBGP-underlay export-policy all -set / network-instance default protocols bgp group eBGP-underlay import-policy all +set / network-instance default protocols bgp group eBGP-underlay export-policy [ all ] +set / network-instance default protocols bgp group eBGP-underlay import-policy [ all ] set / network-instance default protocols bgp group eBGP-underlay peer-as 201 set / network-instance default protocols bgp afi-safi ipv4-unicast set / network-instance default protocols bgp afi-safi ipv4-unicast admin-state enable @@ -877,8 +876,8 @@ set / network-instance default protocols bgp set / network-instance default protocols bgp autonomous-system 201 set / network-instance default protocols bgp router-id 10.0.1.1 set / network-instance default protocols bgp group eBGP-underlay -set / network-instance default protocols bgp group eBGP-underlay export-policy all -set / network-instance default protocols bgp group eBGP-underlay import-policy all +set / network-instance default protocols bgp group eBGP-underlay export-policy [ all ] +set / network-instance default protocols bgp group eBGP-underlay import-policy [ all ] set / network-instance default protocols bgp afi-safi ipv4-unicast set / network-instance default protocols bgp afi-safi ipv4-unicast admin-state enable set / network-instance default protocols bgp neighbor 192.168.11.1 @@ -893,6 +892,8 @@ commit now /// +**[:octicons-arrow-right-24: Next: EVPN Configuration](evpn.md)** + [^1]: default SR Linux credentials are `admin:NokiaSrl1!`. [^2]: the snippets were extracted with `info interface ethernet-1/x` command issued in running mode. [^3]: you can paste those snippets right after you do `enter candidate` diff --git a/docs/tutorials/l2evpn/intro.md b/docs/tutorials/l2evpn/intro.md index d2109c86..b6755a3a 100644 --- a/docs/tutorials/l2evpn/intro.md +++ b/docs/tutorials/l2evpn/intro.md @@ -15,7 +15,7 @@ tags: | **Lab name** | evpn01 | | **Packet captures** | [EVPN IMET routes exchange][capture-imets], [RT2 routes exchange with ICMP in datapath][capture-rt2-datapath] | | **Main ref documents** | [RFC 7432 - BGP MPLS-Based Ethernet VPN](https://datatracker.ietf.org/doc/html/rfc7432)
[RFC 8365 - A Network Virtualization Overlay Solution Using Ethernet VPN (EVPN)](https://datatracker.ietf.org/doc/html/rfc8365)
[Nokia 7220 SR Linux Advanced Solutions Guide][adv-sol-guide-evpn-l2]
[Nokia 7220 SR Linux EVPN-VXLAN Guide][evpn-vxlan-guide] | -| **Version information**[^1] | [`containerlab:0.48.6`][clab-install], [`srlinux:23.10.1`][srlinux-container], [`docker-ce:23.0.3`][docker-install] | +| **Version information**[^1] | [`containerlab:0.71.1`][clab-install], [`srlinux:25.10`][srlinux-container], [`docker-ce:27.5.1`][docker-install] | Ethernet Virtual Private Network (EVPN) is a standard technology in multi-tenant Data Centers (DCs) and provides a control plane framework for many functions. In this tutorial we will configure a **VXLAN based Layer 2 EVPN service**[^3] in a tiny CLOS fabric and at the same get to know SR Linux better! @@ -46,23 +46,27 @@ The [containerlab file][topofile] that describes the lab topology is referenced Save[^2] the contents of this file under `evpn01.clab.yml` name and you are ready to deploy: ``` -$ containerlab deploy -t evpn01.clab.yml +containerlab deploy -t evpn01.clab.yml +``` + +
+```{.text .no-copy .no-select} INFO[0000] Containerlab v0.48.6 started -INFO[0000] Parsing & checking topology file: evpn01.clab.yml -INFO[0005] Creating lab directory: /root/srl-labs/learn-srlinux/clab-evpn01 +INFO[0000] Parsing & checking topology file: evpn01.clab.yml +INFO[0005] Creating lab directory: /root/srl-labs/learn-srlinux/clab-evpn01 INFO[0005] Creating container: "srv2" INFO[0005] Creating container: "srv1" INFO[0005] Creating container: "spine1" INFO[0005] Creating container: "leaf1" INFO[0005] Creating container: "leaf2" -INFO[0006] Creating virtual wire: srv2:eth1 <--> leaf2:e1-1 -INFO[0006] Creating virtual wire: leaf2:e1-49 <--> spine1:e1-2 -INFO[0006] Creating virtual wire: leaf1:e1-49 <--> spine1:e1-1 -INFO[0006] Creating virtual wire: srv1:eth1 <--> leaf1:e1-1 -INFO[0007] Running postdeploy actions for Nokia SR Linux 'spine1' node -INFO[0007] Running postdeploy actions for Nokia SR Linux 'leaf1' node -INFO[0007] Running postdeploy actions for Nokia SR Linux 'leaf2' node -INFO[0021] Adding containerlab host entries to /etc/hosts file +INFO[0006] Creating virtual wire: srv2:eth1 <--> leaf2:e1-1 +INFO[0006] Creating virtual wire: leaf2:e1-49 <--> spine1:e1-2 +INFO[0006] Creating virtual wire: leaf1:e1-49 <--> spine1:e1-1 +INFO[0006] Creating virtual wire: srv1:eth1 <--> leaf1:e1-1 +INFO[0007] Running postdeploy actions for Nokia SR Linux 'spine1' node +INFO[0007] Running postdeploy actions for Nokia SR Linux 'leaf1' node +INFO[0007] Running postdeploy actions for Nokia SR Linux 'leaf2' node +INFO[0021] Adding containerlab host entries to /etc/hosts file +---+--------------------+--------------+---------------------------------+---------------+---------+----------------+----------------------+ | # | Name | Container ID | Image | Kind | State | IPv4 Address | IPv6 Address | +---+--------------------+--------------+---------------------------------+---------------+---------+----------------+----------------------+ @@ -73,20 +77,24 @@ INFO[0021] Adding containerlab host entries to /etc/hosts file | 5 | clab-evpn01-srv2 | 2a63a6135a9c | ghcr.io/hellt/network-multitool | linux | running | 172.20.20.5/24 | 2001:172:20:20::5/64 | +---+--------------------+--------------+---------------------------------+---------------+---------+----------------+----------------------+ ``` +
A few seconds later containerlab finishes the deployment with providing a summary table that outlines connection details of the deployed nodes. In the "Name" column we have the names of the deployed containers and those names can be used to reach the nodes, for example to connect to the SSH of `leaf1`: ```bash -# default credentials admin:NokiaSrl1! -ssh clab-evpn01-leaf1 +ssh clab-evpn01-leaf1 #(1)! ``` +1. Default credentials `admin:NokiaSrl1!` + With the lab deployed we are ready to embark on our learn-by-doing EVPN configuration journey! /// note We advise the newcomers not to skip the [Configuration Basics Guide][conf-basics-guide] as it provides just enough details to survive in the configuration waters we are about to get in. /// +**[:octicons-arrow-right-24: Next: Fabric Configuration](fabric.md)** + [topofile]: https://github.com/srl-labs/learn-srlinux/blob/master/labs/evpn01.clab.yml [clab-install]: https://containerlab.srlinux.dev/install/ [srlinux-container]: https://github.com/orgs/nokia/packages/container/package/srlinux diff --git a/labs/evpn01.clab.yml b/labs/evpn01.clab.yml index 97045243..ba394496 100644 --- a/labs/evpn01.clab.yml +++ b/labs/evpn01.clab.yml @@ -3,20 +3,20 @@ name: evpn01 topology: kinds: nokia_srlinux: - image: ghcr.io/nokia/srlinux:23.10.1 + image: ghcr.io/nokia/srlinux:25.10 linux: - image: ghcr.io/hellt/network-multitool + image: ghcr.io/srl-labs/network-multitool:latest nodes: leaf1: kind: nokia_srlinux - type: ixrd2 + type: ixr-d2 leaf2: kind: nokia_srlinux - type: ixrd2 + type: ixr-d2 spine1: kind: nokia_srlinux - type: ixrd3 + type: ixr-d3 srv1: kind: linux exec: