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.
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 :
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 🙂
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.
Architecture DC VxLAN-EVPN – Deep Dive – partie 4 - MHD Experts
février 8, 2023[…] les articles précédents de cette série consacrée aux technologie VxLAN/EVPN, nous avons configuré l’Underlay et […]