Usine VxLAN. Partie 2.

Bonjour, Habr. Je continue ma série d'articles sur la technologie VxLAN EVPN, qui ont été rédigés spécialement pour le lancement du cours "Ingénieur réseau" d'OTUS. Aujourd'hui, nous examinerons une partie intéressante des problèmes — le routage. Aussi banal que cela puisse paraître, dans le cadre du fonctionnement d'une usine réseau, tout cela peut ne pas être si simple.

Usine VxLAN. Partie 2.

1ère partie du cycle — connectivité L2 entre les serveurs

Dans la dernière partie, nous avons obtenu un domaine de diffusion, construit sur l'usine réseau via le Nexus 9000v. Cependant, ce n'est pas tout le spectre des problèmes à résoudre dans le cadre du réseau du centre de données. Aujourd'hui, nous aborderons le problème suivant — le routage entre les réseaux ou entre les VNI.

Je rappelle que nous utilisons une topologie Spine-Leaf :

Usine VxLAN. Partie 2.

Pour commencer, examinons comment le routage se produit et quelles sont les particularités.

Pour simplifier la compréhension, nous allons réduire le schéma logique et ajouter un VNI 20000 pour Host-2. Cela donne au final :

Usine VxLAN. Partie 2.

Comment dans ce cas peut-on transférer le trafic d'un hôte à un autre ?

Il existe deux options :

  1. Conserver l'information sur tous les VNI sur tous les commutateurs Leaf, alors tout le routage se fera sur le premier Leaf du réseau ;
  2. Utiliser un VNI L3 spécialement dédié

La première méthode est simple et pratique. Puisqu'il suffit de faire entrer tous les VNI sur tous les commutateurs Leaf. Cependant, introduire des centaines ou des milliers de VNI sur tous les Leaf ne semble déjà plus être une tâche simple. C'est pourquoi cette méthode est plutôt rarement utilisée.

Examinons la deuxième méthode, qui est plus intéressante et un peu plus complexe, mais qui offre une plus grande flexibilité dans la configuration de l'usine.

Ajoutons à la topologie le VRF "PROD". Nous ajouterons l'interface VLAN 10 sur les Leaf-11/12 et l'interface VLAN 20 sur le Leaf-21. Le VLAN 20 est associé au VNI 20000.

vrf context PROD
  rd auto       ! Le Route Distinguisher n'est pas essentiel et nous pouvons utiliser celui généré automatiquement
  address-family ipv4 unicast
    route-target both auto      ! nous indiquons le Route-target avec lequel les préfixes seront importés et exportés vers/de VRF
vlan 20
  vn-segment 20000

interface nve 1
  member vni 20000
    ingress-replication protocol bgp

interface Vlan10
  no shutdown
  vrf member PROD
  ip address 192.168.20.1/24
  fabric forwarding mode anycast-gateway

Pour utiliser le L3 VNI, il est nécessaire de créer un nouveau VLAN, de l'associer à un nouveau VNI. Le nouveau VNI doit être identique sur tous les Leaf intéressés par les informations sur les VLAN 10 et 20.

vlan 99
  vn-segment 99000

interface nve1
  member vni 99000 associate-vrf        ! Créons un L3 VNI

vrf context PROD
  vni 99000                             ! Nous associons le L3 VNI à un VRF donné

Ainsi, le schéma sera présenté comme suit :

Usine VxLAN. Partie 2.

Il reste juste une petite chose à faire : ajouter une autre interface — interface vlan 99 dans le VRF PROD.

interface Vlan99
  no shutdown
  vrf member PROD
  ip forward  ! L'interface ne doit pas avoir d'IP. Utilisée uniquement pour le transfert de paquets entre Leaf.

Au final, la logique de passage de trame de Host-1 à Host-2 est la suivante :

  1. La trame envoyée par Host-1 arrive sur Leaf dans le VLAN 10, qui est associé au VNI 10000 ;
  2. Leaf vérifie où se trouve l'adresse de destination et la trouve via L3 VNI sur le deuxième commutateur Leaf ;
  3. Dès que le chemin vers l'adresse de destination est trouvé, Leaf encapsule la trame dans un en-tête avec le L3VNI nécessaire 99000 — et l'envoie vers le deuxième Leaf ;
  4. Le deuxième commutateur Leaf reçoit des données du L3VNI 99000. Il extrait la trame d'origine et la transfère vers le L2VNI nécessaire 20000 et ensuite vers le VLAN 20.

Le résultat d'un tel fonctionnement du L3VNI élimine la nécessité de garder sur tous les commutateurs Leaf des informations sur tous les VNI présents dans le réseau.

Ainsi, lorsque nous envoyons du trafic de Host-1 à Host-2, le paquet est encapsulé à l'intérieur du VxLAN avec un nouveau VNI — 99000 :

Usine VxLAN. Partie 2.

Il reste à comprendre comment exactement Leaf-1 apprend le MAC adresse d'un autre VNI. Cela se fait également à l'aide de EVPN route-type 2 (MAC/IP).

Ci-dessous est montré le processus de propagation de la route concernant le préfixe situé dans un autre VNI :

Usine VxLAN. Partie 2.

C'est-à-dire que les adresses obtenues à partir du VNI 20000 ont deux RT.
Je rappelle que les routes obtenues à partir de la mise à jour se retrouvent dans la table BGP avec le Route-target indiqué dans les paramètres du VRF (le processus est un peu plus complexe, mais dans le cadre de cet article, nous ne allons pas approfondir).
Le RT lui-même est formé selon la formule : AS:VNI (s'il utilise le mode automatique).

Exemple de formation du RT en mode automatique et manuel :

vrf context PROD
  address-family ipv4 unicast
    route-target import auto - mode de fonctionnement automatique
    route-target export 65001:20000 - mode de formation manuelle du RT

Ainsi, il est clair que les préfixes d'un autre VNI ont deux valeurs RT.
L'une d'elles est 65001:99000 — un L3 VNI supplémentaire. Puisque ce VNI est identique sur tous les Leaf et tombe sous nos règles d'importation dans les paramètres du VRF — le préfixe entre dans la table BGP, ce que l'on peut voir dans la sortie :

sh bgp l2vpn evpn

   Réseau            Prochain saut            Métrique     LocPrf     Poids Chemin
Route Distinguisher: 10.255.1.11:32777    (L2VNI 10000)
*>l[2]:[0]:[0]:[48]:[5001.0007.0007]:[0]:[0.0.0.0]/216
                      10.255.1.10                       100      32768 i
*>l[2]:[0]:[0]:[48]:[5001.0007.0007]:[32]:[192.168.10.10]/272
                      10.255.1.10                       100      32768 i
*>l[3]:[0]:[32]:[10.255.1.10]/88
                      10.255.1.10                       100      32768 i

Route Distinguisher: 10.255.1.21:32787
* i[2]:[0]:[0]:[48]:[5001.0008.0007]:[32]:[192.168.20.20]/272    ! Préfixe obtenu à partir de VNI 20000
                      10.255.1.20                       100          0 i
*>i                   10.255.1.20                       100          0 i

En examinant de plus près la mise à jour reçue, il est visible que ce préfixe a deux RT :

Leaf11# sh bgp l2vpn evpn 5001.0008.0007
Informations sur la table de routage BGP pour VRF par défaut, famille d'adresses L2VPN EVPN
Route Distinguisher: 10.255.1.21:32787
Entrée de la table de routage BGP pour [2]:[0]:[0]:[48]:[5001.0008.0007]:[32]:[192.168.20.20]/272, version 5164
Chemins: (2 disponibles, meilleur #2)
Flags: (0x000202) (high32 00000000) sur la liste d'envoi, n'est pas dans l2rib/evpn, n'est pas en HW

  Type de chemin : interne, le chemin est valide, pas de meilleure raison : Adresse du voisin, pas de prochain saut étiqueté
  AS-Path: AUCUN, chemin provenant d'interne à l'AS
    10.255.1.20 (métrique 81) de 10.255.1.102 (10.255.1.102)
      Origine IGP, MED non défini, pref local 100, poids 0
      Étiquette reçue 20000 99000                                 ! Deux étiquettes pour faire fonctionner VxLAN
      Extcommunity: RT:65001:20000 RT:65001:99000 SOO:10.255.1.20:0 ENCAP:8     ! Deux valeurs Route-target, sur la base desquelles ce préfixe a été ajouté
          MAC du routeur : 5001.0005.0007
      Originateur : 10.255.1.21 Liste des clusters : 10.255.1.102

Dans la table de routage sur Leaf-1, on peut également observer le préfixe 192.168.20.20/32 :

Leaf11# sh ip route vrf PROD
192.168.10.0/24, ubest/mbest: 1/0, attaché
 *via 192.168.10.1, Vlan10, [0/0], 01:29:28, direct
192.168.10.1/32, ubest/mbest: 1/0, attaché
 *via 192.168.10.1, Vlan10, [0/0], 01:29:28, local
192.168.10.10/32, ubest/mbest: 1/0, attaché
 *via 192.168.10.10, Vlan10, [190/0], 01:27:22, hmm
192.168.20.20/32, ubest/mbest: 1/0 ! Adresse Host-2
 *via 10.255.1.20fault, [200/0], 01:20:20, bgp-65001, interne, tag 65001 ! Accessible via Leaf-2
(evpn) segid: 99000 tunnelid: 0xaff0114 encap: VXLAN ! Via VNI 99000

Avez-vous remarqué l'absence du préfixe principal 192.168.20.0/24 dans la table de routage ?
Exactement, il n'y est pas. Cela signifie que les Leaf éloignés reçoivent des informations uniquement sur les hôtes présents dans votre réseau. Et c'est un comportement correct. Plus haut, toutes les mises à jour montrent que des informations contenant MAC/IP sont reçues. Il n'y a pas de mention de préfixes.

C'est le protocole Host Mobility Manager (HMM) qui remplit la table ARP à partir de laquelle la table BGP est ensuite remplie (dans cet article, omettons ce processus). Sur la base des informations reçues de HMM, des EVPN route-type 2 (MAC/IP sont transmis) sont formés.

Cependant, que faire s'il est nécessaire de transmettre des informations sur un préfixe quelconque ?

Pour ce type d'information, il existe le type de route EVPN 5 — il permet de transmettre des préfixes via l'adresse de la famille l2vpn evpn (ce type de route, au moment de la rédaction de cet article, est uniquement disponible dans une version brouillon. RFC, d'où le comportement de ce type de route peut varier selon les fabricants)

Pour transmettre des préfixes, il est nécessaire d’ajouter, dans le processus BGP pour le VRF, les préfixes qui seront annoncés :

router bgp 65001
  vrf PROD
    address-family ipv4 unicast
      redistribute direct route-map VNI20000        ! Dans ce cas, nous annonçons les préfixes connectés directement à Leaf dans le VNI 20000
route-map VNI20000 permit 10
  match ip address prefix-list VNI20000_OUT    ! Nous spécifions quel prefix-list utiliser

ip prefix-list VNI20000_OUT seq 5 permit 192.168.20.0/24   ! Nous précisons quelles sous-réseaux seront inclus dans le type de route EVPN 5

En conséquence, dans la mise à jour, nous aurons :

Usine VxLAN. Partie 2.

Regardons la table BGP. En plus des types de routes EVPN 2 et 3, des routes de type 5 apparaissent, contenant des informations sur le numéro de réseau :

Réseau            Prochain Hop            Métrique     LocPrf     Poids Chemin
Route Distinguisher : 10.255.1.11:3
* i[5]:[0]:[0]:[24]:[192.168.10.0]/224
                      10.255.1.10              0        100          0 ?
*>i                   10.255.1.10              0        100          0 ?

Route Distinguisher : 10.255.1.11:32777
* i[2]:[0]:[0]:[48]:[5001.0007.0007]:[0]:[0.0.0.0]/216
                      10.255.1.10                       100          0 i
*>i                   10.255.1.10                       100          0 i
* i[2]:[0]:[0]:[48]:[5001.0007.0007]:[32]:[192.168.10.10]/272
                      10.255.1.10                       100          0 i
*>i                   10.255.1.10                       100          0 i
* i[3]:[0]:[32]:[10.255.1.10]/88
                      10.255.1.10                       100          0 i
*>i                   10.255.1.10                       100          0 i

Route Distinguisher : 10.255.1.12:3
*>i[5]:[0]:[0]:[24]:[192.168.10.0]/224      ! EVPN route-type 5 avec numéro de préfixe
                      10.255.1.10              0        100          0 ?
* i
<.......>                   

Dans la table de routage, le préfixe est également apparu :

Leaf21# sh ip ro vrf PROD
192.168.10.0/24, ubest/mbest: 1/0
 *via 10.255.1.10fault, [200/0], 00:14:32, bgp-65001, interne, tag 65001 ! Préfixe distant, accessible via Leaf1/2 (adresse Next-hop = IP virtuelle entre la paire VPC)
(evpn) segid: 99000 tunnelid: 0xaff010a encap: VXLAN ! Préfixe accessible via L3VNI 99000

192.168.10.10/32, ubest/mbest: 1/0
 *via 10.255.1.10fault, [200/0], 02:33:40, bgp-65001, interne, tag 65001
(evpn) segid: 99000 tunnelid: 0xaff010a encap: VXLAN

192.168.20.0/24, ubest/mbest: 1/0, attaché
 *via 192.168.20.1, Vlan20, [0/0], 02:39:44, direct
192.168.20.1/32, ubest/mbest: 1/0, attaché
 *via 192.168.20.1, Vlan20, [0/0], 02:39:44, local
192.168.20.20/32, ubest/mbest: 1/0, attaché
 *via 192.168.20.20, Vlan20, [190/0], 02:35:46, hmm

Nous allons terminer la deuxième partie de ce cycle d’articles sur VxLAN EVPN. Dans la partie suivante, nous examinerons différentes options de routage entre VRF.

Les principes du protocole IPv6 et ses différences par rapport à IPv4

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster