Skip to main content

Lab 2 - BGP EVPN VXLAN Fabric

Fabric VXLAN EVPN

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.


g043188.gif

(source: https://www.juniper.net/documentation/fr/fr/software/junos/evpn/topics/concept/vxlan-evpn-integration-overview.html)

Gestion du traffic Unicast

g043189.png

(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