This lab use part of the Arista Spine and Leaf topology I have created in GNS3. Specifically, I will only be using three switches. One spine and two leaf switches. I have chosen this to get a good understanding of the core concepts of VXLAN, HER and EVPN.

This is the basic VXLAN topology that I will use to demonstrate the VXLAN configuration and how to get the hosts to communicate. I will be using two methods;
 – Head End Replication
 – EVPN
Head End Replication Or EVPN?
There are differences between VXLAN Head End Replication and EVPN (Ethernet Virtual Private Network). Mainly flooding on the part of HER. I like to think of the difference between the two like multicast sparse mode and dense mode.
EVPN (Ethernet Virtual Private Network) used MAC and ARP learning that allows EVPN to provide a distributed control plane from MAC and ARP learning across the DC fabric. It allows each VTEP to only learn about the MAC addresses and ARP entries associated with specific VXLAN segments.
It avoids unnecessary flooding of BUM traffic to all VTEPs by leveraging the MAC and ARP information learned through the control plane.
This is different to how Head End Replication works which uses flood and learn behaviour. When a VTEP receives a packet with an unknown destination MAC address, it floods the packet to all other VTEPs in the overlay network. The destination VTEP then learns the location of the MAC address and installs an entry in its forwarding table. This may causes scalability issues as a topology grows larger
Configuration
For this lab I have used vEOS 4.26.2F
Device configuration will be in stages to confirm each step as we go. For the complete device configs, go here. And for individual config section, see links below.
Underlay Configuration
VTEP Configuration
VXLAN Head End Replication Layer 2
VXLAN Head End Replication Layer 3
VXLAN EVPN – No VRF
VXLAN EVPN – With VRF
VRF Route Leaking
IP Addressing Scheme
| Switch | Eth1 (eBGP UL) | Eth2 (eBGP UL) | Lo0 (BGP EVPN) | Lo1 (VTEP) | VLAN11 | VLAN12 | VLAN20 | VLAN30 | 
|---|---|---|---|---|---|---|---|---|
| Spine1 | 10.1.11.0/31 | 10.1.12.0/31 | 10.10.10.1/32 | – | – | – | – | – | 
| Leaf1 | 10.1.11.1/31 | 10.2.11.1/31 (Spine 2) | 10.10.10.11/32 | 172.20.1.1/32 | 10.10.11.254/24 | 192.168.12.254/24 | 192.168.20.1/24 | 192.168.30.1/24 | 
| Leaf2 | 10.1.12.1/31 | 10.2.12.1/31 (Spine 2) | 10.10.10.12/32 | 172.20.2.2/32 | 10.10.11.254/24 | 192.168.12.254/24 | 192.168.20.1/24 | 192.168.30.1/24 | 
Underlay
The underlay is using eBGP. There are several different designs for the underlay, which I am not going to get into here. My understanding is that eBGP is the most flexible and widest used. I have a discussed other options in a design guide.
Spine 1
| 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | interface Ethernet1    description LINK to LEAF1.LAB    mtu 9200    logging event link-status    no switchport    ip address 10.1.11.0/31    arp aging timeout 1200 interface Ethernet2    description LINK to LEAF2.LAB    mtu 9200    logging event link-status    no switchport    ip address 10.1.12.0/31    arp aging timeout 1200 !!! Check basic IP Connectivity !!!  interface Loopback0    description MANAGEMENT    ip address 10.10.10.1/32 router bgp 65000    router-id 10.10.10.1    distance bgp 20 200 200    neighbor LEAFS65111 peer group    neighbor LEAFS65111 remote-as 65111    neighbor 10.1.11.1 peer group LEAFS65111    neighbor 10.1.11.1 description LEAF1.LAB    !    neighbor LEAFS65112 peer group    neighbor LEAFS65112 remote-as 65112    neighbor 10.1.12.1 peer group LEAFS65112    neighbor 10.1.12.1 description LEAF2.LAB | 
Leaf 1
| 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | interface Ethernet1    description LINK to SPINE1.LAB    mtu 9200    logging event link-status    no switchport    ip address 10.1.11.1/31    arp aging timeout 1200 interface Ethernet2    description LINK to SPINE2.LAB    mtu 9200    logging event link-status    no switchport    ip address 10.2.11.1/31    arp aging timeout 1200 !!! Check basic IP Connectivity !!!  interface Loopback0    description MANAGEMENT    ip address 10.10.10.11/32 router bgp 65111    router-id 10.10.10.11    distance bgp 20 200 200    neighbor SPINE peer group    neighbor SPINE remote-as 65000    neighbor 10.1.11.0 peer group SPINE    neighbor 10.1.11.0 description SPINE1.LAB    neighbor 10.2.11.0 peer group SPINE    neighbor 10.2.11.0 description SPINE2.LAB    redistribute connected | 
Leaf 2
| 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | interface Ethernet1    description LINK to SPINE1.LAB    mtu 9200    logging event link-status    no switchport    ip address 10.1.12.1/31    arp aging timeout 1200 interface Ethernet2    description LINK to SPINE2.LAB    mtu 9200    logging event link-status    no switchport    ip address 10.2.12.1/31    arp aging timeout 1200 !!! Check basic IP Connectivity !!!  interface Loopback0    ip address 10.10.10.12/32 router bgp 65112    router-id 10.10.10.12    distance bgp 20 200 200    neighbor SPINE peer group    neighbor SPINE remote-as 65000    neighbor 10.1.12.0 peer group SPINE    neighbor 10.1.12.0 description SPINE1.LAB    neighbor 10.2.12.0 peer group SPINE    neighbor 10.2.12.0 description SPINE2.LAB    redistribute connected | 
Testing Commands
| 0 1 2 3 | sh ip bgp summary sh ip route | 
VTEP
Leaf 1
| 0 1 2 3 4 5 6 7 8 | interface Loopback1    description LOGICAL VTEP    ip address 172.20.1.1/32 router bgp 65111    router-id 10.10.10.11    network 172.20.1.1/32 | 
Leaf 2
| 0 1 2 3 4 5 6 7 8 | interface Loopback1    description LOGICAL VTEP    ip address 172.20.2.2/32 ! router bgp 65112    router-id 10.10.10.12    network 172.20.2.2/32 | 
VXLAN Head End Replication (HER) Layer 2
There is a template to follow the VXLAN config that is below, this is specifically for HER – Head End Replication.
| 0 1 2 3 4 5 6 | interface Vxlan1  vxlan source-interface Loopback1  vxlan udp-port 4789  vxlan vlan [VLAN-NUM] vni [VNI-NUM]  vxlan vlan [VLAN-NUM] flood vtep [VTEP1ADD] [VTEP2ADD] [VTEP3ADD] | 
Leaf 1
| 0 1 2 3 4 5 6 | interface Vxlan1    vxlan source-interface Loopback1    vxlan udp-port 4789    vxlan vlan 12 vni 55512    vxlan vlan 12 flood vtep 172.20.2.2 | 
Leaf 2
| 0 1 2 3 4 5 6 | interface Vxlan1    vxlan source-interface Loopback1    vxlan udp-port 4789    vxlan vlan 12 vni 55512    vxlan vlan 12 flood vtep 172.20.1.1 | 
Testing
This is for VLAN 12 only and therefore is layer 2 only. No SVIs are required.
| 0 1 2 3 4 5 | sh vlan id 12 sh run int vxlan 1 show ip int br show mac address-table vlan 12 | 
| 0 1 2 3 4 5 6 7 8 9 10 | leaf1(config-if-Vx1)#show mac address-table vlan 12           Mac Address Table ------------------------------------------------------------------ Vlan    Mac Address       Type        Ports      Moves   Last Move ----    -----------       ----        -----      -----   ---------   12    0cb0.c91c.5600    DYNAMIC     Et10       1       0:03:13 ago   12    0cb0.c999.0000    DYNAMIC     Vx1        1       0:00:06 ago Total Mac Addresses for this criterion: 2 | 
| 0 1 2 3 4 5 6 7 8 9 10 | leaf2(config-if-Vx1)#show mac address-table vlan 12           Mac Address Table ------------------------------------------------------------------ Vlan    Mac Address       Type        Ports      Moves   Last Move ----    -----------       ----        -----      -----   ---------   12    0cb0.c91c.5600    DYNAMIC     Vx1        1       0:00:10 ago   12    0cb0.c999.0000    DYNAMIC     Et10       1       0:00:10 ago Total Mac Addresses for this criterion: 2 | 


VXLAN Head End Replication (HER) Layer 3
Leaf 1
| 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | vlan 11    name LEAF1VLAN ! interface Ethernet11    description PC140    switchport access vlan 11 interface Vxlan1    !vxlan source-interface Loopback1    !vxlan udp-port 4789    vxlan vlan 11 vni 10011    vxlan vlan 11 flood vtep 172.20.2.2 interface Vlan11    no autostate    ip address virtual 10.10.11.254/24 interface Vlan12    no autostate    ip address virtual 192.168.12.254/24 ip virtual-router mac-address 00:00:00:00:aa:aa | 
Leaf 2
| 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | vlan 11    name LEAF1VLAN interface Vxlan1    !vxlan source-interface Loopback1    !vxlan udp-port 4789    vxlan vlan 11 vni 10011    vxlan vlan 11 flood vtep 172.20.1.1 interface Vlan11    no autostate    ip address virtual 10.10.11.254/24 interface Vlan12    no autostate    ip address virtual 192.168.12.254/24 ip virtual-router mac-address 00:00:00:00:aa:aa | 
Testing
Traffic from VLAN 11 to VLAN 12 going via Spine 1 VXLAN encapsulated from Leaf 1 to Leaf 2 and also interVLAN routing on Leaf 1.
| 0 1 2 3 4 | leaf1(config)#sh int status | i 11|12 Et10       PC110              connected    12       full   1G     EbraTestPhyPort Et11       PC140              connected    11       full   1G     EbraTestPhyPort | 
| 0 1 2 3 | leaf2(config)#sh int status | i 12 Et10       PC210              connected    12       full   1G     EbraTestPhyPort | 
| 0 1 2 3 4 5 6 7 8 | leaf1(config-if-Vx1)#show ip arp 192.168.12.201 Address         Age (sec)  Hardware Addr   Interface 192.168.12.201    0:02:01  0cb0.c999.0000  Vlan12, Vxlan1 leaf2(config)#show ip arp 192.168.12.201 Address         Age (sec)  Hardware Addr   Interface 192.168.12.201    1:48:06  0cb0.c999.0000  Vlan12, Ethernet10 | 


VXLAN EVPN No VRF
Any HER configuration needs to be removed on the VXLAN interface. EVPN must also be enabled using a service command.
| 0 1 2 3 | no interface vxlan 1 service routing protocols model multi-agent | 
This example creates a two VLANs 11 and 12 in the same way as HER did, but this time using EVPN. I had a few issues with this config.
 – I needed to redistribute connected into Spine 1 BGP
 – I did not use the command no bgp default ipv4-unicast on the leaf switches
Both of these commands would cause the BGP neighbourships to fail.
Spine 1
| 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | router bgp 65000    neighbor EVPN peer group    neighbor EVPN next-hop-unchanged    neighbor EVPN update-source Loopback0    neighbor EVPN ebgp-multihop 3    neighbor EVPN send-community extended    !    neighbor 10.10.10.11 peer group EVPN    neighbor 10.10.10.11 remote-as 65111    neighbor 10.10.10.11 description LEAF1    neighbor 10.10.10.12 peer group EVPN    neighbor 10.10.10.12 remote-as 65112    neighbor 10.10.10.12 description LEAF2    redistribute connected     address-family evpn       neighbor EVPN activate | 
Leaf 1
| 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | router bgp 65111    neighbor EVPN peer group    neighbor EVPN remote-as 65000    neighbor EVPN update-source Loopback0    neighbor EVPN ebgp-multihop 3    neighbor EVPN send-community extended    neighbor 10.10.10.1 peer group EVPN    neighbor 10.10.10.1 description SPINE1.LAB    neighbor 10.10.10.2 peer group EVPN    neighbor 10.10.10.2 description SPINE2.LAB    !     address-family evpn       neighbor EVPN activate interface Vxlan1    vxlan source-interface Loopback1    vxlan udp-port 4789    vxlan vlan 11 vni 10011    vxlan vlan 12 vni 10012 ! router bgp 65111  vlan 11       rd 65111:10011       route-target both 11:10011       redistribute learned  vlan 12       rd 65111:10012       route-target both 12:10012       redistribute learned vlan 11 vlan 12 interface Vlan11    no autostate    ip address virtual 10.10.11.254/24 interface Vlan12    no autostate    ip address virtual 192.168.12.254/24 | 
Leaf 2
| 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | router bgp 65112    !no bgp default ipv4-unicast    neighbor EVPN peer group    neighbor EVPN remote-as 65000    neighbor EVPN update-source Loopback0    neighbor EVPN ebgp-multihop 3    neighbor EVPN send-community extended    neighbor 10.10.10.1 peer group EVPN    neighbor 10.10.10.1 description SPINE1.LAB    neighbor 10.10.10.2 peer group EVPN    neighbor 10.10.10.2 description SPINE2.LAB    !     address-family evpn       neighbor EVPN activate interface Vxlan1    vxlan source-interface Loopback1    vxlan udp-port 4789    vxlan vlan 11 vni 10011    vxlan vlan 12 vni 10012 ! router bgp 65112  vlan 11       rd 65112:10011       route-target both 11:10011       redistribute learned  vlan 12       rd 65112:10012       route-target both 12:10012       redistribute learned vlan 11 vlan 12 interface Vlan11    no autostate    ip address virtual 10.10.11.254/24 interface Vlan12    no autostate    ip address virtual 192.168.12.254/24 | 
Testing
| 0 1 2 3 4 5 | show vxlan vtep show ip bgp summary sh bgp evpn summary show bgp evpn route-type mac-ip | 
BGP EVPN Capture shows the BGP networks that are shared, as well as the fact that EVPN is being used.

Each leaf switch has learnt the routes via BGP for the remote hosts. The hosts that are local are also listed and are denoted with “i” for their path.
| 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | leaf1(config-if-Et10)#sh bgp evpn route-type mac-ip BGP routing table information for VRF default Router identifier 10.10.10.11, local AS number 65111 Route status codes: s - suppressed, * - valid, > - active, E - ECMP head, e - ECMP                     S - Stale, c - Contributing to ECMP, b - backup                     % - Pending BGP convergence Origin codes: i - IGP, e - EGP, ? - incomplete AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop           Network                Next Hop              Metric  LocPref Weight  Path  * >     RD: 65111:10012 mac-ip 0cb0.c91c.5600                                  -                     -       -       0       i  * >     RD: 65111:10012 mac-ip 0cb0.c91c.5600 192.168.12.101                                  -                     -       -       0       i  * >     RD: 65112:10012 mac-ip 0cb0.c999.0000                                  172.20.2.2            -       100     0       65000 65112 i  * >     RD: 65112:10012 mac-ip 0cb0.c999.0000 192.168.12.201                                  172.20.2.2            -       100     0       65000 65112 i  * >     RD: 65111:10011 mac-ip 0cb0.c9f5.fa00                                  -                     -       -       0       i  * >     RD: 65111:10011 mac-ip 0cb0.c9f5.fa00 10.10.11.101                                  -                     -       -       0       i | 
| 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | leaf2(config-macvrf-12)#sh bgp evpn route-type mac-ip BGP routing table information for VRF default Router identifier 10.10.10.12, local AS number 65112 Route status codes: s - suppressed, * - valid, > - active, E - ECMP head, e - ECMP                     S - Stale, c - Contributing to ECMP, b - backup                     % - Pending BGP convergence Origin codes: i - IGP, e - EGP, ? - incomplete AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop           Network                Next Hop              Metric  LocPref Weight  Path  * >     RD: 65111:10012 mac-ip 0cb0.c91c.5600                                  172.20.1.1            -       100     0       65000 65111 i  * >     RD: 65111:10012 mac-ip 0cb0.c91c.5600 192.168.12.101                                  172.20.1.1            -       100     0       65000 65111 i  * >     RD: 65112:10012 mac-ip 0cb0.c999.0000                                  -                     -       -       0       i  * >     RD: 65112:10012 mac-ip 0cb0.c999.0000 192.168.12.201                                  -                     -       -       0       i | 
VXLAN EVPN With VRF
As we already have the VLANs configured, the VRF can just be added in.
Leaf 1
| 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | vrf instance CUSTOMER1 ip routing vrf CUSTOMER1 vlan 20 vlan 30 ! Only require SVI on switches that need them interface Vlan20    no autostate    vrf CUSTOMER1    ip address virtual 192.168.20.1/24 interface Vlan30    no autostate    vrf CUSTOMER1    ip address virtual 192.168.30.1/24 ! VLANs are required if SVIs are not there are are not in a VRF interface Vxlan1    vxlan vlan 20 vni 10020    vxlan vlan 30 vni 10030    vxlan vrf CUSTOMER1 vni 20120 router bgp 65111  vlan 20       rd 10.10.10.11:20       route-target both 20:20       redistribute learned  vlan 30       rd 10.10.10.11:30       route-target both 30:30       redistribute learned  vrf CUSTOMER1       rd 10.10.10.11:20120       !route-target import 20:120       route-target import evpn 20:120       route-target export evpn 20:120       !route-target import 30:130       route-target import evpn 30:130       route-target export evpn 30:130       redistribute connected | 
Leaf 2
| 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | vrf instance CUSTOMER1 ip routing vrf CUSTOMER1 vlan 20 vlan 30 ! Only require SVI on switches that need them interface Vlan20    no autostate    vrf CUSTOMER1    ip address virtual 192.168.20.1/24 interface Vlan30    no autostate    vrf CUSTOMER1    ip address virtual 192.168.30.1/24 ! VLANs are required if SVIs are not there are are not in a VRF interface Vxlan1    vxlan vlan 20 vni 10020    vxlan vlan 30 vni 10030    vxlan vrf CUSTOMER1 vni 20120 router bgp 65112  vlan 20       rd 10.10.10.12:20       route-target both 20:20       redistribute learned  vlan 30       rd 10.10.10.12:30       route-target both 30:30       redistribute learned  !  vrf CUSTOMER1       rd 10.10.10.12:20120       route-target import evpn 20:120       route-target export evpn 20:120       route-target import evpn 30:130       route-target export evpn 30:130       redistribute connected | 
Testing
As there is a VRF for these networks, it is easier to see the routes in a neater way.
| 0 1 2 3 4 5 6 | sh ip route vrf CUSTOMER1 show vxlan vtep show ip bgp summary sh bgp evpn summary show bgp evpn route-type mac-ip | 
| 0 1 2 3 4 5 6 7 8 9 | leaf1(config-if-Et12)#sh ip route vrf CUSTOMER1 VRF: CUSTOMER1 Gateway of last resort is not set  C        192.168.20.0/24 is directly connected, Vlan20  B E      192.168.30.201/32 [20/0] via VTEP 172.20.2.2 VNI 20120 router-mac 0c:b0:c9:1e:ed:dd local-interface Vxlan1  C        192.168.30.0/24 is directly connected, Vlan30 | 
The MAC address in the BGP route matches that of the local VXLAN interface
| 0 1 2 3 4 5 6 7 8 9 | leaf1(config-if-Et12)#sh mac address-table address 0cb0.c91e.eddd           Mac Address Table ------------------------------------------------------------------ Vlan    Mac Address       Type        Ports      Moves   Last Move ----    -----------       ----        -----      -----   --------- 4094    0cb0.c91e.eddd    DYNAMIC     Vx1        1       0:26:23 ago Total Mac Addresses for this criterion: 1 | 
| 0 1 2 3 4 5 6 7 8 9 10 | leaf2#sh ip route vrf CUSTOMER1 VRF: CUSTOMER1 Gateway of last resort is not set  B E      192.168.20.101/32 [20/0] via VTEP 172.20.1.1 VNI 20120 router-mac 0c:b0:c9:11:12:c9 local-interface Vxlan1  C        192.168.20.0/24 is directly connected, Vlan20  C        192.168.30.0/24 is directly connected, Vlan30 | 
The MAC address in the BGP route matches that of the local VXLAN interface, the same for leaf 2 as leaf 1
| 0 1 2 3 4 5 6 7 8 9 | leaf2#sh mac address-table address 0cb0.c911.12c9           Mac Address Table ------------------------------------------------------------------ Vlan    Mac Address       Type        Ports      Moves   Last Move ----    -----------       ----        -----      -----   --------- 4094    0cb0.c911.12c9    DYNAMIC     Vx1        1       0:30:12 ago Total Mac Addresses for this criterion: 1 | 
VRF Route Leaking
Route leaking is allowing routes from one VRF to be added to another. This is useful for shared services. So all VRFs can have access to a default gateway or other services. In this example, I have simply added a new VRF to leaf 1 with two new VLANs (21 and 31). I have then permitted VLAN 20 into VRF CUSTOMER2 and VLAN 21 into VRF CUSTOMER1, allowing them to communicate, whilst being in different VRFs.
Leaf 1
Create the new VRF
| 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | vrf instance CUSTOMER2 ip routing vrf CUSTOMER2 vlan 21 vlan 31 ! Only require SVI on switches that need them interface Vlan21    no autostate    vrf CUSTOMER2    ip address virtual 192.168.21.1/24 interface Vlan31    no autostate    vrf CUSTOMER2    ip address virtual 192.168.31.1/24 ! VLANs are required if SVIs are not there are are not in a VRF interface Vxlan1    vxlan vlan 21 vni 10021    vxlan vlan 31 vni 10031    vxlan vrf CUSTOMER2 vni 20121 router bgp 65111  vlan 21       rd 10.10.10.11:21       route-target both 21:21       redistribute learned  vlan 31       rd 10.10.10.11:31       route-target both 31:31       redistribute learned  !  vrf CUSTOMER2       rd 10.10.10.12:20121       route-target import evpn 21:121       route-target export evpn 21:121       route-target import evpn 31:131       route-target export evpn 31:131       redistribute connected | 
Import the routes into the VRFs
| 0 1 2 3 4 5 6 7 | router bgp 65111  vrf CUSTOMER1       route-target import evpn 21:121  vrf CUSTOMER2       route-target import evpn 20:120 | 
Completed Configurations
Spine 1
| 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | spine1(config-router-bgp-af)#sh run ! Command: show running-config ! device: spine1 (vEOS-lab, EOS-4.26.8M) ! ! boot system flash:/vEOS-lab.swi ! no aaa root ! transceiver qsfp default-mode 4x10G ! service routing protocols model multi-agent ! hostname spine1 ! spanning-tree mode mstp ! interface Ethernet1    description LINK to LEAF1.LAB    mtu 9200    logging event link-status    no switchport    ip address 10.1.11.0/31    arp aging timeout 1200 ! interface Ethernet2    description LINK to LEAF2.LAB    mtu 9200    logging event link-status    no switchport    ip address 10.1.12.0/31    arp aging timeout 1200 ! interface Ethernet3 ! interface Ethernet4 ! interface Ethernet5 ! interface Ethernet6 ! interface Ethernet7 ! interface Ethernet8 ! interface Ethernet9 ! interface Ethernet10 ! interface Ethernet11 ! interface Ethernet12 ! interface Loopback0    description MANAGEMENT    ip address 10.10.10.1/32 ! interface Management1    ip address 172.17.3.101/24 ! ip routing ! ip route 0.0.0.0/0 172.17.3.254 ! router bgp 65000    router-id 10.10.10.1    distance bgp 20 200 200    neighbor EVPN peer group    neighbor EVPN next-hop-unchanged    neighbor EVPN update-source Loopback0    neighbor EVPN ebgp-multihop 3    neighbor EVPN send-community extended    neighbor LEAFS65111 peer group    neighbor LEAFS65111 remote-as 65111    neighbor LEAFS65112 peer group    neighbor LEAFS65112 remote-as 65112    neighbor 10.1.11.1 peer group LEAFS65111    neighbor 10.1.11.1 description LEAF1.LAB    neighbor 10.1.12.1 peer group LEAFS65112    neighbor 10.1.12.1 description LEAF2.LAB    neighbor 10.10.10.11 peer group EVPN    neighbor 10.10.10.11 remote-as 65111    neighbor 10.10.10.11 description LEAF1    neighbor 10.10.10.12 peer group EVPN    neighbor 10.10.10.12 remote-as 65112    neighbor 10.10.10.12 description LEAF2    redistribute connected    !    address-family evpn       neighbor EVPN activate | 
Leaf 1
| 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 | leaf1#sh run ! Command: show running-config ! device: leaf1 (vEOS-lab, EOS-4.26.8M) ! ! boot system flash:/vEOS-lab.swi ! no aaa root ! transceiver qsfp default-mode 4x10G ! service routing protocols model multi-agent ! hostname leaf1 ! spanning-tree mode mstp no spanning-tree vlan-id 4091 ! vlan 11,20-21,30-31 ! vlan 12    name LEAF1-2VLAN ! vrf instance CUSTOMER1 ! vrf instance CUSTOMER2 ! interface Ethernet1    description LINK to SPINE1.LAB    mtu 9200    logging event link-status    no switchport    ip address 10.1.11.1/31    arp aging timeout 1200 ! interface Ethernet2    description LINK to SPINE2.LAB    mtu 9200    logging event link-status    no switchport    ip address 10.2.11.1/31    arp aging timeout 1200 ! interface Ethernet3 ! interface Ethernet4 ! interface Ethernet5 ! interface Ethernet6 ! interface Ethernet7 ! interface Ethernet8 ! interface Ethernet9 ! interface Ethernet10    description PC110    switchport access vlan 21 ! interface Ethernet11    description PC140    switchport access vlan 11 ! interface Ethernet12    description PC120    switchport access vlan 20 ! interface Loopback0    description MANAGEMENT    ip address 10.10.10.11/32 ! interface Loopback1    description LOGICAL VTEP    ip address 172.20.1.1/32 ! interface Management1    ip address 172.17.3.1/24 ! interface Vlan11    no autostate    ip address virtual 10.10.11.254/24 ! interface Vlan12    no autostate    ip address virtual 192.168.12.254/24 ! interface Vlan20    no autostate    vrf CUSTOMER1    ip address virtual 192.168.20.1/24 ! interface Vlan21    no autostate    vrf CUSTOMER2    ip address virtual 192.168.21.1/24 ! interface Vlan30    no autostate    vrf CUSTOMER1    ip address virtual 192.168.30.1/24 ! interface Vlan31    no autostate    vrf CUSTOMER2    ip address virtual 192.168.31.1/24 ! interface Vxlan1    vxlan source-interface Loopback1    vxlan udp-port 4789    vxlan vlan 11 vni 10011    vxlan vlan 12 vni 10012    vxlan vlan 20 vni 10020    vxlan vlan 21 vni 10021    vxlan vlan 30 vni 10030    vxlan vlan 31 vni 10031    vxlan vrf CUSTOMER1 vni 20120    vxlan vrf CUSTOMER2 vni 20121 ! ip routing ip routing vrf CUSTOMER1 ip routing vrf CUSTOMER2 ! ip route 0.0.0.0/0 172.17.3.254 ! router bgp 65111    router-id 10.10.10.11    distance bgp 20 200 200    neighbor EVPN peer group    neighbor EVPN remote-as 65000    neighbor EVPN update-source Loopback0    neighbor EVPN ebgp-multihop 3    neighbor EVPN send-community extended    neighbor SPINE peer group    neighbor SPINE remote-as 65000    neighbor 10.1.11.0 peer group SPINE    neighbor 10.1.11.0 description SPINE1.LAB    neighbor 10.2.11.0 peer group SPINE    neighbor 10.2.11.0 description SPINE2.LAB    neighbor 10.10.10.1 peer group EVPN    neighbor 10.10.10.1 description SPINE1.LAB    neighbor 10.10.10.2 peer group EVPN    neighbor 10.10.10.2 description SPINE2.LAB    redistribute connected    !    vlan 11       rd 65111:10011       route-target both 11:10011       redistribute learned    !    vlan 12       rd 65111:10012       route-target both 12:10012       redistribute learned    !    vlan 20       rd 10.10.10.11:20       route-target both 20:20       redistribute learned    !    vlan 21       rd 10.10.10.11:21       route-target both 21:21       redistribute learned    !    vlan 30       rd 10.10.10.11:30       route-target both 30:30       redistribute learned    !    vlan 31       rd 10.10.10.11:31       route-target both 31:31       redistribute learned    !    address-family evpn       neighbor EVPN activate    !    address-family ipv4       network 172.20.1.1/32    !    vrf CUSTOMER1       rd 10.10.10.11:20120       route-target import evpn 20:120       route-target import evpn 21:121       route-target import evpn 30:130       route-target export evpn 20:120       route-target export evpn 30:130       redistribute connected    !    vrf CUSTOMER2       rd 10.10.10.12:20121       route-target import evpn 20:120       route-target import evpn 21:121       route-target import evpn 31:131       route-target export evpn 21:121       route-target export evpn 31:131       redistribute connected | 
Leaf 2
| 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 | leaf2#sh run ! Command: show running-config ! device: leaf2 (vEOS-lab, EOS-4.26.8M) ! ! boot system flash:/vEOS-lab.swi ! no aaa root ! transceiver qsfp default-mode 4x10G ! service routing protocols model multi-agent ! hostname leaf2 ! spanning-tree mode mstp no spanning-tree vlan-id 4091 ! vlan 11,20,30 ! vlan 12    name LEAF1-2VLAN ! vrf instance CUSTOMER1 ! interface Ethernet1    description LINK to SPINE1.LAB    mtu 9200    logging event link-status    no switchport    ip address 10.1.12.1/31    arp aging timeout 1200 ! interface Ethernet2    description LINK to SPINE2.LAB    mtu 9200    logging event link-status    no switchport    ip address 10.2.12.1/31    arp aging timeout 1200 ! interface Ethernet3 ! interface Ethernet4 ! interface Ethernet5 ! interface Ethernet6 ! interface Ethernet7 ! interface Ethernet8 ! interface Ethernet9 ! interface Ethernet10    description PC210    switchport access vlan 12 ! interface Ethernet11    description PC220    switchport access vlan 30 ! interface Ethernet12 ! interface Loopback0    ip address 10.10.10.12/32 ! interface Loopback1    description LOGICAL VTEP    ip address 172.20.2.2/32 ! interface Management1    ip address 172.17.3.2/24 ! interface Vlan11    no autostate    ip address virtual 10.10.11.254/24 ! interface Vlan12    no autostate    ip address virtual 192.168.12.254/24 ! interface Vlan20    no autostate    vrf CUSTOMER1    ip address virtual 192.168.20.1/24 ! interface Vlan30    no autostate    vrf CUSTOMER1    ip address virtual 192.168.30.1/24 ! interface Vxlan1    vxlan source-interface Loopback1    vxlan udp-port 4789    vxlan vlan 11 vni 10011    vxlan vlan 12 vni 10012    vxlan vlan 20 vni 10020    vxlan vlan 30 vni 10030    vxlan vrf CUSTOMER1 vni 20120 ! ip routing ip routing vrf CUSTOMER1 ! ip route 0.0.0.0/0 172.17.3.254 ! router bgp 65112    router-id 10.10.10.12    distance bgp 20 200 200    neighbor EVPN peer group    neighbor EVPN remote-as 65000    neighbor EVPN update-source Loopback0    neighbor EVPN ebgp-multihop 3    neighbor EVPN send-community extended    neighbor SPINE peer group    neighbor SPINE remote-as 65000    neighbor 10.1.12.0 peer group SPINE    neighbor 10.1.12.0 description SPINE1.LAB    neighbor 10.2.12.0 peer group SPINE    neighbor 10.2.12.0 description SPINE2.LAB    neighbor 10.10.10.1 peer group EVPN    neighbor 10.10.10.1 description SPINE1.LAB    neighbor 10.10.10.2 peer group EVPN    neighbor 10.10.10.2 description SPINE2.LAB    redistribute connected    !    vlan 11       rd 65112:10011       route-target both 11:10011       redistribute learned    !    vlan 12       rd 65112:10012       route-target both 12:10012       redistribute learned    !    vlan 20       rd 10.10.10.12:20       route-target both 20:20       redistribute learned    !    vlan 30       rd 10.10.10.12:30       route-target both 30:30       redistribute learned    !    address-family evpn       neighbor EVPN activate    !    address-family ipv4       network 172.20.2.2/32    !    vrf CUSTOMER1       rd 10.10.10.12:20120       route-target import 20:120       route-target import 30:130       route-target import evpn 20:120       route-target import evpn 30:130       route-target export evpn 20:120       route-target export evpn 30:130       redistribute connected ! | 
