Dans l’article précédent, nous avons configuré l’Underlay de notre Fabric VxLAN/EVPN en profitant des avantages proposés par IPv6 (autoconfiguration des interfaces, annonce et découverte automatique des voisins, établissement automatique des sessions eBGP), ces optimisations permettent de réduire drastiquement les configurations pour ainsi permettre les déploiements de Fabric de taille importante (plusieurs centaines de Leafs).

Dans cet article, nous allons nous intéresser à l’Overlay EVPN qui permet d’offrir les services d’extension de niveau 2 et niveau 3 au sein de la Fabric DC, la configuration générée doit rester simple, facilement reproductible pour simplifier l’automatisation, le déploiement et l’exploitation au quotidien.

DC Fabric : EVPN Overlay

EVPN (Ethernet Virtual Private Network) est une extension du protocole BGP qui permet d’apporter un plan de contrôle robuste pour permettre l’extension des réseaux de niveau 2 et 3, ce protocole est un standard ratifié dans la RFC 7432 : « BGP MPLS-Based Ethernet VPN ».

La fonctionnalité EVPN est supportée par l’introduction d’une nouvelle extension dans le protocole MP-BGP, il s’agit d’ une nouvelle famille et sous famille de routage au sein du protocole BGP (EVPN : AFI = 25 et SAFI = 70) qui permet l’échange des informations d’accessibilité de plusieurs type de routes qui sont résumés ci-dessous (en bleu, les Route-Type les plus populaires) :

  • Route-Type 1 – Auto-Discovery (A-D) Segment Route : utilisé pour les besoins de multi-homing.
  • Route-Type 2 – MAC Address Route : utilisé pour annoncer les adresses MAC apprises et optionnellement les adresses IP associées à ces MAC (ARP).
  • Route-Type 3 – Inclusive Multicast Ethernet Route : utilisé pour annoncer les associations EVI/VNI pour populer liste de réplication (ingress replication lists)
  • Route-Type 4 -Ethernet Segment Route : utilisé pour les besoins de Multi-Homing pour découvrir les VTEP qui partagent les mêmes segments.
  • Route-Type5 – IP Prefix Route : utilisé pour annoncer les prefixes IP (v4 et v6) ainsi que leur next-hop.

L’utilisation du protocole BGP en tant que plan de contrôle permet de reconduire les concepts familiers du BGP pour de nouvelles fonctions telles que l’apprentissage et diffusion d’adresses MAC, les correspondances MAC/IP (ARP),  la virtualisation du réseau par l’implémentation des VRFs ainsi que le partage de charge sur plusieurs chemins par l’utilisation de ECMP (bgp Multipath).

Pour notre environnement, les Spines S1 et S2 sont configurés en EVPN Route Server (RS) pour écouter et accepter des sessions EVPN en provenance des Leaf (AS 65101 à 65199) avec un plan d’adressage en IPv6 configuré dans le range 2001:192:168:10::/64, à noter que la famille d’adresse (AF) BGP IPv4 ne sera pas utilisé pour notre Overlay et sera ainsi désactivée dans la configuration :

Spines (S1 et S2) :
peer-filter EVPN-OVERLAY-AS
   10 match as-range 65101-65199 result accept
!
router bgp 65100
  bgp listen range 2001:192:168:10::/64 peer-group EVPN-OVERLAY-PEERS peer-filter EVPN-OVERLAY-AS
  neighbor EVPN-OVERLAY-PEERS peer group
  neighbor EVPN-OVERLAY-PEERS update-source Loopback0
  neighbor EVPN-OVERLAY-PEERS bfd
  neighbor EVPN-OVERLAY-PEERS ebgp-multihop 3
  neighbor EVPN-OVERLAY-PEERS password 7 $1c$b5bHgaRyiaKvN6HdIYYyAw== 
  neighbor EVPN-OVERLAY-PEERS send-community
  neighbor EVPN-OVERLAY-PEERS maximum-routes 0
   !
   address-family evpn
      neighbor EVPN-OVERLAY-PEERS activate
   !
   address-family ipv4
      no neighbor EVPN-OVERLAY-PEERS activate
   !
!

Pour les Leafs, la configuration est identique (seul le numéro d’AS change), elle consiste à établir deux sessions EVPN avec les Route Server (RS) S1 et S2 :

Leafs (L1, L2, L3 et L4):
router bgp 65101
  neighbor EVPN-OVERLAY-PEERS peer group
  neighbor EVPN-OVERLAY-PEERS update-source Loopback0
  neighbor EVPN-OVERLAY-PEERS bfd
  neighbor EVPN-OVERLAY-PEERS ebgp-multihop 3
  neighbor EVPN-OVERLAY-PEERS password 7 $1c$b5bHgaRyiaKvN6HdIYYyAw== 
  neighbor EVPN-OVERLAY-PEERS send-community
  neighbor EVPN-OVERLAY-PEERS maximum-routes 0
  neighbor 2001:192:168:10::11 peer group EVPN-OVERLAY-PEERS
  neighbor 2001:192:168:10::11 description Spine11 
  neighbor 2001:192:168:10::11 remote-as 65100
  neighbor 2001:192:168:10::12 peer group EVPN-OVERLAY-PEERS
  neighbor 2001:192:168:10::12 description Spine12 
  neighbor 2001:192:168:10::12 remote-as 65100
   !
   address-family evpn
      neighbor EVPN-OVERLAY-PEERS activate
   !
   address-family ipv4
      no neighbor EVPN-OVERLAY-PEERS activate
   !
!

Les configurations EVPN sont maintenant finalisés, elles sont assez simples à automatiser et à dupliquer sur plusieurs Leafs, en effet, seul le numéro d’AS BGP change, ce point est très important et permet une évolutivité importante de la Fabric (Large Scale DC).

Pour vérifier le bon établissement des sessions EVPN au sein de la Fabric :

Spines (S1, S2):
Spine11#show bgp evpn summary 
BGP summary information for VRF default
Router identifier 192.168.10.11, local AS number 65100
Neighbor Status Codes: m - Under maintenance
  Neighbor             V AS           MsgRcvd   MsgSent  InQ OutQ  Up/Down State   PfxRcd PfxAcc
  2001:192:168:10::101 4 65101            683       684    0    0 01:35:33 Estab   0      0
  2001:192:168:10::102 4 65102            680       687    0    0 01:35:33 Estab   0      0
  2001:192:168:10::103 4 65103            679       686    0    0 01:35:33 Estab   0      0
  2001:192:168:10::104 4 65104            686       680    0    0 01:35:33 Estab   0      0

Leafs (L1,L2,L3 et L4):
Leaf101#show bgp evpn summary
BGP summary information for VRF default
Router identifier 192.168.10.101, local AS number 65101
Neighbor Status Codes: m - Under maintenance
  Description              Neighbor            V AS           MsgRcvd   MsgSent  InQ OutQ  Up/Down State   PfxRcd PfxAcc
  Spine11                  2001:192:168:10::11 4 65100           6557      6560    0    0 01:36:26 Estab   0      0
  Spine12                  2001:192:168:10::12 4 65100           6548      6551    0    0 01:37:30 Estab   0      0

Pour vérifier les attributs et paramètres négociés pendant la session BGP-EVPN :

Leafs (L1, L2, L3 et L4):
Leaf101#show bgp neighbors 2001:192:168:10::11
BGP neighbor is 2001:192:168:10::11, remote AS 65100, external link
 Description: Spine11
  BGP version 4, remote router ID 192.168.10.11, VRF default
  Inherits configuration from and member of peer-group EVPN-OVERLAY-PEERS
  Hold time is 30, keepalive interval is 10 seconds
  Configured hold time is 30, keepalive interval is 10 seconds
  <snip>
  BGP state is Established, up for 01:39:26
  Number of transitions to established: 3
  <snip>
  Neighbor Capabilities:
    Multiprotocol IPv6 Unicast: advertised and received and negotiated
    Multiprotocol L2VPN EVPN: advertised and received and negotiated
    Four Octet ASN: advertised and received and negotiated
    Route Refresh: advertised and received and negotiated
    Enhanced route refresh: advertised and received and negotiated
    Send End-of-RIB messages: advertised and received and negotiated
    Additional-paths recv capability:
      IPv6 Unicast: advertised
      L2VPN EVPN: advertised
    Additional-paths send capability:
      IPv6 Unicast: received
      L2VPN EVPN: received
    Graceful Restart advertised:
      Restart-time is 300
      Restart-State bit: no
      Graceful notification: yes
      IPv6 Unicast is enabled, Forwarding State is not preserved
      L2VPN EVPN is enabled, Forwarding State is not preserved
    Graceful Restart received:
      Restart-time is 300
      Restart-State bit: no
      Graceful notification: yes
      IPv6 Unicast is enabled, Forwarding State is not preserved
      L2VPN EVPN is enabled, Forwarding State is not preserved
  Restart timer is inactive
  End of rib timer is inactive
    IPv6 Unicast End-of-RIB received: Yes
      Received 01:39:25
      Number of stale paths removed after graceful restart: 0
    L2VPN EVPN End-of-RIB received: Yes
      Received 01:39:26
      Number of stale paths removed after graceful restart: 0
  <snip>
Local AS is 65101, local router ID 192.168.10.101
TTL is 3, external peer can be 3 hops away
Local TCP address is 2001:192:168:10::101, local port is 44663
Remote TCP address is 2001:192:168:10::11, remote port is 179
Local next hop for next hop self:
  IPv6 Unicast: 2001:192:168:10::101
MD5 authentication is enabled
TCP Socket Information:
  TCP state is ESTABLISHED
  Recv-Q: 0/32768
  Send-Q: 0/332800
  Outgoing Maximum Segment Size (MSS): 8940
  Total Number of TCP retransmissions: 0
  Options:
    Timestamps enabled: no
    Selective Acknowledgments enabled: yes
    Window Scale enabled: yes
    Explicit Congestion Notification (ECN) enabled: no
  Socket Statistics:
    Window Scale (wscale): 7,7
    Retransmission Timeout (rto): 204.0ms
    Round-trip Time (rtt/rtvar): 0.3ms/0.0ms
    Delayed Ack Timeout (ato): 40.0ms
    Congestion Window (cwnd): 10
    TCP Throughput: 2122.26 Mbps
    Advertised Recv Window (rcv_space): 62580

Pour le plan de données (Data Plane), VxLAN est configuré uniquement sur les Leafs, ce protocole repose sur le principe d’encapsulation de trames Ethernet dans IP/UDP (Mac-in-UDP) et permet l’extension des segments de niveau 2 sur n’importe quelle infrastructure de niveau 3 :

DC Fabric : VxLAN Data Plane

L’encapsulation VxLAN est réalisée exclusivement en IPv6 (Underlay IPv6 Only) sur les équipements Leafs, l’interface Loopback1 est utilisée en source du paquet encapsulé :

Leafs (L1, L2, L3 et L4):
interface Vxlan1
   description VTEP VxLAN Tunnel
   vxlan source-interface Loopback1
   vxlan udp-port 4789
   vxlan encapsulation ipv6

Leaf101#sh int vxlan 1
Vxlan1 is down, line protocol is down (notconnect)
  Hardware is Vxlan
  Description: VTEP VxLAN Tunnel
  Source interface is Loopback1 and is active with 2001:192:168:11::101
  Listening on UDP port 4789
  Vxlan Encapsulation is IPv6
  Replication/Flood Mode is not initialized yet
  Remote MAC learning via Datapath
  VNI mapping to VLANs
  Static VLAN to VNI mapping is not configured
  Static VRF to VNI mapping is not configured
  Shared Router MAC is 0000.0000.0000

Et voilà ! c’est fini pour l’Overlay EVPN, les sessions sont UP et sont prêtes à être consommer pour fournir des services d’extension niveau 2 et niveau 3.

Ces services seront fournis sur des réseaux Underlay et Overlay configurés en IPv6 Only (Stack IPv4 désactivée), dans le prochain article, nous allons capturer les trames VxLAN/EVPN et nous y intéresser de près pour comprendre le fonctionnement (Vlan Flood, MAC Learning, ARP, ..).

Pour les plus impatients d’entre vous, un petit apperçu d’un EVPN Type2 🙂

EVPN Type-2

J’espère que cet article vous a donné un bon apperçu sur le configuration de l’Overlay EVPN, Il reste encore beaucoup de choses à racconter sur ces technolgies « Next Gen », Si vous avez des questions ou vous avez besoin d’un complément d’informations ou une consultation spécifique à votre environement, n’hésitez pas à laisser un message en commentaire de la page ou nous contacter directement à l’adresse : contact@mhd-experts.com.

Author

Hicham est un architecte réseau avec plus de 22 ans d’expérience dans le domaine des réseaux et essentiellement sur les environnements Cisco, il dispose d’un diplôme d’ingénieur d’état dans le domaine des Réseaux et Télécoms et aussi de quatre certifications CCIE dans les domaines (Routing & Switching, Security, Service Provider et Datacenter). Durant son expérience, Hicham est intervenu sur des projets importants et complexes chez les opérateurs ainsi que les grandes entreprises sur différents domaines (LAN, WAN, DATACENTER), il réalise souvent des audits sur des architectures complexes pour les optimiser ainsi que des formations auprès de ses clients afin de démystifier les technologies pour une meilleure compréhension et simplification de l’exploitation au quotidien. Hicham est contributeur du blog MHD Experts et joignable à l’adresse : hicham.tahri@mhd-experts.com

Write A Comment