Dans les articles précédents de cette série consacrée aux technologies VxLAN/EVPN, nous avons configuré l’Underlay et l’Overlay en utilisant la fonctionnalité « BGP Unnumbered » avec un adressage en « IPv6 Only », nous allons pouvoir maintenant configurer les services traditionnels d’extension de niveau 2 et 3 (VLAN/VRF).
Comme pour un réseau traditionnel, la première étape consiste à provisionner et diffuser un VLAN sur plusieurs Leafs pour permettre à des ressources (ex serveurs, Firewalls, SLB, ..) de partager un même segment de niveau 2, il s’agit tout simplement d’une extension de VLAN comme on le ferait sur un réseau traditionnel.
EVPN implémente des routes de Type-3 (Inclusive Multicast Ethernet Tag ou IMET) pour la gestion des flux BUM (Broadcast, Unknown Unicast et Multicast), ces routes sont annoncées dans la Fabric pour permettre à chaque VTEP (Leaf) de définir une liste de VTEP qui recevra le trafic BUM, cette technique permet ainsi de reconduire les mécanismes de Flooding L2 traditionnels en environnement routé à travers des tunnels VxLAN.
Pour mieux illustrer ces propos, dans notre lab, nous allons d’abord associer le vlan 11 à la L2VNI 20011, ensuite diffuser le vlan 11 sur les Leafs L1 et L2 comme représenté dans le schéma ci-dessous : chacun des deux Leafs implémentera ce VLAN et annoncera une route EVPN de Type-3 pour indiquer qu’il est candidat pour recevoir le trafic BUM sur ce VLAN :
Coté configuration c’est assez simple, il suffit de déclarer le Vlan 11 sur les Leafs L1 et L2, l’associer à la VNI 20011 au niveau de l’interface Vxlan et enfin l’annoncer en BGP-EVPN pour informer les autres Leafs de la Fabric :
Leaf L1 : vlan 11 name VL11_Fabric_VxLAN ! interface Vxlan1 vxlan vlan 11 vni 20011 ! router bgp 65101 vlan 11 rd 192.168.10.101:20011 route-target both 20011:20011 redistribute learned ! ! Leaf L2 : vlan 11 name VL11_Fabric_VxLAN ! interface Vxlan1 vxlan vlan 11 vni 20011 ! router bgp 65102 vlan 11 rd 192.168.10.102:20011 route-target both 20011:20011 redistribute learned ! !
Les annonces EVPN Type-3 sont réalisées par un message BGP Update :
Un des avantages immédiat de disposer d’un plan de contrôle EVPN est de pouvoir visualiser rapidement le domaine de Flooding pour un VLAN donné, ce qui est très pratique pour des Fabrics de taille importante si besoin de troubleshooting par exemple.
Exemple : Pour visualiser tous les Leafs qui implémentent le VLAN 11, il suffit de se connecter sur un des équipements de la Fabric (ex Spine) et exécuter les commandes ci-dessous :
Spines (S1,S2) : Spine11#show bgp evpn route-type imet vni 20011 BGP routing table information for VRF default Router identifier 192.168.10.11, local AS number 65100 Route status codes: * - valid, > - active, S - Stale, E - ECMP head, e - ECMP c - Contributing to ECMP, % - 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: 192.168.10.101:20011 imet 2001:192:168:11::101 2001:192:168:11::101 - 100 0 65101 i * > RD: 192.168.10.102:20011 imet 2001:192:168:11::102 2001:192:168:11::102 - 100 0 65102 i Spine11#show bgp evpn route-type imet vni 20011 detail BGP routing table information for VRF default Router identifier 192.168.10.11, local AS number 65100 BGP routing table entry for imet 2001:192:168:11::101, Route Distinguisher: 192.168.10.101:20011 Paths: 1 available 65101 2001:192:168:11::101 from 2001:192:168:10::101 (192.168.10.101) Origin IGP, metric -, localpref 100, weight 0, tag 0, valid, external, best Extended Community: Route-Target-AS:20011:20011 TunnelEncap:tunnelTypeVxlan VNI: 20011 PMSI Tunnel: Ingress Replication, MPLS Label: 20011, Leaf Information Required: false, Tunnel ID: 2001:192:168:11::101 BGP routing table entry for imet 2001:192:168:11::102, Route Distinguisher: 192.168.10.102:20011 Paths: 1 available 65102 2001:192:168:11::102 from 2001:192:168:10::102 (192.168.10.102) Origin IGP, metric -, localpref 100, weight 0, tag 0, valid, external, best Extended Community: Route-Target-AS:20011:20011 TunnelEncap:tunnelTypeVxlan VNI: 20011 PMSI Tunnel: Ingress Replication, MPLS Label: 20011, Leaf Information Required: false, Tunnel ID: 2001:192:168:11::102
=> Ces résultats indiquent que le vlan 11 est présent et annoncé par les Leaf L1 (AS 65101) et L2 (AS 65102).
Ces annonces du plan de contrôle EVPN permettent aussi de provisionner dynamiquement sur chaque Leaf une liste de Flooding « Flooding List » pour chaque VLAN, cette sera utile pour la diffusion des flux BUM en provenance des clients.
Dans notre exemple, le VLAN 11 est annoncé uniquement par les Leafs 101 et 102, à la réception des routes EVPN Type-3, chaque Leaf mettra à jour sa Flooding List :
Pour visualiser le mapping vlan/vni sur le Leaf L1 : Leaf101#show vxlan vni VNI to VLAN Mapping for Vxlan1 VNI VLAN Source Interface 802.1Q Tag ----------- ---------- ------------ ---------------- ---------- 20011 11 static Ethernet10 untagged Vxlan1 11 Pour consulter la flooding list sur le Leaf L1 : Leaf101#sh int vxlan 1 Vxlan1 is up, line protocol is up (connected) 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 headend with Flood List Source: EVPN Remote MAC learning via EVPN VNI mapping to VLANs Static VLAN to VNI mapping is [11, 20011] Note: All Dynamic VLANs used by VCS are internal VLANs. Use 'show vxlan vni' for details. Static VRF to VNI mapping is not configured Headend replication flood vtep list is: 11 2001:192:168:11::102 Shared Router MAC is 0000.0000.0000
VxLAN Bridging :
EVPN permet d’échanger à la fois les informations d’accessibilité réseau de niveau 2 (MAC) et de niveau 3 (IP), ce protocole permet de simplifier l’architecture par l’implémentation d’une seule solution qui intègre simultanément les services réseaux de commutation et de routage (IRB : Integrated Bridging and Routing)
Les opérations d’apprentissage et de diffusion d’adresses MAC (MAC Learning & Forwarding) sont résumés dans le schéma ci-après :
Etapes :
- La VM envoie une requête ARP sur le VLAN 11 pour annoncer sa présence sur le réseau (Gratuitous ARP).
- Le Leaf (L1) qui raccorde cette VM met à jour sa table d’adresse MAC avec les informations envoyée par la VM.
- Le Leaf (L1) envoi ensuite un message de mise à jour (BGP EVPN Update Type-2) pour signaler la présence de la VM sur le VNI 20011. (VLAN 11 est associé au L2VNI 20011)
- La Fabric est ainsi mise à jour avec les informations EVPN (Type-2) contenant l’adresse MAC de la VM sur la VNI 20011.
- Les Leafs qui implémentent le VNI (20011) mettent à jour leur table d’adresse MAC avec les informations de la VM (remote learning), dans notre cas il s’agit du Leaf L2
- Les leafs qui n’implémentent pas cette VNI rejettent le message de mise à jour EVPN (ex L3 et L4).
- La requête ARP est ensuite envoyée sur le Vlan associé du Leaf distant (ARP Flooding).
Une fois la Fabric mise à jour avec les informations (MAC) de chaque VM, la communication entre les VMs qui partagent le même VLAN est réalisée à travers un tunnel VxLAN (VxLAN Bridging) :
Par ailleurs, les requêtes de résolution ARP en provenance des VM sont encapsulées dans une entête VxLAN puis envoyée vers tous les Leafs candidats à recevoir le trafic BUM:
Une fois les phases d’aprentissage MAC et résolution ARP sont réalisées, la connectivité entre les deux VM configurée en dual-stack IPv4/IPv6 est effective :
PC1> ping 10.10.1.2 84 bytes from 10.10.1.2 icmp_seq=1 ttl=64 time=6.792 ms 84 bytes from 10.10.1.2 icmp_seq=2 ttl=64 time=7.273 ms 84 bytes from 10.10.1.2 icmp_seq=3 ttl=64 time=8.164 ms 84 bytes from 10.10.1.2 icmp_seq=4 ttl=64 time=7.561 ms 84 bytes from 10.10.1.2 icmp_seq=5 ttl=64 time=7.021 ms PC1> ping 2001:10:10:1::2 2001:10:10:1::2 icmp6_seq=1 ttl=64 time=10.043 ms 2001:10:10:1::2 icmp6_seq=2 ttl=64 time=7.676 ms 2001:10:10:1::2 icmp6_seq=3 ttl=64 time=7.547 ms 2001:10:10:1::2 icmp6_seq=4 ttl=64 time=8.005 ms 2001:10:10:1::2 icmp6_seq=5 ttl=64 time=7.452 ms
Coté wireshark, la capture nous permet de visualiser l’encapsulation VxLAN (encadré vert) pour le transport du paquet ICMPv6 (encadré bleu) :
Ces échanges EVPN permettent aussi de gagner en visibilité et de faciliter l’exploitation au quotidien, il devient ainsi possible de localiser rapidement une MAC sur un réseau sans avoir à se connecter sur plusieurs équipements à la chaine comme sur un réseau traditionnel ou avoir recours à l’outil d’administration du constructeur.
Pour localiser une VM, il suffit d’intéroger en EVPN les Type-2 qui annoncent cette VM :
Spine11#show bgp evpn route-type mac-ip 0050.7966.6803 vni 20011 BGP routing table information for VRF default Router identifier 192.168.10.11, local AS number 65100 Route status codes: * - valid, > - active, S - Stale, E - ECMP head, e - ECMP c - Contributing to ECMP, % - 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: 192.168.10.101:20011 mac-ip 0050.7966.6803 2001:192:168:11::101 - 100 0 65101 i Spine11#show bgp evpn route-type mac-ip 0050.7966.6803 vni 20011 detail BGP routing table information for VRF default Router identifier 192.168.10.11, local AS number 65100 BGP routing table entry for mac-ip 0050.7966.6803, Route Distinguisher: 192.168.10.101:20011 Paths: 1 available 65101 2001:192:168:11::101 from 2001:192:168:10::101 (192.168.10.101) Origin IGP, metric -, localpref 100, weight 0, tag 0, valid, external, best Extended Community: Route-Target-AS:20011:20011 TunnelEncap:tunnelTypeVxlan VNI: 20011 ESI: 0000:0000:0000:0000:0000
En conclusion, disposer d’un plan de contrôle robuste BGP-EVPN pour la gestion des opérations de niveau 2 (VLan Flooding, Mac Learning & Forwading) permet d’apporter un gain très important dans la fiabilité et l’exploitation des architectures DC de nouvelle génération, en effet, depuis plusieurs années, les réseaux traditionnels utilisent le principe du « Flood & Learn » qui a atteint ses limites et qui ne peut plus répondre favorablement aux besoins et exigences des applications modernes (Multiplication des Flux Est/Ouest, Micro-Services, Large Scale DC, ..)
EVPN permet aussi d’apporter plus de contrôle sur les accès réseaux et bloquer certaines activités indésirables annonciatrices d’une mauvaise configuration d’un serveur ou d’une boucle sur le réseau (ex détection et blocage d’un MAC Move/Flaping important entre plusieurs Leafs).
Cependant, comme on l’a vu dans notre petit Lab, plusieurs étapes de configuration sont nécessaires pour déployer un Vlan dans une Fabric VxLAN/EVPN, par conséquent, il est fortement recommandé de recourir à l’automatisation pour simplifier ces gestes sur des Fabric de taille importante, des outils comme Ansible/Python permettent de simplifier considérablement cette tâche. (Dans mon petit Lab, toutes les configurations sont générées et poussées avec Ansible pour eviter les erreurs humaines).
J’espère que cet article vous a donné un bon aperçu sur le fonctionnement du niveau 2 dans une Fabric VxLAN/EVPN (VxLAN Bridging) et l’usage des EVPN Type-2 et Type-3 pour réaliser les opérations de niveau 2 traditionnelles, dans le prochain article, nous allons le consacrer au routage dans une Fabric VxLAN/EVPN (VxLAN Routing) ainsi et les nouvelles oppotunité offertes comme l’usage des passerelles distribuées, la reduction de l’activité ARP avec la fonctionnalité « ARP Suppression » ..
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.