Γεια σου, Χαμπρ. Συνεχίζω τη σειρά άρθρων σχετικά με την τεχνολογία VxLAN EVPN, η οποία γράφτηκαν ειδικά για την έναρξη του μαθήματος από την OTUS. Και σήμερα θα εξετάσουμε ένα ενδιαφέρον μέρος των εργασιών - δρομολόγηση. Όσο ασήμαντο κι αν ακούγεται, ωστόσο, στο πλαίσιο της εργασίας ενός εργοστασίου δικτύων, όλα μπορεί να μην είναι τόσο απλά.

Στο τελευταίο μέρος, πετύχαμε έναν ενιαίο τομέα μετάδοσης που χτίστηκε πάνω σε ένα δικτυακό fabric σε ένα Nexus 9000v. Ωστόσο, αυτό απέχει πολύ από το πλήρες φάσμα των εργασιών που πρέπει να επιλυθούν στο δίκτυο του κέντρου δεδομένων. Και σήμερα θα εξετάσουμε την επόμενη εργασία - δρομολόγηση μεταξύ δικτύων ή μεταξύ VNI.
Επιτρέψτε μου να σας υπενθυμίσω ότι χρησιμοποιείται η τοπολογία Spine-Leaf:

Αρχικά, ας δούμε πώς γίνεται η δρομολόγηση και ποια είναι τα χαρακτηριστικά της.
Για λόγους σαφήνειας, ας απλοποιήσουμε το λογικό διάγραμμα και ας προσθέσουμε ένα ακόμη VNI 20000 για τον Host-2. Το αποτέλεσμα είναι:

Πώς μπορείτε να μεταφέρετε την επισκεψιμότητα από έναν κεντρικό υπολογιστή σε έναν άλλο σε αυτήν την περίπτωση;
Υπάρχουν δύο επιλογές:
- Όλοι οι διακόπτες Leaf θα πρέπει να έχουν πληροφορίες σχετικά με όλα τα VNI, επομένως όλη η δρομολόγηση θα πραγματοποιείται στο πρώτο Leaf του δικτύου.
- Χρησιμοποιήστε ειδικό - L3 VNI
Η πρώτη μέθοδος είναι απλή και βολική. Δεδομένου ότι το μόνο που απαιτείται είναι να εγκαταστήσετε όλα τα VNI σε όλους τους διακόπτες Leaf. Ωστόσο, η απόκτηση αρκετών εκατοντάδων ή χιλιάδων VNI για όλα τα Leaf δεν φαίνεται πλέον απλή υπόθεση. Επομένως, χρησιμοποιείται αρκετά σπάνια στην εργασία.
Ας δούμε τη μέθοδο 2, καθώς είναι πιο ενδιαφέρουσα και λίγο πιο περίπλοκη, αλλά παρέχει μεγαλύτερη ευελιξία στη ρύθμιση του εργοστασίου.
Ας προσθέσουμε το "PROD" στην τοπολογία VRF. Σε αυτό θα προσθέσουμε τη διεπαφή vlan 10 στο ζεύγος Leaf-11/12 και τη διεπαφή VLAN 20 στο Leaf-21. Το VLAN 20 σχετίζεται με το VNI 20000
vrf context PROD
rd auto ! Route Distinguisher не принципиален и можем использовать сформированный автоматически
address-family ipv4 unicast
route-target both auto ! указываем Route-target с которым будут импортироваться и экспортироваться префиксы в/из 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
Για να χρησιμοποιήσετε το L3VNI, πρέπει να δημιουργήσετε ένα νέο VLAN και να το συσχετίσετε με το νέο VNI. Το νέο VNI πρέπει να είναι το ίδιο σε όλα τα Leaf που ενδιαφέρονται για πληροφορίες σχετικά με τα VLAN 10 και 20.
vlan 99
vn-segment 99000
interface nve1
member vni 99000 associate-vrf ! Создаем L3 VNI
vrf context PROD
vni 99000 ! Привязываем L3 VNI к определенному VRF
Ως αποτέλεσμα, το διάγραμμα θα έχει ως εξής:

Απομένει μόνο λίγο για να ολοκληρωθεί - προσθέστε μία ακόμη διεπαφή - διεπαφή vlan 99 στο VRF PROD
interface Vlan99
no shutdown
vrf member PROD
ip forward ! На интерфейсе не должно быть IP. Используется только для пересылки пакетов между Leaf
Ως αποτέλεσμα, η λογική της μετάβασης του πλαισίου από τον Host-1 στον Host-2 έχει ως εξής:
- Το πλαίσιο που αποστέλλεται από τον Host-1 φτάνει στο Leaf στο VLAN 10, το οποίο σχετίζεται με το VNI 10000.
- Το Leaf ελέγχει πού βρίσκεται η διεύθυνση προορισμού και την βρίσκει μέσω του L3 VNI στον δεύτερο διακόπτη Leaf.
- Μόλις βρεθεί μια διαδρομή προς τη διεύθυνση προορισμού, το Leaf συσκευάζει το πλαίσιο σε μια κεφαλίδα με το απαιτούμενο L3VNI 99000 και το στέλνει προς το δεύτερο Leaf.
- Ο δεύτερος διακόπτης Leaf λαμβάνει δεδομένα από το L3VNI 99000. Παίρνει το αρχικό πλαίσιο και το μεταφέρει στο απαιτούμενο L2VNI 20000 και στη συνέχεια στο VLAN 20.
Ως αποτέλεσμα αυτής της εργασίας, το L3VNI εξαλείφει την ανάγκη διατήρησης πληροφοριών σχετικά με όλα τα VNI στο δίκτυο σε όλα τα switches Leaf.
Ως αποτέλεσμα, όταν στέλνουμε κίνηση από τον Host-1 στον Host-2, το πακέτο συσκευάζεται μέσα στο VxLAN με ένα νέο VNI - 99000:

Μένει να δούμε πώς ακριβώς το Leaf-1 μαθαίνει για τη διεύθυνση MAC από ένα άλλο VNI. Αυτό συμβαίνει επίσης χρησιμοποιώντας τη διαδρομή EVPN τύπου 2 (MAC/IP).
Η διαδικασία διάδοσης μιας διαδρομής γύρω από ένα πρόθεμα που βρίσκεται σε ένα άλλο VNI φαίνεται παρακάτω:

Δηλαδή, οι διευθύνσεις που λαμβάνονται από το VNI 20000 έχουν δύο RT.
Επιτρέψτε μου να σας υπενθυμίσω ότι οι διαδρομές που λαμβάνονται από την Ενημέρωση περιλαμβάνονται στον πίνακα BGP με τον στόχο διαδρομής να καθορίζεται στις ρυθμίσεις VRF (η διαδικασία είναι κάπως πιο περίπλοκη, αλλά δεν θα επεκταθούμε σε λεπτομέρειες σε αυτό το άρθρο).
Το ίδιο το RT σχηματίζεται σύμφωνα με τον τύπο: AS:VNI (εάν χρησιμοποιείται η αυτόματη λειτουργία).
Παράδειγμα σχηματισμού RT σε αυτόματη και χειροκίνητη λειτουργία:
vrf context PROD
address-family ipv4 unicast
route-target import auto - автоматический режим работы
route-target export 65001:20000 - ручной режим формирования RT
Όπως μπορείτε να δείτε παραπάνω, τα προθέματα από άλλα VNI έχουν δύο τιμές RT.
Ένα από αυτά, το 65001:99000, είναι ένα επιπλέον L3 VNI. Δεδομένου ότι αυτό το VNI είναι το ίδιο σε όλα τα Leaf και εμπίπτει στους κανόνες εισαγωγής μας στις ρυθμίσεις VRF, το πρόθεμα εισέρχεται στον πίνακα BGP, κάτι που μπορεί να φανεί από την έξοδο:
sh bgp l2vpn evpn
<.....>
Network Next Hop Metric LocPrf Weight Path
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 ! Префикс полученный из VNI 20000
10.255.1.20 100 0 i
*>i 10.255.1.20 100 0 i
Αν εξετάσουμε πιο προσεκτικά την ενημέρωση που λάβαμε, μπορούμε να δούμε ότι αυτό το πρόθεμα έχει δύο RT:
Leaf11# sh bgp l2vpn evpn 5001.0008.0007
BGP routing table information for VRF default, address family L2VPN EVPN
Route Distinguisher: 10.255.1.21:32787
BGP routing table entry for [2]:[0]:[0]:[48]:[5001.0008.0007]:[32]:[192.168.20.2
0]/272, version 5164
Paths: (2 available, best #2)
Flags: (0x000202) (high32 00000000) on xmit-list, is not in l2rib/evpn, is not i
n HW
Path type: internal, path is valid, not best reason: Neighbor Address, no labeled nexthop
AS-Path: NONE, path sourced internal to AS
10.255.1.20 (metric 81) from 10.255.1.102 (10.255.1.102)
Origin IGP, MED not set, localpref 100, weight 0
Received label 20000 99000 ! Два label для работы VxLAN
Extcommunity: RT:65001:20000 RT:65001:99000 SOO:10.255.1.20:0 ENCAP:8 ! Два значения Route-target, на основе, которых добавили данный префикс
Router MAC:5001.0005.0007
Originator: 10.255.1.21 Cluster list: 10.255.1.102
<......>
Στον πίνακα δρομολόγησης στο Leaf-1 μπορείτε επίσης να δείτε το πρόθεμα 192.168.20.20/32:
Leaf11# sh ip route vrf PROD
192.168.10.0/24, ubest/mbest: 1/0, attached
*via 192.168.10.1, Vlan10, [0/0], 01:29:28, direct
192.168.10.1/32, ubest/mbest: 1/0, attached
*via 192.168.10.1, Vlan10, [0/0], 01:29:28, local
192.168.10.10/32, ubest/mbest: 1/0, attached
*via 192.168.10.10, Vlan10, [190/0], 01:27:22, hmm
192.168.20.20/32, ubest/mbest: 1/0 ! Адрес Host-2
*via 10.255.1.20%default, [200/0], 01:20:20, bgp-65001, internal, tag 65001 ! Доступный через Leaf-2
(evpn) segid: 99000 tunnelid: 0xaff0114 encap: VXLAN ! Через VNI 99000
Παρατηρήσατε την απουσία του κύριου προθέματος 192.168.20.0/24 στον πίνακα δρομολόγησης;
Σωστά, δεν είναι εκεί. Δηλαδή, τα απομακρυσμένα Leaf λαμβάνουν πληροφορίες μόνο για τους κεντρικούς υπολογιστές που βρίσκονται στο δίκτυό σας. Και αυτή είναι η σωστή συμπεριφορά. Παραπάνω, σε όλες τις ενημερώσεις, μπορείτε να δείτε ότι οι πληροφορίες συνοδεύονται από περιεχόμενο MAC/IP. Δεν γίνεται λόγος για προθέματα.
Έτσι λειτουργεί το πρωτόκολλο Host Mobility Manager (HMM), το οποίο γεμίζει τον πίνακα ARP, από τον οποίο στη συνέχεια γεμίζεται ο πίνακας BGP (θα παραλείψουμε αυτήν τη διαδικασία σε αυτό το άρθρο). Με βάση τις πληροφορίες που λαμβάνονται από το HMM, σχηματίζεται η διαδρομή EVPN τύπου 2 (μεταδίδεται MAC/IP).
Ωστόσο, τι πρέπει να κάνετε εάν υπάρχει ανάγκη μετάδοσης πληροφοριών σχετικά με ένα συγκεκριμένο πρόθεμα;
Για αυτόν τον τύπο πληροφοριών, υπάρχει η διαδρομή EVPN τύπου 5 - σας επιτρέπει να μεταδίδετε προθέματα μέσω της οικογένειας διευθύνσεων l2vpn evpn (αυτός ο τύπος διαδρομής κατά τη στιγμή της σύνταξης υπάρχει μόνο στην έκδοση draft) , εξαιτίας αυτού, διαφορετικοί κατασκευαστές ενδέχεται να έχουν διαφορετική συμπεριφορά σε αυτόν τον τύπο διαδρομής)
Για τη μετάδοση προθεμάτων, είναι απαραίτητο να προσθέσετε προθέματα που θα ανακοινωθούν στη διαδικασία BGP για VRF:
router bgp 65001
vrf PROD
address-family ipv4 unicast
redistribute direct route-map VNI20000 ! В данном случае анонсируем префиксы подключение непосредственно к Leaf в VNI 20000
route-map VNI20000 permit 10
match ip address prefix-list VNI20000_OUT ! Указываем какой использовать prefix-list
ip prefix-list VNI20000_OUT seq 5 permit 192.168.20.0/24 ! Указываем какие сети будут попадать в EVPN route-type 5
Ως αποτέλεσμα, η Ενημέρωση θα περιλαμβάνει:

Ας δούμε τον πίνακα BGP. Εκτός από τη διαδρομή EVPN τύπου 2,3, 5, έχουν εμφανιστεί διαδρομές τύπου XNUMX, οι οποίες περιέχουν πληροφορίες σχετικά με τον αριθμό δικτύου:
<......>
Network Next Hop Metric LocPrf Weight Path
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 с номером префикса
10.255.1.10 0 100 0 ?
* i
<.......>
Το πρόθεμα εμφανίστηκε επίσης στον πίνακα δρομολόγησης:
Leaf21# sh ip ro vrf PROD
192.168.10.0/24, ubest/mbest: 1/0
*via 10.255.1.10%default, [200/0], 00:14:32, bgp-65001, internal, tag 65001 ! Удаленный префикс, доступный через Leaf1/2(адрес Next-hop = virtual IP между парой VPC)
(evpn) segid: 99000 tunnelid: 0xaff010a encap: VXLAN ! Префикс доступен через L3VNI 99000
192.168.10.10/32, ubest/mbest: 1/0
*via 10.255.1.10%default, [200/0], 02:33:40, bgp-65001, internal, tag 65001
(evpn) segid: 99000 tunnelid: 0xaff010a encap: VXLAN
192.168.20.0/24, ubest/mbest: 1/0, attached
*via 192.168.20.1, Vlan20, [0/0], 02:39:44, direct
192.168.20.1/32, ubest/mbest: 1/0, attached
*via 192.168.20.1, Vlan20, [0/0], 02:39:44, local
192.168.20.20/32, ubest/mbest: 1/0, attached
*via 192.168.20.20, Vlan20, [190/0], 02:35:46, hmm
Αυτό ολοκληρώνει το δεύτερο μέρος της σειράς άρθρων σχετικά με το VxLAN EVPN. Στην επόμενη ενότητα θα εξετάσουμε διαφορετικές επιλογές δρομολόγησης μεταξύ VRF.
Πηγή: www.habr.com
