Lab 2 - BGP EVPN VXLAN Fabric
Fabric VXLAN EVPN
Configuration complète: https://git.uttnetgroup.fr/PE-Redondance/VXLAN-C9300L/src/branch/main/vxlan-lab2
Nous allons mettre en place une fabric VXLAN avec les switchs de la D206.
On se base sur la doc cisco: https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst9300/software/release/17-15/configuration_guide/vxlan/b_1715_bgp_evpn_vxlan_9300_cg/configuring_spine_switches_in_a_bgp_evpn_vxlan_fabric.html
Structure
Spine1 (RR + RP)
/ \
/ \
Leaf1 Leaf2
\ /
\ /
Spine2 (RR + RP)
Dans cette structure nous avons les spines jouant le rôle intermediaire entre les leaf (qui seront les VTEP VXLAN).
Pour mettre à bien cette fabric nous allons utiliser différentes technologies:
- VXLAN qui agira comme data plane
- EVPN (avec MP-BGP) comme control plane
- OSPF pour l'underlay IP.
- Du multicast pour la gestion du traffic BUM (Broadcast; Unknown Unicast; Multicast)
┌──────────────────────────────┐
│ EVPN (BGP) │ ← contrôle overlay (MAC/IP/VTEP)
└────────────┬─────────────────┘
│
┌────────────▼─────────────────┐
│ VXLAN (data plane) │ ← encapsulation Ethernet over UDP
└────────────┬─────────────────┘
│
┌────────────▼─────────────────┐
│ Underlay IP (OSPF) │ ← transport IP pur
└──────────────────────────────┘
EVPN
Gestion du traffic BUM
La solution retenu pour gérer le traffic BUM est le Multicast Underlay (au lieu du Ingress Replication).
Leaf1 envoie un seul paquet vers un groupe multicast.
Exemple :
239.1.1.100
Le réseau PIM se charge de la duplication.
PIM (Le BUM Data Plane)
PIM est Protocol Independent Multicast.
PIM permet de construire les arbres multicast.
Multicast RP
Chaque Spine est un Anycast RP (Rendezvous Point) (Sparse Mode).
Exemple:
Quand Leaf2 veut recevoir :
239.1.1.100
il envoie :
PIM Join
vers le RP.
Quand Leaf1 émet :
239.1.1.100
il envoie aussi vers le RP.
MSDP
MSDP pour Multicast Source Discovery Protocol.
Permet à Spine1 de savoir ce que Spine2 sait.
Sinon:
Source connue par Spine1
Récepteur connecté à Spine2
Mais personne ne communique entre les deux.
Exemple:
VNI 10010
Leaf1
Leaf2
Leaf3
associés à :
239.1.1.10
Leaf2 et Leaf3 rejoignent :
239.1.1.10
via PIM.
Leaf1 reçoit un ARP Broadcast.
Il encapsule :
VXLAN
VNI 10010
Destination multicast :
239.1.1.10
L'underlay multicast :
Leaf1
|
Spine
/ \
L2 L3
réplique automatiquement.
Leaf2 reçoit :
ARP Request
Leaf3 reçoit :
ARP Request
sans que Leaf1 ait dû envoyer deux copies.
(source: https://www.juniper.net/documentation/fr/fr/software/junos/evpn/topics/concept/vxlan-evpn-integration-overview.html)
Gestion du traffic Unicast
(source: https://www.juniper.net/documentation/fr/fr/software/junos/evpn/topics/concept/vxlan-evpn-integration-overview.html)
Chemin classique
Étape 1 — OSPF construit le transport
Leaf1 → OSPF → Leaf2 reachable via IP
donc Leaf1 peut envoyer des paquets IP à Leaf2 loopback
Étape 2 — BGP EVPN monte dessus
BGP utilise OSPF pour établir ses sessions :
BGP neighbor = Loopback IP
Ex :
neighbor 22.22.22.22 remote-as 65001
update-source loopback0
donc :
- OSPF = reachability
- BGP = overlay control plane
Étape 3 — EVPN distribue les infos VXLAN
BGP EVPN annonce :
MAC A → Leaf2
VNI 10010 members → Leaf1/2/3
Étape 4 — VXLAN utilise ces infos
Quand Leaf1 reçoit un paquet :
Host A → Host B (MAC inconnue ou connue)
Leaf1 regarde EVPN table :
MAC B → VTEP Leaf2
Étape 5 — VXLAN encapsule
Ethernet frame
↓
VXLAN tunnel
↓
IP via OSPF underlay
Configuration de base
La configuration ci-dessous correspond à la mise en place VXLAN/EVPN du lab2, qui sert ensuite de socle au lab3. On garde ici le modèle simple sans multi-homing : une fabric avec deux spines, deux leafs VTEP, un underlay OSPF et un overlay BGP EVPN.
L’idée est d’appliquer exactement les briques décrites plus haut :
- OSPF pour la reachability underlay,
- BGP EVPN pour distribuer les informations de contrôle,
- VXLAN pour encapsuler les VLANs du campus,
- multicast,
- des loopbacks stables pour le routage et le NVE.
Configuration commune des leafs
Les leafs sont les VTEP VXLAN (via les interfaces NVE qui s'occupe de désencapsuler les trames). Elles portent les VLANs du domaine utilisateur, construisent les tunnels VXLAN et annoncent leurs informations via EVPN.
vrf definition green
rd 1:1
!
address-family ipv4
route-target export 1:1
route-target import 1:1
route-target export 1:1 stitching
route-target import 1:1 stitching
exit-address-family
!
address-family ipv6
route-target export 1:1
route-target import 1:1
route-target export 1:1 stitching
route-target import 1:1 stitching
exit-address-family
ip routing
ip multicast-routing
l2vpn evpn
replication-type static
router-id Loopback1
default-gateway advertise
l2vpn evpn instance 101 vlan-based
encapsulation vxlan
replication-type static
l2vpn evpn instance 102 vlan-based
encapsulation vxlan
replication-type ingress
vlan configuration 101
member evpn-instance 101 vni 10101
vlan configuration 102
member evpn-instance 102 vni 10102
vlan configuration 901
member vni 50901
interface Loopback0
ip address 172.16.255.3 255.255.255.255
ip ospf 1 area 0
interface Loopback1
ip address 172.16.254.3 255.255.255.255
ip pim sparse-mode
ip ospf 1 area 0
interface nve1
no ip address
source-interface Loopback1
host-reachability protocol bgp
member vni 10101 mcast-group 225.0.0.101
member vni 10102 ingress-replication
member vni 50901 vrf green
router ospf 1
router-id 172.16.255.3
router bgp 65001
bgp log-neighbor-changes
no bgp default ipv4-unicast
neighbor 172.16.255.1 remote-as 65001
neighbor 172.16.255.1 update-source Loopback0
neighbor 172.16.255.2 remote-as 65001
neighbor 172.16.255.2 update-source Loopback0
!
address-family l2vpn evpn
neighbor 172.16.255.1 activate
neighbor 172.16.255.1 send-community both
neighbor 172.16.255.2 activate
neighbor 172.16.255.2 send-community both
exit-address-family
!
address-family ipv4 vrf green
advertise l2vpn evpn
redistribute static
redistribute connected
exit-address-family
Dans cette configuration, Loopback0 sert d’adresse de voisinage BGP et Loopback1 sert de source VXLAN. Le router-id OSPF et le router-id EVPN sont choisis sur des loopbacks stables pour éviter qu’un changement d’interface physique ne casse le plan de contrôle.
Le VNI 10101 utilise le multicast underlay pour la diffusion BUM, ce qui colle au principe décrit plus haut. Le VNI 10102 est configuré en ingress replication, ce qui montre qu’on peut mélanger les mécanismes de réplication selon les besoins du service.
Configuration commune des spines
Les spines servent de transport underlay et de route reflectors BGP. Ils ne portent pas de VNIs, mais ils doivent rendre les loopbacks des leafs joignables et relayer les sessions EVPN.
ip routing
ip multicast-routing
interface Loopback0
ip address 172.16.255.1 255.255.255.255
ip ospf 1 area 0
interface Loopback1
ip address 172.16.254.1 255.255.255.255
ip ospf 1 area 0
interface Loopback2
ip address 172.16.255.255 255.255.255.255
ip pim sparse-mode
ip ospf 1 area 0
interface GigabitEthernet2/0/1
no switchport
ip address 172.16.13.1 255.255.255.0
ip pim sparse-mode
ip ospf network point-to-point
ip ospf 1 area 0
interface GigabitEthernet2/0/2
no switchport
ip address 172.16.14.1 255.255.255.0
ip pim sparse-mode
ip ospf network point-to-point
ip ospf 1 area 0
interface GigabitEthernet2/0/3
no switchport
ip address 172.16.15.1 255.255.255.0
ip pim sparse-mode
ip ospf network point-to-point
ip ospf 1 area 0
router ospf 1
router-id 172.16.255.1
router bgp 65001
template peer-policy RR-PP
route-reflector-client
send-community both
exit-peer-policy
!
template peer-session RR-PS
remote-as 65001
update-source Loopback0
Les mêmes principes s’appliquent sur Spine-02, avec les adresses adaptées. L’idée est de garder un underlay simple : les leafs s’envoient leurs loopbacks via OSPF, puis BGP EVPN s’appuie dessus pour diffuser les routes MAC/IP et les informations VXLAN.
Configuration des ports d’accès
Le lab2 utilise ensuite des ports d’accès classiques sur les leafs pour rattacher les VLANs aux VTEP. C’est cette partie qui rend la fabric exploitable pour des machines ou des services locaux.
interface GigabitEthernet1/0/12
switchport access vlan 101
switchport mode access
interface GigabitEthernet1/0/24
switchport access vlan 101
switchport mode access
Avec cette configuration, le lab2 fournit le socle de base : un domaine L2 distribué par VXLAN EVPN, sans redondance d’accès avancée. Le lab3 reprendra ce socle en ajoutant seulement la couche multi-homing, sans devoir refaire l’underlay ni le mapping VXLAN.

